@aitne-sh/aitne 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +218 -161
  2. package/agent-assets/agent-profiles/_safety.md +3 -3
  3. package/agent-assets/agent-profiles/browser-task.md +108 -0
  4. package/agent-assets/agent-profiles/conversational.md +3 -3
  5. package/agent-assets/agent-profiles/profile-importer.md +2 -2
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  8. package/agent-assets/agents/evening-review/agent.md +53 -0
  9. package/agent-assets/agents/hourly-check/agent.md +62 -0
  10. package/agent-assets/agents/monthly-review/agent.md +55 -0
  11. package/agent-assets/agents/morning-routine/agent.md +78 -0
  12. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  13. package/agent-assets/agents/skill-curation/agent.md +52 -0
  14. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  15. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  16. package/agent-assets/agents/weekly-review/agent.md +51 -0
  17. package/agent-assets/docs/concepts/agent-day.md +13 -11
  18. package/agent-assets/docs/concepts/auth-health.md +47 -10
  19. package/agent-assets/docs/concepts/backends-and-tiers.md +66 -31
  20. package/agent-assets/docs/concepts/costs-and-quotas.md +50 -15
  21. package/agent-assets/docs/concepts/delegated-mode.md +52 -13
  22. package/agent-assets/docs/concepts/memory-model.md +72 -32
  23. package/agent-assets/docs/concepts/observations.md +49 -11
  24. package/agent-assets/docs/concepts/process-keys.md +56 -22
  25. package/agent-assets/docs/concepts/routines.md +60 -33
  26. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  27. package/agent-assets/docs/concepts/safety-model.md +42 -34
  28. package/agent-assets/docs/concepts/skills.md +33 -17
  29. package/agent-assets/docs/features/integrations/browser-history.md +195 -0
  30. package/agent-assets/docs/features/integrations/calendar.md +39 -29
  31. package/agent-assets/docs/features/integrations/git.md +18 -7
  32. package/agent-assets/docs/features/integrations/github.md +84 -33
  33. package/agent-assets/docs/features/integrations/mail.md +59 -16
  34. package/agent-assets/docs/features/integrations/notion.md +18 -6
  35. package/agent-assets/docs/features/integrations/obsidian.md +28 -5
  36. package/agent-assets/docs/features/lifestyle/git.md +42 -38
  37. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  38. package/agent-assets/docs/features/lifestyle/receipts.md +51 -21
  39. package/agent-assets/docs/features/lifestyle/travel-bookings.md +76 -14
  40. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  41. package/agent-assets/docs/features/memory-files/projects.md +71 -17
  42. package/agent-assets/docs/features/memory-files/roadmap.md +50 -10
  43. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  44. package/agent-assets/docs/features/memory-files/today.md +46 -21
  45. package/agent-assets/docs/features/memory-files/user-profile.md +63 -33
  46. package/agent-assets/docs/features/messaging/bang-commands.md +113 -36
  47. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  48. package/agent-assets/docs/features/messaging/discord.md +35 -4
  49. package/agent-assets/docs/features/messaging/overview.md +37 -19
  50. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  51. package/agent-assets/docs/features/messaging/slack.md +67 -14
  52. package/agent-assets/docs/features/messaging/telegram.md +18 -5
  53. package/agent-assets/docs/features/messaging/whatsapp.md +71 -17
  54. package/agent-assets/docs/features/operations/activity-and-conversations.md +44 -15
  55. package/agent-assets/docs/features/operations/approvals.md +48 -16
  56. package/agent-assets/docs/features/operations/backend-routing.md +68 -16
  57. package/agent-assets/docs/features/operations/cost-tracking.md +84 -17
  58. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  59. package/agent-assets/docs/features/operations/notifications.md +52 -11
  60. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  61. package/agent-assets/docs/features/operations/schedule-approaching.md +54 -24
  62. package/agent-assets/docs/features/routines/custom-routines.md +88 -20
  63. package/agent-assets/docs/features/routines/evening-review.md +74 -21
  64. package/agent-assets/docs/features/routines/hourly-check.md +149 -29
  65. package/agent-assets/docs/features/routines/morning-routine.md +53 -35
  66. package/agent-assets/docs/features/routines/weekly-review.md +40 -21
  67. package/agent-assets/docs/features/wiki/commands.md +26 -16
  68. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  69. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  70. package/agent-assets/docs/features/wiki/overview.md +68 -10
  71. package/agent-assets/docs/features/wiki/search.md +248 -0
  72. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  73. package/agent-assets/docs/getting-started/01-what-is-this.md +34 -23
  74. package/agent-assets/docs/getting-started/02-first-steps.md +13 -8
  75. package/agent-assets/docs/getting-started/03-what-can-this-do.md +25 -14
  76. package/agent-assets/docs/getting-started/04-first-day.md +38 -20
  77. package/agent-assets/docs/glossary.md +235 -24
  78. package/agent-assets/docs/guides/add-a-custom-routine.md +63 -23
  79. package/agent-assets/docs/guides/backup-and-restore.md +80 -16
  80. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +56 -25
  81. package/agent-assets/docs/guides/build-your-wiki.md +22 -9
  82. package/agent-assets/docs/guides/change-which-model-handles-x.md +64 -10
  83. package/agent-assets/docs/guides/connect-a-new-mail-account.md +64 -15
  84. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +28 -11
  85. package/agent-assets/docs/guides/import-knowledge-file.md +50 -40
  86. package/agent-assets/docs/guides/install-and-run.md +48 -19
  87. package/agent-assets/docs/guides/maintain-wiki-health.md +35 -10
  88. package/agent-assets/docs/guides/migrate-machines.md +74 -18
  89. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +111 -60
  90. package/agent-assets/docs/guides/pause-the-agent.md +65 -24
  91. package/agent-assets/docs/guides/reinstall-cleanly.md +88 -18
  92. package/agent-assets/docs/guides/setup-wizard.md +113 -54
  93. package/agent-assets/docs/guides/switch-default-backend.md +62 -16
  94. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +26 -10
  95. package/agent-assets/docs/reference/api.md +143 -32
  96. package/agent-assets/docs/reference/cli-commands.md +38 -17
  97. package/agent-assets/docs/reference/config.md +224 -49
  98. package/agent-assets/docs/reference/disallowed-tools.md +29 -10
  99. package/agent-assets/docs/reference/keyboard-shortcuts.md +34 -10
  100. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  101. package/agent-assets/docs/reference/process-keys.md +61 -5
  102. package/agent-assets/docs/reference/skills.md +38 -12
  103. package/agent-assets/docs/troubleshooting/auth-failed.md +48 -19
  104. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +90 -28
  105. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +86 -22
  106. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +68 -24
  107. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +80 -20
  108. package/agent-assets/docs/troubleshooting/observation-not-detected.md +73 -21
  109. package/agent-assets/docs/troubleshooting/quota-exhausted.md +29 -5
  110. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +126 -54
  111. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +29 -12
  112. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  113. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +1 -1
  115. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  116. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  117. package/agent-assets/skills/agent-actions/SKILL.md +2 -2
  118. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  119. package/agent-assets/skills/attach/SKILL.md +2 -2
  120. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  121. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  122. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  123. package/agent-assets/skills/context/SKILL.md +12 -12
  124. package/agent-assets/skills/context/curation.json +2 -2
  125. package/agent-assets/skills/context/references/api.md +43 -31
  126. package/agent-assets/skills/context/references/required-frontmatter.md +3 -3
  127. package/agent-assets/skills/context/references/snapshot-files.md +6 -6
  128. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +3 -3
  129. package/agent-assets/skills/docs-search/SKILL.md +4 -3
  130. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +11 -21
  131. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +11 -21
  132. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +11 -21
  133. package/agent-assets/skills/external-services/SKILL.md +3 -3
  134. package/agent-assets/skills/external-services/SKILL.native.claude.md +5 -5
  135. package/agent-assets/skills/external-services/SKILL.native.codex.md +7 -7
  136. package/agent-assets/skills/external-services/SKILL.native.gemini.md +4 -4
  137. package/agent-assets/skills/external-services/references/calendar-apple.md +2 -2
  138. package/agent-assets/skills/external-services/references/calendar-outlook.md +1 -1
  139. package/agent-assets/skills/external-services/references/obsidian.md +2 -2
  140. package/agent-assets/skills/gmail-lifestyle/SKILL.md +9 -82
  141. package/agent-assets/skills/mail/SKILL.delegated.claude.md +14 -5
  142. package/agent-assets/skills/mail/SKILL.delegated.codex.md +8 -4
  143. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +8 -4
  144. package/agent-assets/skills/mail/references/api.md +4 -2
  145. package/agent-assets/skills/mail/references/providers.md +1 -1
  146. package/agent-assets/skills/managed-tasks/SKILL.md +9 -9
  147. package/agent-assets/skills/managed-tasks/references/errors.md +9 -6
  148. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +1 -1
  149. package/agent-assets/skills/management-policy/SKILL.md +32 -31
  150. package/agent-assets/skills/management-policy/curation.json +1 -1
  151. package/agent-assets/skills/management-policy/references/policy-workflow.md +9 -9
  152. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  153. package/agent-assets/skills/notify/SKILL.md +4 -4
  154. package/agent-assets/skills/notify/references/priority.md +9 -4
  155. package/agent-assets/skills/notion/SKILL.delegated.claude.md +1 -1
  156. package/agent-assets/skills/notion/SKILL.delegated.codex.md +1 -1
  157. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +1 -1
  158. package/agent-assets/skills/notion/SKILL.native.claude.md +10 -6
  159. package/agent-assets/skills/notion/SKILL.native.codex.md +9 -4
  160. package/agent-assets/skills/notion/SKILL.native.gemini.md +9 -4
  161. package/agent-assets/skills/observations/SKILL.md +24 -8
  162. package/agent-assets/skills/project-doc/SKILL.md +1 -1
  163. package/agent-assets/skills/project-doc/curation.json +3 -3
  164. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  165. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  166. package/agent-assets/skills/reading/SKILL.md +10 -0
  167. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  168. package/agent-assets/skills/roadmap/SKILL.md +5 -5
  169. package/agent-assets/skills/roadmap/curation.json +1 -1
  170. package/agent-assets/skills/roadmap/references/api.md +7 -7
  171. package/agent-assets/skills/roadmap/references/cross-check.md +15 -8
  172. package/agent-assets/skills/roadmap/references/migration.md +4 -4
  173. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  174. package/agent-assets/skills/schedule/SKILL.md +42 -34
  175. package/agent-assets/skills/schedule/references/batch.md +2 -2
  176. package/agent-assets/skills/schedule/references/errors.md +7 -4
  177. package/agent-assets/skills/schedule/references/model-selection.md +3 -3
  178. package/agent-assets/skills/schedule/references/recurrence-rule.md +1 -1
  179. package/agent-assets/skills/scheduled-managed-task/SKILL.md +46 -36
  180. package/agent-assets/skills/today/SKILL.md +9 -9
  181. package/agent-assets/skills/today/curation.json +3 -3
  182. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +6 -5
  183. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  184. package/agent-assets/skills/user-interview/SKILL.md +12 -9
  185. package/agent-assets/skills/user-interview/references/op-briefing.md +2 -2
  186. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +8 -0
  187. package/agent-assets/skills/user-profile/SKILL.md +17 -17
  188. package/agent-assets/skills/user-profile/curation.json +2 -2
  189. package/agent-assets/skills/user-profile/references/character-preferences.md +2 -2
  190. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  191. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +6 -6
  192. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -4
  193. package/agent-assets/system-prompts/routine-fetch-window.md +22 -12
  194. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +4 -2
  195. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +4 -2
  196. package/agent-assets/task-flows/_partials/capture-user-info.md +2 -2
  197. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +1 -1
  198. package/agent-assets/task-flows/_partials/dm-intent.project.md +9 -9
  199. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +3 -2
  200. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +10 -5
  201. package/agent-assets/task-flows/browser_task.md +84 -0
  202. package/agent-assets/task-flows/github.assigned.md +1 -1
  203. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  204. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  205. package/agent-assets/task-flows/knowledge.import.md +14 -14
  206. package/agent-assets/task-flows/message.received.dm.md +9 -4
  207. package/agent-assets/task-flows/message.received.dm_first.md +3 -3
  208. package/agent-assets/task-flows/routine.custom.md +3 -3
  209. package/agent-assets/task-flows/routine.evening_review.md +8 -8
  210. package/agent-assets/task-flows/routine.fetch_window.md +2 -2
  211. package/agent-assets/task-flows/routine.hourly_check.md +16 -12
  212. package/agent-assets/task-flows/routine.monthly_review.md +21 -21
  213. package/agent-assets/task-flows/routine.morning_routine_journal.md +119 -97
  214. package/agent-assets/task-flows/routine.morning_routine_today.md +43 -43
  215. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  216. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  217. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  218. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  219. package/agent-assets/task-flows/routine.roadmap_refresh.md +10 -10
  220. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  221. package/agent-assets/task-flows/routine.user_profile_sweep.md +10 -10
  222. package/agent-assets/task-flows/routine.weekly_review.md +93 -24
  223. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  224. package/agent-assets/task-flows/scheduled.dm.md +5 -5
  225. package/agent-assets/task-flows/scheduled.task.md +4 -4
  226. package/agent-assets/task-flows/setup.initial.md +21 -21
  227. package/agent-assets/task-flows/setup.update.md +2 -2
  228. package/agent-assets/templates/README.md +27 -20
  229. package/agent-assets/templates/_index.md +42 -26
  230. package/agent-assets/templates/_manifest.json +34 -99
  231. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  232. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  233. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +1 -1
  234. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  235. package/agent-assets/templates/policies/_index.md +21 -0
  236. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  237. package/agent-assets/templates/{rules → policies}/journal-format.md +5 -5
  238. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  239. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  240. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  241. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  242. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  243. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  244. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  245. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  246. package/bin/aitne.mjs +13 -4
  247. package/package.json +5 -4
  248. package/scripts/commands/doctor.mjs +14 -8
  249. package/scripts/commands/run-now.mjs +6 -21
  250. package/scripts/lib/ports.d.mts +27 -0
  251. package/scripts/lib/ports.mjs +36 -0
  252. package/scripts/lib/read-api-token.mjs +176 -0
  253. package/scripts/start.mjs +2 -1
  254. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -58
  255. package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +0 -59
  256. package/agent-assets/skills/schedule/references/recurring.md +0 -185
  257. package/agent-assets/templates/context-index.md +0 -42
  258. package/agent-assets/templates/rules/_index.md +0 -19
  259. /package/agent-assets/templates/{user → identity}/expertise.md +0 -0
  260. /package/agent-assets/templates/{user → identity}/goals.md +0 -0
  261. /package/agent-assets/templates/{user → identity}/people.md +0 -0
  262. /package/agent-assets/templates/{user → identity}/personal.md +0 -0
  263. /package/agent-assets/templates/{user → identity}/work.md +0 -0
  264. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  265. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  266. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  267. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  268. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  269. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  270. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  271. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  272. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  273. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  274. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  275. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  276. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -7,25 +7,29 @@ aliases:
7
7
  - github integration
8
8
  - github poller
9
9
  - github notifications
10
+ - github delegated mode
10
11
  category: features
11
12
  summary: |
12
13
  GitHub is the remote-side counterpart to the Git integration. The
13
14
  daemon polls notifications and CI failures via the local `gh` CLI;
14
15
  high-priority signals (review requests, default-branch CI failures,
15
- security alerts, assignments) become direct DMs.
16
+ security alerts, assignments) become direct DMs. Watched repos are
17
+ registered as unified Repository rows, not config keys.
16
18
  section: integrations
17
19
  tags:
18
20
  - integrations
19
21
  - github
20
22
  - observations
23
+ - polling
21
24
  status: stable
22
25
  ask_examples:
23
26
  - How do I connect GitHub?
24
27
  - Will the agent message me on every CI failure?
25
28
  - Can the agent reply to GitHub issues?
29
+ - Where do I add a GitHub repo to watch?
26
30
  locale: en-US
27
31
  created: 2026-04-25
28
- updated: 2026-04-28
32
+ updated: 2026-05-28
29
33
  keywords:
30
34
  - github
31
35
  - issue
@@ -33,17 +37,30 @@ keywords:
33
37
  - PR review
34
38
  - workflow run
35
39
  - security alert
40
+ - delegated mode
41
+ - gh cli
42
+ - repositories
36
43
  related:
37
44
  - features/integrations/git
38
45
  - concepts/observations
46
+ - concepts/delegated-mode
39
47
  ui_anchors:
40
48
  - /connections/repositories
49
+ config_keys:
50
+ - githubPollIntervalSeconds
51
+ api_endpoints:
52
+ - PATCH /api/integrations/github
53
+ process_keys:
54
+ - github.pull_request.review_requested
55
+ - github.assigned
56
+ - github.security_alert
57
+ - github.workflow_run.failed
58
+ context_files:
59
+ - state/today.md
41
60
  ---
42
61
 
43
62
  # GitHub
44
63
 
45
- ## In One Sentence
46
-
47
64
  The daemon polls GitHub via the local `gh` CLI: review requests, CI
48
65
  failures on the default branch, security alerts, and assignments
49
66
  become DMs; everything else is recorded for the hourly check.
@@ -51,10 +68,14 @@ become DMs; everything else is recorded for the hourly check.
51
68
  ## What It Does
52
69
 
53
70
  - **Polls Notifications** every `githubPollIntervalSeconds` (default
54
- 600s) using ETag caching — 304s cost no rate-limit quota.
55
- - **Polls workflow_runs** per watched GitHub repository on the same
56
- cadence, filtered by `status=failure`. Watched repos can come from a
57
- local clone's GitHub `origin` or from an explicit `owner/repo` entry.
71
+ 1800s / 30 min) using ETag caching — 304 responses cost no
72
+ rate-limit quota.
73
+ - **Polls workflow_runs** per watched GitHub repository, filtered by
74
+ `status=failure`. Each repo's GitHub side comes from a unified
75
+ **Repository** row (a `owner/repo` remote, optionally paired with a
76
+ local clone — see [Setup](#setup)). Per-repo cadence overrides apply
77
+ to the workflow-runs side; the notifications poll always runs at the
78
+ global cadence.
58
79
  - **DMs the user** on the four high-priority triggers below; quieter
59
80
  signals are coalesced into the hourly check summary.
60
81
 
@@ -73,17 +94,17 @@ depending on your notify-skill settings) on:
73
94
  observation-only — they're the normal developer feedback loop).
74
95
 
75
96
  Each DM follows the notify skill's awareness-gate: if the agent already
76
- sees you triaging it in `today.md`, it stays silent and just logs.
97
+ sees you triaging it in `state/today.md`, it stays silent and just logs.
77
98
 
78
99
  ## Setup
79
100
 
80
101
  1. Install `gh`: `brew install gh` on macOS; see
81
102
  [cli.github.com](https://cli.github.com/) for other platforms.
82
103
  2. Authenticate: `gh auth login` (browser flow).
83
- 3. Add `owner/repo` entries to **Connections → GitHub**, or add local
84
- repository paths to **Connections Git Repositories**. For local
85
- paths, the poller derives `owner/name` from each repo's `origin`
86
- remote — non-GitHub remotes are silently skipped.
104
+ 3. Register the repos to watch on **Connections → Repositories**. Each
105
+ row links an `owner/repo` GitHub remote, an optional local clone, or
106
+ both. If you link only a local clone, the poller derives `owner/name`
107
+ from its `origin` remote — non-GitHub remotes are silently skipped.
87
108
  4. Restart the daemon (the poll interval is captured at start time).
88
109
 
89
110
  The daemon does NOT need a personal access token in its keychain — it
@@ -91,27 +112,39 @@ re-uses whatever `gh` already has.
91
112
 
92
113
  ## Cold-start behavior
93
114
 
94
- The first time the daemon polls a watched repo, it records the latest
95
- failed workflow runs **without emitting any events**. This prevents a
96
- flood of DMs about historical CI failures the user has already triaged.
97
- New failures landing after that warm-up are surfaced normally.
115
+ The first time the daemon polls a watched repo's **workflow runs**, it
116
+ records the latest failures **without emitting any events**. This
117
+ prevents a flood of DMs about historical CI failures you have already
118
+ triaged. New failures landing after that warm-up are surfaced normally.
119
+
120
+ The notifications side needs no warm-up: GitHub returns only unread
121
+ items, so there is no historical backlog to suppress.
98
122
 
99
123
  ## Where in the Dashboard
100
124
 
101
- - **Connections → GitHub** shows status and the `gh auth login`
102
- hint.
103
- - **Connections → GitHub** controls explicit `owner/repo` watched repos.
104
- When this list is non-empty, notification processing is scoped to it.
105
- - **Connections Git Repositories** controls local clone paths whose
106
- GitHub remotes are watched for workflow_run failures.
125
+ Everything lives on **Connections → Repositories**
126
+ (`/connections/repositories`):
127
+
128
+ - The GitHub integration card shows status, the `gh auth login` hint,
129
+ and the integration mode picker (see [Modes](#modes)).
130
+ - Each repository row links an `owner/repo` GitHub remote and/or a
131
+ local clone. When at least one row has a GitHub remote, notification
132
+ processing is scoped to those repos.
133
+ - Per-repo polling cadence, automation triggers, and daily git
134
+ management are configured on **My Life → Git** (`/git`), not here.
107
135
 
108
136
  ## Configuration
109
137
 
110
138
  | Setting | Default | Notes |
111
139
  |---|---|---|
112
- | `githubPollIntervalSeconds` | 600 (10 min) | Both poll cadences. Lower for faster review-request alerts at the cost of slightly more rate-limit budget. **Restart-required.** |
113
- | `gitRepos` | `[]` | Local repo paths to watch. |
114
- | `githubRepos` | `[]` | Direct remote repos in `owner/repo` form. Also scopes notification processing when non-empty. |
140
+ | `githubPollIntervalSeconds` | 1800 (30 min) | Global poll cadence. Lower for faster review-request alerts at the cost of slightly more rate-limit budget. **Restart-required.** |
141
+
142
+ Watched repos are no longer config keys. The old `gitRepos` /
143
+ `githubRepos` settings were removed at the unified-repositories
144
+ cutover — repos now live in the `repositories` table and are managed on
145
+ **Connections → Repositories**. Per-repo polling cadence is set on
146
+ **My Life → Git** and overrides the global interval for that repo's
147
+ workflow-runs poll.
115
148
 
116
149
  ## When Something Goes Wrong
117
150
 
@@ -130,16 +163,34 @@ New failures landing after that warm-up are surfaced normally.
130
163
  poller pre-checks `observations(source, ref)` before every emit. If
131
164
  it does, file a bug with the notification id.
132
165
 
133
- ## Delegated mode (coming soon)
134
-
135
- A future release will let Claude Code, Codex, or Gemini CLI handle
136
- GitHub directly via their native MCP / `gh` integrations, optionally
137
- replacing the daemon-side poller. Most users won't need this the
138
- built-in poller already covers the common surface — but it'll be
139
- useful if you'd rather skip the daemon-side polling entirely.
166
+ ## Modes
167
+
168
+ GitHub supports three integration modes: `direct` (default),
169
+ `delegated`, and `disabled`. Native mode is not offered the
170
+ backend-side connectors are read-only `gh` CLI wrappers that do not
171
+ need a daemon-spawned poller's bookkeeping.
172
+
173
+ - **direct** — the daemon's `GitHubPoller` runs as described above.
174
+ Use this when you want the daemon to own the poll schedule and to
175
+ emit DMs without the main backend having to wake up.
176
+ - **delegated** — the delegated-sync worker invokes the chosen
177
+ backend's read-only `gh` CLI surface on opt-in cadences (see
178
+ [Delegated Mode](../../concepts/delegated-mode.md) and
179
+ `docs/design/appendices/delegated-sync-opt-in.md`). The daemon
180
+ poller stays off; the lite-tier delegated session takes the polling
181
+ cost.
182
+ - **disabled** — neither the poller nor the delegated worker runs;
183
+ the integration is silent.
184
+
185
+ Pick the mode from the GitHub card on **Connections → Repositories**.
186
+ Mode changes go through the standard `PATCH /api/integrations/github`
187
+ flip-lock so the poller and the delegated worker never run
188
+ simultaneously.
140
189
 
141
190
  ## Related
142
191
 
143
192
  - [Git](git.md) — local repo file watcher (separate observer).
144
193
  - [Hourly Check](../routines/hourly-check.md) — the consumer of
145
194
  non-DM-priority observations.
195
+ - [Delegated Mode](../../concepts/delegated-mode.md) — how the
196
+ `delegated` mode polls without a daemon poller.
@@ -27,7 +27,7 @@ ask_examples:
27
27
  - How do I add a second mail account?
28
28
  locale: en-US
29
29
  created: 2026-04-25
30
- updated: 2026-04-25
30
+ updated: 2026-05-28
31
31
  keywords:
32
32
  - mail
33
33
  - gmail
@@ -36,22 +36,35 @@ keywords:
36
36
  - icloud
37
37
  - inbox
38
38
  - labels
39
+ - native mode
40
+ - delegated
41
+ - direct
42
+ - fts5
39
43
  related:
40
44
  - guides/connect-a-new-mail-account
41
45
  - features/routines/morning-routine
46
+ - concepts/delegated-mode
42
47
  ui_anchors:
43
48
  - /connections/mail
44
49
  api_endpoints:
45
50
  - /api/mail
51
+ - /api/mail/accounts
52
+ - /api/mail/search
53
+ config_keys:
54
+ - enabledMailProviders
55
+ - mailPollIntervalSeconds
56
+ - gmailPollIntervalSeconds
57
+ context_files:
58
+ - state/today.md
46
59
  ---
47
60
 
48
61
  # Mail
49
62
 
50
- ## In One Sentence
51
-
52
- Connect one or more mailboxes; the daemon polls them, classifies
53
- incoming threads, and lets the agent read / label / search via the
54
- `mail` skill.
63
+ Connect one or more mailboxes (Gmail, Outlook, Yahoo, iCloud, or any
64
+ IMAP server) and Aitne polls them, classifies incoming threads, and
65
+ lets the agent search / label / read via the `mail` skill. Search is
66
+ local backed by SQLite FTS5 so the agent doesn't need to round-trip
67
+ the provider for every query.
55
68
 
56
69
  ## What It Does
57
70
 
@@ -62,24 +75,52 @@ incoming threads, and lets the agent read / label / search via the
62
75
  - **Surface** the small set of mail items in the morning routine that
63
76
  actually need owner action.
64
77
 
65
- The agent does **not** send mail on your behalf. Drafting is supported
66
- (via the provider's draft API where available) but sending is an
67
- operator action.
78
+ The agent **prefers drafts** over sending. By convention it creates a
79
+ draft (`POST /mail/:account/drafts`) and lets you review and hit send
80
+ yourself. Direct send (`POST /mail/:account/messages/send`) is *not*
81
+ blocked — it is classified as an autonomous action, so the daemon does
82
+ not DM you for approval first. The agent only sends directly when it
83
+ judges you'd clearly want it to, and it tells you afterward; during the
84
+ hourly check the `mail` skill is hard read-only (no sending, drafting,
85
+ labeling, or filing).
68
86
 
69
87
  ## When It Runs / How It Is Triggered
70
88
 
71
- - A poller pulls new messages every `gmailPollIntervalSeconds` (or the
72
- per-provider equivalent) see Settings → Advanced.
89
+ - In `direct` mode a poller pulls new messages on a cadence. Gmail uses
90
+ `gmailPollIntervalSeconds` (default 600); IMAP-backed accounts (Yahoo,
91
+ iCloud, generic IMAP) use `mailPollIntervalSeconds` (default 180).
92
+ Adjust both under **Settings → Advanced**.
73
93
  - The morning routine reads the labeled queue and decides which need
74
94
  surfacing.
75
95
  - Reactive turns (you DM "what's in my mail?") use the `mail` skill on
76
96
  demand.
77
97
 
98
+ ## Integration Modes
99
+
100
+ Mail supports all four integration modes
101
+ (`direct | delegated | native | disabled`); each provider may sit in a
102
+ different mode.
103
+
104
+ | Provider | Direct | Delegated | Native | Notes |
105
+ |---|---|---|---|---|
106
+ | Gmail | ✓ | ✓ | ✓ (descriptor-driven) | Native mode uses Google's official Gmail MCP connector on the main backend; the connector POSTs observations back via `/api/observations`. |
107
+ | Outlook | ✓ | ✓ | ✓ (user-managed) | Native mode requires you to install your own MCP / skill harness on the main backend (`userManagedConnector: true`); the probe synthesises a user-managed result and skips the missing-variant gate. |
108
+ | Yahoo | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
109
+ | iCloud | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
110
+ | Generic IMAP | ✓ | ✓ | — | IMAP transport. No native MCP variant. |
111
+
112
+ Mode flips run through the §14.7 live probe + the per-key
113
+ `runtime_state.integration_flip_lock:<key>`. Changing the main
114
+ backend cascades unmatched `native` rows to `disabled`.
115
+
116
+ See [Delegated Mode](../../concepts/delegated-mode.md) for the full
117
+ mode lifecycle.
118
+
78
119
  ## What It Outputs
79
120
 
80
121
  - New threads land in the local `messages` table (FTS-indexed).
81
122
  - Classification labels are written via the provider API.
82
- - A short "mail" section in `today.md` when items qualified.
123
+ - A short "mail" section in `state/today.md` when items qualified.
83
124
 
84
125
  ## Where in the Dashboard
85
126
 
@@ -88,10 +129,11 @@ operator action.
88
129
 
89
130
  ## Configuration
90
131
 
91
- Per-account settings: provider kind (`gmail` / `outlook` / `yahoo` /
92
- `icloud`), credential store, label conventions, polling interval.
93
- Yahoo and iCloud use IMAP transport internally; the operator picks
94
- the kind, not the transport.
132
+ Per account you choose a provider kind (`gmail` / `outlook` / `yahoo` /
133
+ `icloud`) plus credentials, label conventions, and polling interval. You
134
+ pick the kind, not the transport Yahoo and iCloud connect over IMAP
135
+ under the hood, but that is an implementation detail. The set of enabled
136
+ providers is `enabledMailProviders` (default `["gmail"]`).
95
137
 
96
138
  ## When Something Goes Wrong
97
139
 
@@ -104,3 +146,4 @@ the kind, not the transport.
104
146
 
105
147
  - [Connect a new mail account](../../guides/connect-a-new-mail-account.md)
106
148
  - [Morning Routine](../routines/morning-routine.md)
149
+ - [Delegated Mode](../../concepts/delegated-mode.md)
@@ -13,36 +13,44 @@ summary: |
13
13
  section: integrations
14
14
  tags:
15
15
  - integrations
16
+ - notion
16
17
  - knowledge
17
18
  - observations
18
19
  status: stable
19
20
  ask_examples:
20
21
  - How do I connect Notion?
21
22
  - Will Notion notify me on every page change?
23
+ - What does Notion native mode do?
22
24
  locale: en-US
23
25
  created: 2026-04-25
24
- updated: 2026-04-25
26
+ updated: 2026-05-28
25
27
  keywords:
26
28
  - notion
27
29
  - page
28
30
  - database
29
31
  - notion observer
30
32
  - notion poller
33
+ - integration modes
31
34
  related:
32
35
  - features/integrations/obsidian
33
36
  - features/routines/hourly-check
37
+ - concepts/delegated-mode
38
+ - concepts/observations
34
39
  ui_anchors:
35
40
  - /connections/knowledge
36
41
  config_keys:
37
42
  - notionPollIntervalSeconds
43
+ api_endpoints:
44
+ - POST /api/integrations/:key/probe
45
+ - POST /api/observations
38
46
  ---
39
47
 
40
48
  # Notion
41
49
 
42
- ## In One Sentence
43
-
44
- A Notion integration polls a configured database / page set and
45
- records observations on change.
50
+ Aitne polls a configured Notion database or page set, records an
51
+ observation on change, and the hourly check decides whether anything
52
+ warrants surfacing. The agent can also read pages on demand through
53
+ the `notion` skill.
46
54
 
47
55
  ## What It Does
48
56
 
@@ -68,7 +76,11 @@ Notion supports all four integration modes (`direct` / `delegated` /
68
76
  - **`native`** — the main backend reaches Notion through its own MCP
69
77
  connector on demand; the daemon does no polling. Observations
70
78
  flow in only when the main backend POSTs them in-turn via
71
- `/api/observations`. Available with Claude (`mcp__notion__*`).
79
+ `POST /api/observations`. Supported when the main backend is
80
+ Claude, Codex, or Gemini (each ships a Notion connector — e.g.
81
+ Claude's is `mcp__claude_ai_Notion__*`). OpenCode hosts no native
82
+ connectors, so selecting it as the main backend cascades Notion to
83
+ `disabled`.
72
84
  - **`disabled`** — silence; no observations, no daemon access.
73
85
 
74
86
  Switching modes requires the integration flip-lock probe to pass
@@ -16,6 +16,7 @@ tags:
16
16
  - integrations
17
17
  - knowledge
18
18
  - observations
19
+ - obsidian
19
20
  status: stable
20
21
  ask_examples:
21
22
  - How do I connect my Obsidian vault?
@@ -23,7 +24,7 @@ ask_examples:
23
24
  - Why didn't the agent see my new note?
24
25
  locale: en-US
25
26
  created: 2026-04-25
26
- updated: 2026-04-25
27
+ updated: 2026-05-28
27
28
  keywords:
28
29
  - obsidian
29
30
  - vault
@@ -36,15 +37,20 @@ related:
36
37
  ui_anchors:
37
38
  - /connections/knowledge
38
39
  config_keys:
40
+ - externalObsidianVaultPath
41
+ - externalObsidianVaultName
42
+ - externalObsidianWatch
39
43
  - obsidianDebounceSeconds
40
44
  ---
41
45
 
42
46
  # Obsidian
43
47
 
44
- ## In One Sentence
48
+ Point Aitne at your Obsidian vault directory; new and changed notes
49
+ record observations the hourly check consumes. The agent can read and
50
+ write vault notes through the `external-services` skill.
45
51
 
46
- Point Aitne at your Obsidian vault directory; new and changed
47
- notes record observations the hourly check consumes.
52
+ Reads and writes go through the Obsidian app's CLI the Obsidian app
53
+ must be running, or vault read/write calls fail.
48
54
 
49
55
  ## What It Does
50
56
 
@@ -52,9 +58,22 @@ notes record observations the hourly check consumes.
52
58
  - Filters out agent-originated writes via `AgentWriteTracker`.
53
59
  - Records observations for genuine operator edits.
54
60
 
61
+ ### Will it edit my notes?
62
+
63
+ The agent reads on demand and can create, append to, overwrite, or
64
+ delete notes when you ask it to (via the `external-services` skill). It
65
+ never edits your vault unprompted. When the agent does write, the
66
+ watcher does not treat its own writes as new observations —
67
+ `AgentWriteTracker` suppresses them — so the agent does not re-observe
68
+ its own output.
69
+
55
70
  ## When It Runs / How It Is Triggered
56
71
 
57
- Continuously. The watcher is debounced by `obsidianDebounceSeconds`.
72
+ Continuously the watcher runs as long as the daemon is up and a vault
73
+ path is configured (`externalObsidianWatch=true`). Saves are debounced
74
+ by `obsidianDebounceSeconds` before an observation is recorded; the
75
+ [hourly check](../routines/hourly-check.md) later consumes those
76
+ observations.
58
77
 
59
78
  ## Where in the Dashboard
60
79
 
@@ -64,10 +83,14 @@ Continuously. The watcher is debounced by `obsidianDebounceSeconds`.
64
83
 
65
84
  | Setting | Default | Notes |
66
85
  |---|---|---|
86
+ | `externalObsidianVaultPath` | unset | Vault directory; set in Connections → Knowledge. |
87
+ | `externalObsidianWatch` | true | Set false to keep the path but stop recording changes (large-vault churn control). |
67
88
  | `obsidianDebounceSeconds` | 5 | How long to wait after a save before recording. |
68
89
 
69
90
  ## When Something Goes Wrong
70
91
 
92
+ - A vault read or write that failed: the Obsidian app must be running,
93
+ since reads and writes proxy through its CLI. Open Obsidian and retry.
71
94
  - A change that did not record: the debounce may have folded multiple
72
95
  saves; the next one will fire.
73
96
 
@@ -26,9 +26,9 @@ tags:
26
26
  - lifestyle
27
27
  - git
28
28
  - github
29
- - automation
29
+ - autonomous
30
30
  - observations
31
- - architecture
31
+ - core
32
32
  status: stable
33
33
  ask_examples:
34
34
  - What is the My Life › Git page for?
@@ -46,7 +46,7 @@ ask_examples:
46
46
  - How much does one Architecture refresh cost?
47
47
  locale: en-US
48
48
  created: 2026-05-05
49
- updated: 2026-05-17
49
+ updated: 2026-05-28
50
50
  keywords:
51
51
  - my life
52
52
  - git
@@ -69,6 +69,20 @@ ui_anchors:
69
69
  - /connections/repositories
70
70
  config_keys:
71
71
  - gitPollIntervalSeconds
72
+ process_keys:
73
+ - git.project.init
74
+ - git.project.update
75
+ - git.project.refresh_architecture
76
+ - git.project.retemplate
77
+ api_endpoints:
78
+ - PUT /api/repositories/:id/architecture-section
79
+ - POST /api/repositories/:id/management/init
80
+ - POST /api/repositories/:id/management/refresh-architecture
81
+ - POST /api/repositories/:id/management/scan
82
+ context_files:
83
+ - knowledge/repos/<slug>/overview.md
84
+ - knowledge/repos/<slug>/README.md
85
+ - journal/repos/<slug>/<date>.md
72
86
  ---
73
87
 
74
88
  # My Life — Git
@@ -86,8 +100,7 @@ mirror of the source README.
86
100
 
87
101
  The page lists every repository registered on
88
102
  **Connections → Repositories** and exposes three collapsible sections
89
- per repo (now **all open by default** so the controls are visible at
90
- a glance):
103
+ per repo (all open by default so the controls are visible at a glance):
91
104
 
92
105
  1. **Polling** — overrides the global `gitPollIntervalSeconds` for
93
106
  this repository alone. Useful when one repo is high-traffic and
@@ -102,12 +115,12 @@ a glance):
102
115
  3. **Daily git management** — opt-in per repo. Enabling it does three
103
116
  distinct kinds of work, on different cadences:
104
117
  - On the first **Run init now** click, writes the curated
105
- `git/<slug>/overview.md` skeleton, mirrors the source `README.*`
106
- to `git/<slug>/README.md`, and **automatically queues a
107
- one-shot Architecture refresh** so the AI agent fills in the
108
- deep Architecture section for you.
109
- - Once a day, the `repository-management-cron` observer iterates
110
- enabled rows and writes `git/<slug>/journal/YYYY-MM-DD.md` if
118
+ `knowledge/repos/<slug>/overview.md` skeleton, mirrors the source
119
+ `README.*` to `knowledge/repos/<slug>/README.md`, and
120
+ **automatically queues a one-shot Architecture refresh** so the AI
121
+ agent fills in the deep Architecture section for you.
122
+ - Once a day, the `RepositoryManagementCron` observer iterates
123
+ enabled rows and writes `journal/repos/<slug>/YYYY-MM-DD.md` if
111
124
  there was activity, plus a one-line entry under
112
125
  `## Daily Activity Log` in `overview.md`.
113
126
  - **Refresh architecture** (the button) re-runs the Architecture
@@ -120,8 +133,9 @@ The agent never pushes, amends, or force-resets. Read-only by design.
120
133
 
121
134
  ## Architecture Section — Deep AI Analysis
122
135
 
123
- The `## Architecture` block of `git/<slug>/overview.md` is wrapped in
124
- `<!-- architecture:start -->` / `<!-- architecture:end -->` markers
136
+ The `## Architecture` block of `knowledge/repos/<slug>/overview.md` is
137
+ wrapped in `<!-- architecture:start -->` / `<!-- architecture:end -->`
138
+ markers
125
139
  and contains a **module map, runtime shape, data flow, persistence
126
140
  model, integrations, build pipeline, and design choices** produced by
127
141
  a Sonnet-class agent that reads the actual code.
@@ -162,8 +176,8 @@ for recovery.
162
176
 
163
177
  ## README Mirror
164
178
 
165
- `git/<slug>/README.md` is a **mechanical verbatim copy** of the
166
- repository's `README.*` (whichever extension exists, with `.md`
179
+ `knowledge/repos/<slug>/README.md` is a **mechanical verbatim copy** of
180
+ the repository's `README.*` (whichever extension exists, with `.md`
167
181
  preferred). It is refreshed on:
168
182
 
169
183
  - Every **Run init now** (initial mirror).
@@ -201,13 +215,13 @@ README is rewritten.
201
215
 
202
216
  ## What It Outputs
203
217
 
204
- Per repository, under `<contextDir>/git/<slug>/`:
218
+ Per repository, under `<contextDir>/`:
205
219
 
206
220
  | File | Source | Refresh cadence |
207
221
  |---|---|---|
208
- | `overview.md` | Daemon (skeleton + Notable Changes + journal log) + Agent (Architecture section) | Skeleton on init; Architecture on init/refresh; daily entry appended on each scan |
209
- | `README.md` | Verbatim copy of `<repo>/README.*` | Every init + every architecture refresh |
210
- | `journal/YYYY-MM-DD.md` | Daemon (commits + PR/workflow observations + diff stat) | Once per day per repo, when activity exists |
222
+ | `knowledge/repos/<slug>/overview.md` | Daemon (skeleton + Notable Changes + journal log) + Agent (Architecture section) | Skeleton on init; Architecture on init/refresh; daily entry appended on each scan |
223
+ | `knowledge/repos/<slug>/README.md` | Verbatim copy of `<repo>/README.*` | Every init + every architecture refresh |
224
+ | `journal/repos/<slug>/<date>.md` | Daemon (commits + PR/workflow observations + diff stat) | Once per day per repo, when activity exists |
211
225
 
212
226
  Polling additionally produces `observation` rows in the database;
213
227
  triggers spawn autonomous sessions whose task-flow is selected by the
@@ -216,7 +230,10 @@ trigger's process key.
216
230
  ## Where in the Dashboard
217
231
 
218
232
  - **My Life → Git** (`/git`) — this page. Polling, Triggers, and Daily
219
- git management are now all expanded by default.
233
+ git management are all expanded by default. The Daily-git-management
234
+ panel's buttons appear in lifecycle order — **Run init now → Refresh
235
+ architecture → Run today's scan now** — and each surfaces an inline
236
+ green confirmation on success or a red error message on failure.
220
237
  - **Connections → Repositories** (`/connections/repositories`) —
221
238
  register a repo (link a `localPath` and/or `owner/repo`), rename,
222
239
  set `local-only`, delete. The model-binding cards visible on this
@@ -226,24 +243,11 @@ trigger's process key.
226
243
  `github.pull_request.review_requested`, `github.workflow_run.failed`)
227
244
  were folded back into the default routing. To pin a different model
228
245
  for any of those, use **Settings → Models** instead.
229
- - **Knowledge** (`/knowledge?path=git/<slug>/overview`) — quick links
230
- on each Daily-git-management panel open the generated overview, the
231
- current day's journal, and (after the architecture refresh
232
- completes) the AI-rich Architecture section in context.
233
-
234
- ## UI polish (2026-05-07)
235
-
236
- - The Daily git management toggle is now a styled switch instead of a
237
- raw checkbox — same behavior, more legible state.
238
- - Init / Refresh architecture / Run today's scan now buttons surface
239
- inline confirmation messages (green) on success and inline error
240
- messages (red) on failure, instead of the previous silent return.
241
- - The button order on the panel is **Run init now → Refresh
242
- architecture → Run today's scan now**, matching the lifecycle order
243
- (one-time skeleton → one-time deep analysis → daily increments).
244
- - The Polling, Triggers, and Daily git management collapsibles all
245
- open by default so a freshly-loaded `/git` page exposes every
246
- per-repo control without an extra click.
246
+ - **Knowledge → Context Files** (`/knowledge?tab=context-files`) — quick
247
+ links on each Daily-git-management panel open the generated overview
248
+ (`knowledge/repos/<slug>/overview.md`), the current day's journal
249
+ (`journal/repos/<slug>/<date>.md`), and (after the architecture
250
+ refresh completes) the AI-rich Architecture section in context.
247
251
 
248
252
  ## Configuration
249
253