You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For a full list of functions, parameter/return types, and validation (e.g. empty `name` raises `ValueError`), see **[docs/Service_API.md](docs/Service_API.md)** and the per-app docs in **[docs/service_api/](docs/service_api/)** (index: [docs/service_api/README.md](docs/service_api/README.md)). DTO protocols shared across trackers are documented in **[docs/service_api/core_protocols.md](docs/service_api/core_protocols.md)** (generated from `core/protocols.py`).
Subreddit posts and comments ingested from the Reddit OAuth API. Workspace JSON uses LangChain Document format (`page_content` + `metadata`); see PR2 workspace layout under `workspace/reddit_activity_tracker/{YYYY-MM}/`. No cross-app FKs — author identity is stored as plain strings (`author`, `author_id`).
952
+
953
+
```mermaid
954
+
erDiagram
955
+
direction LR
956
+
RedditSubmission ||--o{ RedditComment : "has"
957
+
958
+
RedditSubmission {
959
+
int id PK
960
+
string reddit_id "UK IX t3_*"
961
+
string subreddit "IX"
962
+
string author
963
+
string author_id
964
+
string title
965
+
text selftext
966
+
text selftext_html
967
+
string url
968
+
string permalink
969
+
int score
970
+
int num_comments
971
+
int created_utc "IX"
972
+
datetime fetched_at
973
+
}
974
+
975
+
RedditComment {
976
+
int id PK
977
+
string reddit_id "UK IX t1_*"
978
+
int submission_id FK
979
+
string parent_id "t3_* or t1_*"
980
+
string author
981
+
string author_id
982
+
text body
983
+
string url
984
+
int score
985
+
int created_utc "IX"
986
+
datetime fetched_at
987
+
}
988
+
```
989
+
990
+
**Note:**`reddit_id` on both tables is the Reddit fullname (`t3_*` for submissions, `t1_*` for comments) and is the natural key for idempotent upserts.
991
+
992
+
---
993
+
949
994
## Appendix
950
995
951
996
### Appendix A: Table summary
@@ -1018,6 +1063,8 @@ erDiagram
1018
1063
|**DiscordChannel**| Channel in a guild (channel_id UK, type, category, topic, sync/activity timestamps). | 11 |
Copy file name to clipboardExpand all lines: docs/service_api/README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ Index of all app service modules. All writes to app models must go through the s
18
18
|[clang_github_tracker.services](clang_github_tracker.md)| clang_github_tracker | Upsert llvm issue/PR/commit rows; DB watermarks for API fetch windows. |
19
19
|[boost_mailing_list_tracker.services](boost_mailing_list_tracker.md)| boost_mailing_list_tracker | Mailing list messages and list names. |
|[reddit_activity_tracker.services](reddit_activity_tracker.md)| reddit_activity_tracker | Reddit submissions and comments (upsert helpers in PR2). |
21
22
|[wg21_paper_tracker.services](wg21_paper_tracker.md)| wg21_paper_tracker | WG21 papers, authors, and mailings. |
22
23
|[core.protocols](core_protocols.md)| core | Runtime-checkable DTO protocols (`TrackerResult`, `ActivityRecord`, `IncrementalState`); see also [Core public API](../Core_public_API.md). |
23
24
@@ -37,6 +38,7 @@ Index of all app service modules. All writes to app models must go through the s
37
38
-**clang_github_tracker** – Upsert `ClangGithubIssueItem` / `ClangGithubCommit` during sync or backfill; read `Max(github_updated_at)` / `Max(github_committed_at)` for fetch cursors.
38
39
-**boost_mailing_list_tracker** – Mailing list message and name helpers.
39
40
-**cppa_slack_tracker** – Slack team/channel/message persistence and membership sync.
41
+
-**reddit_activity_tracker** – Reddit submission and comment persistence (service functions added in PR2).
40
42
-**wg21_paper_tracker** – WG21 paper and author persistence.
41
43
-**core.protocols** – Structural contracts for sync outcomes and activity payloads (see [core_protocols.md](core_protocols.md)).
0 commit comments