Commit 8777ff4
authored
feat: official Follow Intent and audience insights (#4)
* chore(manifest): define audience API contracts
* feat(core): add audience domain contracts
* feat(cli): add official follow intent
* fix(auth): harden audience reauthorization
* feat(provider): add official audience endpoints
* feat(store): persist audience snapshots
* feat(store): rank observed engagement
* feat(ingest): refresh audience data
* feat(cli): render audience reports
* feat(cli): add audience commands
* test(cli): cover audience workflows end to end
* docs: document audience and follow support
* refactor(core): split model into domain modules and add demographic insight
* refactor(store): split query module and harden private file I/O
* refactor(provider): split client and provider modules; correct DTOs, paths, and retry
* fix(auth): harden token store, config, and local secret handling
* refactor(ingest): split orchestrator and correct audience refresh
* fix(cli): correct audience output and recovery; update tests and docs
* fix(store): exclude quote posts from engagement ranking
* fix(auth): add oauth endpoint seams and guide insights permission denial
* test(ingest): assert repeated audience refresh is idempotent
* fix(provider): forward client-selected mentions page size and correct docs
* fix(auth): gate oauth endpoint injection behind test-support
* fix(core): map permission denials to typed permission requirements1 parent 0f0c7eb commit 8777ff4
103 files changed
Lines changed: 10941 additions & 2886 deletions
File tree
- crates
- threads-cli
- src
- commands
- config
- config_persistence
- output
- audience
- tests
- support
- threads-core
- src
- model
- tests
- threads-ingest
- src
- orchestrator
- tests
- fixtures
- threads-manifest/src
- threads-provider-official
- src
- auth
- client
- provider
- token_store
- tests
- threads-store
- src
- query
- docs
- manifests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
67 | 69 | | |
68 | 70 | | |
69 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
37 | 39 | | |
38 | 40 | | |
39 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
40 | 50 | | |
41 | 51 | | |
42 | | - | |
| 52 | + | |
43 | 53 | | |
44 | 54 | | |
45 | 55 | | |
| |||
48 | 58 | | |
49 | 59 | | |
50 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
51 | 66 | | |
52 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
53 | 98 | | |
54 | 99 | | |
55 | 100 | | |
| |||
65 | 110 | | |
66 | 111 | | |
67 | 112 | | |
68 | | - | |
69 | | - | |
70 | | - | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
71 | 118 | | |
72 | 119 | | |
73 | 120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
25 | 28 | | |
26 | 29 | | |
27 | 30 | | |
| |||
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
| 39 | + | |
0 commit comments