@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
@@ -12,19 +12,20 @@ aliases:
12
12
  - on-demand retrospective
13
13
  category: concepts
14
14
  summary: |
15
- Aitne's safety model collapsed from four tiers to two: most
16
- actions run autonomously, a small set of posture-changing operations
17
- require explicit Approve. The previous Notify tier (DM the operator
18
- before / during a write) was abolished — the operator's `deniedTools`
19
- list is now the primary defense, and "what did the agent do?" is
20
- answered on demand via `GET /api/agent/actions` instead of pushed as
21
- a daily digest.
15
+ Aitne's risk classifier dropped from three write tiers to two: most
16
+ actions run autonomously, and a small set of posture-changing
17
+ operations require explicit Approve. The previous Notify tier (DM the
18
+ operator before / during a write) was abolished — the operator's
19
+ `deniedTools` list is now the primary defense, and "what did the
20
+ agent do?" is answered on demand via `GET /api/agent/actions` instead
21
+ of pushed as a daily digest. (The read-gating `ReadSensitive` tier is
22
+ unchanged.)
22
23
  section: safety
23
24
  tags:
24
25
  - core
25
26
  - safety
26
27
  - integrations
27
- - skills
28
+ - audit
28
29
  status: stable
29
30
  ask_examples:
30
31
  - Why doesn't the agent ask before sending an email anymore?
@@ -33,7 +34,7 @@ ask_examples:
33
34
  - Where do I see what the agent has been doing?
34
35
  locale: en-US
35
36
  created: 2026-04-26
36
- updated: 2026-05-17
37
+ updated: 2026-05-28
37
38
  keywords:
38
39
  - deniedTools
39
40
  - safety floor
@@ -50,10 +51,16 @@ related:
50
51
  - reference/disallowed-tools
51
52
  ui_anchors:
52
53
  - /connections
53
- - /settings/cost
54
- config_keys:
55
- - integrations
56
- - deniedTools
54
+ - /connections/mail
55
+ - /connections/calendar
56
+ - /analytics
57
+ api_endpoints:
58
+ - GET /api/agent/actions
59
+ - POST /api/integrations/:key/exec
60
+ - PATCH /api/integrations/:key
61
+ context_files:
62
+ - policies/integrations.md
63
+ - journal/agent.md
57
64
  ---
58
65
 
59
66
  # Safety Model (deniedTools + Approve Tier)
@@ -123,12 +130,9 @@ of "report to me" events. Information about what the agent did is
123
130
  bare `*`.
124
131
  - **`/api/integrations/:key/exec`** — the cross-backend chokepoint
125
132
  (task mode; the RPC-style `/invoke` route was retired 2026-05-01,
126
- see `docs/design/17-delegated-mode-v2.md` §4.2). Enforces `deniedTools`
127
- server-side by filtering the integration's `capabilityTools` through
128
- the deny list before spawning the delegated backend, so the
129
- task-mode planner can only pick from the allowed surface. A
130
- fully-denied surface short-circuits with `errorClass: "denied_tool"`
131
- before any subprocess spawn.
133
+ see `docs/design/17-delegated-mode-v2.md` §4.2). It enforces
134
+ `deniedTools` server-side see the *Where the Defenses Apply* table
135
+ below for the exact mechanism.
132
136
  - **`agent_actions`** — SQLite table of every agent action. Direct +
133
137
  cross-backend rows are full-fidelity (current cross-backend writes
134
138
  emit `delegated_task.run` / `delegated_task.exec` /
@@ -227,12 +231,15 @@ and answers in conversation. The endpoint:
227
231
 
228
232
  - Lives at `Autonomous` tier — the agent reads only its own audit
229
233
  trail, no operator data.
230
- - Accepts `since`, `kind` (repeat for multiple values, e.g.
231
- `?kind=a&kind=b`), `limit` (default 50, max 200).
232
- - Redacts values via the standard secret-redaction utility before
233
- serializing.
234
- - Returns rows from `agent_actions`, optionally joined with
235
- `mcp_tool_calls` when `kind=mcp` (same-backend / native MCP).
234
+ - Accepts `since` (ISO-8601; defaults to the last 24h if omitted),
235
+ `kind` (an `action_type` filter — repeat for multiple values, e.g.
236
+ `?kind=a&kind=b`), and `limit` (default 50, max 200).
237
+ - Redacts the free-text `error` / `detail` fields via the standard
238
+ secret-redaction utility before serializing.
239
+ - Returns rows from `agent_actions` only. Same-backend / native MCP
240
+ calls surface as their own `action_type` rows (e.g. `kind=mcp`);
241
+ the per-call detail lives in `mcp_tool_calls`, which this endpoint
242
+ does not join — query it separately if you need step-level fidelity.
236
243
 
237
244
  Common `kind` values for the cross-backend proxy: `delegated_task.run`
238
245
  (one row per `/exec` call), `delegated_task.exec` (the planner's
@@ -248,7 +255,7 @@ This **replaces** the rejected daily-digest pattern. Reasons:
248
255
  - The operator does not have to manage the agent's reporting calendar.
249
256
 
250
257
  The optional fallback — extending the existing morning routine to
251
- summarize yesterday's `agent_actions` into `agent/journal.md` — is
258
+ summarize yesterday's `agent_actions` into `journal/agent.md` — is
252
259
  deferred until the on-demand path proves insufficient.
253
260
 
254
261
  ## What Stayed Approve-Tier
@@ -268,15 +275,16 @@ Approve still gates:
268
275
 
269
276
  ## Where You See It in the Dashboard
270
277
 
271
- - **Connections → \<integration\> → Tool Permissions** — the
278
+ - **Connections → \<integration\> → Tool Permissions**
279
+ (e.g. `/connections/mail`, `/connections/calendar`) — the
272
280
  `deniedTools` editor with the starter list pre-populated. Above the
273
- editor, the safety guidance prose explains each entry and which the
274
- team recommends keeping.
275
- - **Settings Cost Delegated proxy facet** — only cross-backend
276
- invocations show here; same-backend rolls up under the parent
277
- session.
278
- - **Activity / Audit** — every action with full attribution, queried
279
- the same way the agent queries `GET /api/agent/actions`.
281
+ editor, the safety guidance prose explains each entry and which ones
282
+ are recommended to keep.
283
+ - **Analytics** (`/analytics`) spend and the delegated-task facet;
284
+ only cross-backend invocations show here, while same-backend MCP
285
+ rolls up under the parent session.
286
+ - **Activity** (`/activity`) — every action with full attribution,
287
+ the same audit trail the agent reads via `GET /api/agent/actions`.
280
288
 
281
289
  ## Related
282
290
 
@@ -18,15 +18,17 @@ tags:
18
18
  - skills
19
19
  - safety
20
20
  - knowledge
21
+ - backends
21
22
  status: stable
22
23
  ask_examples:
23
24
  - What skills does the agent have?
24
25
  - How do I add a new skill?
25
26
  - Why does the agent refuse to run a tool?
26
27
  - How does skill self-optimization work?
28
+ - Where do skill overlays live?
27
29
  locale: en-US
28
30
  created: 2026-04-25
29
- updated: 2026-05-15
31
+ updated: 2026-05-28
30
32
  keywords:
31
33
  - SKILL.md
32
34
  - allowed-tools
@@ -45,6 +47,15 @@ ui_anchors:
45
47
  - /knowledge
46
48
  - /connections/mcp
47
49
  - /settings/self-learning
50
+ process_keys:
51
+ - dashboard.docs_qa
52
+ - routine.skill_curation
53
+ config_keys:
54
+ - allowedToolsOverride
55
+ - disallowedTools
56
+ api_endpoints:
57
+ - GET /api/skills
58
+ - GET /api/skills/manifest/:processKey
48
59
  ---
49
60
 
50
61
  # Skills
@@ -71,9 +82,11 @@ visible to the model.
71
82
 
72
83
  - **SKILL.md**: the Markdown file that defines a single skill. Lives
73
84
  under `agent-assets/skills/<slug>/SKILL.md` in the repo and is
74
- materialized into each session workdir as `.claude/skills/<slug>/SKILL.md`
75
- (Codex uses `.codex/skills/`, Gemini uses `.gemini/skills/`, OpenCode
76
- reuses `.claude/skills/` per V2 of docs/design/appendices/opencode-backend.md).
85
+ materialized into each session workdir under a per-backend namespace —
86
+ `.claude/skills/<slug>/` for Claude, `.codex/skills/` for Codex,
87
+ `.gemini/skills/` for Gemini, and `.opencode/skills/` for OpenCode.
88
+ The frontmatter (`name`, `description`, `allowed-tools`) is byte-identical
89
+ across all four; only the destination directory changes.
77
90
  - **`allowed-tools`**: a YAML list in the skill's frontmatter naming
78
91
  tools and patterns the session may use. Patterns like
79
92
  `Bash(curl http://localhost:8321/api/context/*)` are the daemon's
@@ -86,7 +99,7 @@ visible to the model.
86
99
 
87
100
  ## Concrete Examples
88
101
 
89
- - `today` — read and rewrite `today.md`.
102
+ - `today` — read and rewrite `state/today.md`.
90
103
  - `schedule` — produce per-date schedule files from the calendar.
91
104
  - `mail` — search and label messages via the daemon's mail proxy.
92
105
  - `docs-search` — read-only fetch over the docs corpus, used only by
@@ -97,26 +110,29 @@ visible to the model.
97
110
 
98
111
  Skills aren't frozen. A background process — **skill curation** —
99
112
  watches how your knowledge layout drifts (file moves, new
100
- sub-folders, schema tweaks in `user/`, `projects/`, etc.) and
101
- proposes JSON **overlays** that update specific sections of the
113
+ sub-folders, schema tweaks under `identity/`, `plans/projects/`, etc.)
114
+ and proposes JSON **overlays** that update specific sections of the
102
115
  relevant skill: knowledge layout, routing tables, frontmatter
103
116
  schema, search recipes, convention notes, cross-references.
104
117
 
105
- Overlays live at `<dataDir>/overlays/<skill>/<section-id>.json` and
106
- are merged in by the SkillsCompiler at session-init. The original
118
+ Overlays live at `<dataDir>/skill-curation-overlays/<slug>/<section_id>.json`
119
+ and are merged in by the SkillsCompiler at session-init. The original
107
120
  `SKILL.md` files in `agent-assets/skills/` are never rewritten;
108
- disabling the overlay (or deleting the JSON file) reverts to the
121
+ disabling self-learning (or deleting the JSON file) reverts to the
109
122
  seed payload immediately.
110
123
 
111
124
  The optimizer agent runs in an isolated workdir with a tightly
112
125
  scoped toolset (`Bash(curl http://localhost:8321/api/skill-curation/*)`,
113
- `Read`) and an auto-revert safety net if the next run sees more
114
- drift signals than the previous overlay generated, the section is
115
- reverted and frozen for two cycles.
116
-
117
- Curation cadence, manual-run trigger, and the per-skill exclusion
118
- list are surfaced at **Settings Self-learning**
119
- (`/settings/self-learning`).
126
+ `Read`) and an auto-revert safety net: each cadence cycle the daemon
127
+ re-checks recently-applied overlays, and any section that has
128
+ accumulated *more* drift signal weight after the overlay was applied
129
+ than before is rolled back automatically and frozen for two cycles to
130
+ stop thrashing. This is the only roll-back path — there is no
131
+ per-proposal approve/reject API, just the on/off toggle.
132
+
133
+ Skill curation is **off by default**. The master toggle, curation
134
+ cadence, manual-run trigger, and the per-skill exclusion list are all
135
+ surfaced at **Settings → Self-learning** (`/settings/self-learning`).
120
136
 
121
137
  ## Where You See It in the Dashboard
122
138
 
@@ -0,0 +1,195 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: features/integrations/browser-history
4
+ title: Browser History
5
+ id: browser-history
6
+ aliases:
7
+ - browser history
8
+ - browsing history
9
+ - research clusters
10
+ - reload memory
11
+ - B-3
12
+ category: features
13
+ summary: |
14
+ Local-only poller that reads the browser's own SQLite databases
15
+ (Chrome / Safari / Firefox / Arc), records visits as observations,
16
+ derives research clusters from sustained reading patterns, and
17
+ surfaces what you keep refreshing. Nothing leaves the daemon.
18
+ section: integrations
19
+ tags:
20
+ - integrations
21
+ - observations
22
+ - browser-history
23
+ - polling
24
+ - autonomous
25
+ status: stable
26
+ ask_examples:
27
+ - How does Aitne use my browser history?
28
+ - What is a research cluster?
29
+ - What does `!checks` show?
30
+ - Does my browsing data go anywhere?
31
+ - How do I opt out of browser history?
32
+ locale: en-US
33
+ created: 2026-05-22
34
+ updated: 2026-05-28
35
+ keywords:
36
+ - browser history
37
+ - browser history poller
38
+ - research cluster
39
+ - reload signal
40
+ - "!checks"
41
+ - "!research"
42
+ - shopping comparison
43
+ - two-option offer
44
+ - local-only
45
+ related:
46
+ - features/messaging/bang-commands
47
+ - features/integrations/notion
48
+ - features/operations/managed-chromium
49
+ - features/routines/weekly-review
50
+ - features/routines/morning-routine
51
+ ui_anchors:
52
+ - /settings/integrations/browser-history
53
+ config_keys:
54
+ - browserHistoryConsentAccepted
55
+ - browserHistoryBrowserOverrides
56
+ - browserHistoryCategories
57
+ - browserHistoryRetentionDays
58
+ - browserHistorySearchQueryRetentionDays
59
+ - browserHistoryLifecycle
60
+ - browserHistoryResearchDomainAllowlist
61
+ - browserHistoryResearchDomainDenylist
62
+ process_keys:
63
+ - routine.research_cluster_update
64
+ - routine.research_offer_dm
65
+ - routine.research_dispatch
66
+ - routine.research_wiki_summary
67
+ api_endpoints:
68
+ - GET /api/browser-history/status
69
+ - GET /api/browser-history/research-clusters
70
+ - POST /api/browser-history/offers/:slug/accept
71
+ - POST /api/browser-history/offers/:slug/decline
72
+ - GET /api/browser-history/reloads/weekly
73
+ ---
74
+
75
+ # Browser History
76
+
77
+ Aitne can read the SQLite history databases that Chrome, Safari,
78
+ Firefox, and Arc already maintain on disk, classify visits into
79
+ categories, and use the result to notice what you've been
80
+ researching, what you've been refreshing, and what comparison-shopping
81
+ windows you're in. Everything stays local — no URLs, titles, or
82
+ clicks leave the daemon.
83
+
84
+ ## What It Does
85
+
86
+ - **Reads visits** from the browser's own history DB on a 30-min
87
+ cadence (per browser, per profile) and inserts them into the
88
+ daemon's `browser_visits` table.
89
+ - **Counts reloads** per `<domain>/<first-path>` into
90
+ `browser_reload_signals`. Surfaced via [`!checks`](../messaging/bang-commands.md)
91
+ for the agent-day and via the weekly review's "this week you
92
+ checked" block.
93
+ - **Derives research clusters** when a topic crosses meaningful-visits
94
+ / foreground-time / distinct-domain thresholds. Clusters live in
95
+ `browser_research_clusters` with a slug, display name, journal at
96
+ `context/research/<slug>.md`, and a status (`active | dormant |
97
+ muted | concluded`).
98
+ - **Offers engagement DMs** via the Two-Option Offer pattern when a
99
+ cluster qualifies: pick "research dive" (parallel web research +
100
+ summary) or "wiki summary" (Obsidian / Notion / local context).
101
+ Accept paths run through `routine.research_dispatch` /
102
+ `routine.research_wiki_summary`; decline silences offers for 14
103
+ days; mute / unmute / rename / conclude via [`!research`](../messaging/bang-commands.md).
104
+ - **Detects shopping comparison windows** — 90-min sliding windows
105
+ containing ≥3 distinct ASINs surface as comparison sessions the
106
+ agent can summarise.
107
+ - **Powers the pre-morning digest** — yesterday's reading and reload
108
+ patterns feed the morning routine's pre-pass digest.
109
+
110
+ ## Privacy and Consent
111
+
112
+ - **Default off.** The integration does not start until the operator
113
+ flips `browserHistoryConsentAccepted = true` on the
114
+ **Settings → Integrations → Browser History**
115
+ (`/settings/integrations/browser-history`) page. The integration only
116
+ supports `direct` (the daemon poller) or `disabled` — there is no
117
+ delegated or native mode.
118
+ - **Local-only.** No request leaves the daemon. The browser's
119
+ history file is opened read-only; the daemon never reaches into
120
+ cookies, login sessions, or profile dirs other than the history DB.
121
+ - **Per-browser opt-in.** `browserHistoryBrowserOverrides` lets you
122
+ enable / disable each detected browser independently and override
123
+ the DB path for atypical installs.
124
+ - **Per-category gate.** `browserHistoryCategories` controls which
125
+ visit categories (research / shopping / docs / media / …) get
126
+ ingested. Categories you exclude are dropped at ingest time, not
127
+ filtered later.
128
+ - **Retention.** `browserHistoryRetentionDays` (visits) and
129
+ `browserHistorySearchQueryRetentionDays` (search queries) cap the
130
+ on-disk window; older rows are deleted on the next ingest tick.
131
+ - **Domain controls.** `browserHistoryResearchDomainAllowlist` /
132
+ `…Denylist` filter which domains can qualify a research cluster.
133
+
134
+ ## How Clusters Qualify
135
+
136
+ A research cluster qualifies when the combination of meaningful visits,
137
+ foreground time, and distinct domains crosses the thresholds in
138
+ `DEFAULT_OFFER_THRESHOLDS` (tunable via `browserHistoryLifecycle`).
139
+ On each tick the poller evaluates the offer triggers per active cluster
140
+ (`evaluateOfferTriggers`); once the **per-cluster offer rate-limit gate**
141
+ (`gateOfferRateLimit`) approves — this is the 14-day, per-slug offer
142
+ backoff, not the daemon-wide session gate that Phase 9 removed — a
143
+ Two-Option Offer DM is composed by the `routine.research_offer_dm`
144
+ process key.
145
+
146
+ Accepting either path clears every pending-offer row for that slug, so a
147
+ later tick cannot re-offer the same cluster.
148
+
149
+ ## Owner Controls
150
+
151
+ | Surface | What it does |
152
+ |---|---|
153
+ | `!checks` | Today's top reload patterns (pure DB read, safe while paused). |
154
+ | `!research` | List active + dormant clusters. |
155
+ | `!research <slug>` | Show one cluster's detail. |
156
+ | `!research accept <slug>` | Enqueue `routine.research_dispatch`. |
157
+ | `!research wiki <slug>` | Enqueue `routine.research_wiki_summary`. |
158
+ | `!research decline <slug>` | Silence offers for 14 days. |
159
+ | `!research mute <slug>` / `unmute` | Toggle offers off (until unmute) / restore. |
160
+ | `!research rename <slug> <new name>` | Change display name. |
161
+ | `!research conclude <slug>` | Mark concluded; preserve the journal. |
162
+ | Natural-language reply to an offer DM | The `browser-history-respond` skill bridges into the same `/api/browser-history/offers/<slug>/{accept,decline}` call. |
163
+
164
+ ## When It Runs
165
+
166
+ | Signal | Cadence | Source |
167
+ |---|---|---|
168
+ | Visit ingest | Every 30 min per browser profile | `BrowserHistoryPoller` |
169
+ | Cluster engagement evaluation | Same tick as visit ingest | `pipeline/offer-triggers.ts` |
170
+ | Shopping-comparison window scan | Same tick, 7-day lookback | `SHOPPING_COMPARISON_WINDOW_MS` constants |
171
+ | Nightly journal append | Agent-day boundary | `routine.research_cluster_update` (lite tier, one row per active cluster per day) |
172
+ | Weekly reload-memory block | Friday weekly review | `routine.weekly_review` reads `/api/browser-history/reloads/weekly` |
173
+ | Pre-morning digest | Morning routine pre-pass | Yesterday's reading + reloads feed the digest block |
174
+
175
+ ## When Something Goes Wrong
176
+
177
+ - **The settings page shows no browsers.** Open
178
+ `/settings/integrations/browser-history` and run `aitne doctor` — the
179
+ platform detector might be failing to resolve the user's profile dir.
180
+ The daemon log line will name the candidate paths it tried.
181
+ - **A cluster keeps re-offering.** Check the `lastResearchOfferAt` /
182
+ `lastWikiOfferAt` columns; the rate-limit gate uses those for the
183
+ 14-day backoff. `!research decline <slug>` stamps both fields.
184
+ - **`!checks` is empty.** That's the common case for a quiet day —
185
+ the reload signals are gated to the agent-day, not UTC.
186
+
187
+ ## Related
188
+
189
+ - [Managed Chromium](../operations/managed-chromium.md) — separate
190
+ experimental flow for *driving* a Chromium profile (B-4), not
191
+ reading browser history.
192
+ - [Weekly Review](../routines/weekly-review.md)
193
+ - [Morning Routine](../routines/morning-routine.md)
194
+ - [Bang Commands](../messaging/bang-commands.md)
195
+ - [Glossary: Research Cluster](../../glossary.md#research-cluster)
@@ -10,16 +10,18 @@ aliases:
10
10
  category: features
11
11
  summary: |
12
12
  The calendar integration pulls your events into Aitne so the
13
- morning routine, schedule files, and travel-time skill can reason
14
- about your day. The Connections → Calendar page also picks the
15
- backend that handles approaching-event notifications and observed
16
- calendar changes (Calendar Event Model) — that picker only applies
17
- when the integration runs in direct mode.
13
+ morning routine and schedule files can reason about your day.
14
+ The Connections → Calendar page also picks the backend that handles
15
+ observed calendar changes (the Calendar Event Model card, binding
16
+ calendar.change) — that picker only applies when the integration runs
17
+ in direct mode.
18
18
  section: integrations
19
19
  tags:
20
20
  - integrations
21
21
  - calendar
22
22
  - core
23
+ - observations
24
+ - polling
23
25
  status: stable
24
26
  ask_examples:
25
27
  - How do I connect my Google Calendar?
@@ -28,10 +30,10 @@ ask_examples:
28
30
  - What is the Calendar Event Model setting on the Connections page?
29
31
  - Why is the Calendar Event Model card missing when my calendar is delegated?
30
32
  - Will Aitne notice calendar changes while my calendar is delegated?
31
- - Which model handles approaching-event reminders?
33
+ - Which model handles detected calendar changes?
32
34
  locale: en-US
33
35
  created: 2026-04-25
34
- updated: 2026-04-28
36
+ updated: 2026-05-28
35
37
  keywords:
36
38
  - calendar
37
39
  - google calendar
@@ -47,25 +49,28 @@ keywords:
47
49
  related:
48
50
  - features/routines/morning-routine
49
51
  - features/memory-files/schedule
52
+ - features/operations/schedule-approaching
50
53
  - concepts/delegated-mode
51
54
  - concepts/process-keys
52
55
  - concepts/observations
53
56
  ui_anchors:
54
57
  - /connections/calendar
55
58
  api_endpoints:
56
- - /api/calendar
59
+ - /api/calendar/calendars
60
+ - /api/calendar/events
61
+ - /api/calendar/freebusy
57
62
  config_keys:
58
63
  - calendarPollIntervalSeconds
59
64
  process_keys:
60
65
  - calendar.change
66
+ - schedule.approaching
61
67
  ---
62
68
 
63
69
  # Calendar
64
70
 
65
- ## In One Sentence
66
-
67
- Pull events from one or more calendars (Google Calendar today, more
68
- backends planned) so Aitne can plan your day around them.
71
+ Aitne pulls events from one or more calendars (Google Calendar today,
72
+ more backends planned) so it can build today's plan around them and
73
+ DM you ahead of meetings that matter.
69
74
 
70
75
  ## What It Does
71
76
 
@@ -73,11 +78,13 @@ backends planned) so Aitne can plan your day around them.
73
78
  - **Records observations** when events change (add / move / remove),
74
79
  consumed by the hourly check.
75
80
  - **Surfaces today's events** to the morning routine so they land in
76
- `today.md` and the day's schedule file.
81
+ `state/today.md` and the day's schedule file.
77
82
  - **Reads** events on demand for reactive turns ("am I free at 3?").
78
83
 
79
- The agent can create events when the operator asks (a `notify`-tier
80
- action). It does not auto-schedule on its own.
84
+ The agent can create, move, or delete events when the operator asks
85
+ (`POST`/`PATCH`/`DELETE /api/calendar/events`, all Autonomous-tier no
86
+ approval prompt). It does not auto-schedule on its own; it acts only on
87
+ an explicit request.
81
88
 
82
89
  ## When It Runs / How It Is Triggered
83
90
 
@@ -99,22 +106,24 @@ action). It does not auto-schedule on its own.
99
106
  ## Calendar Event Model
100
107
 
101
108
  The Calendar Event Model picker chooses the backend and model that
102
- runs when the agent reacts to a calendar event. It binds the
103
- `calendar.change` ProcessKey, which fires from the calendar poller in
104
- three situations:
109
+ runs when the **daemon-side poller detects a calendar change**. It binds
110
+ the `calendar.change` ProcessKey, which fires in two situations:
105
111
 
106
- - An event is about to start (the operator gets an approaching-event
107
- reminder).
108
112
  - An event was added, moved, or deleted between polls (recorded as a
109
113
  change observation; the hourly check picks it up).
110
- - An event was created far in advance (long-horizon events nudge the
111
- roadmap-refresh routine so `roadmap.md` can build a preparation
112
- timeline).
114
+ - An event was created far in advance (long-horizon events more than 14
115
+ days out nudge the roadmap-refresh routine so `plans/roadmap.md` can
116
+ build a preparation timeline).
117
+
118
+ Approaching-event reminders are a separate flow: they fire on the
119
+ `schedule.approaching` ProcessKey, not `calendar.change`, and are not
120
+ configured by this card. See [Schedule Approaching](../operations/schedule-approaching.md).
113
121
 
114
- Light tier is the default and almost always sufficient — these flows
115
- are classification and scheduling, not generation. The default backend
116
- is whichever you picked as your main backend during setup; you can
117
- override per-process here if you want a different mix.
122
+ Light tier (Haiku 4.5 / gpt-5.4-mini) is the default and almost always
123
+ sufficient — these flows are event classification at low cost, not
124
+ generation. The default backend is whichever you picked as your main
125
+ backend during setup; you can override per-process here if you want a
126
+ different mix.
118
127
 
119
128
  The picker is **only meaningful when Google Calendar runs in direct
120
129
  mode.** In delegated mode the daemon hands off all Google Calendar
@@ -157,7 +166,8 @@ rather than an env-style setting; the underlying state lives in the
157
166
  ## Related
158
167
 
159
168
  - [Morning Routine](../routines/morning-routine.md)
160
- - [daily/ files](../memory-files/schedule.md)
169
+ - [Schedule files](../memory-files/schedule.md)
170
+ - [Schedule Approaching](../operations/schedule-approaching.md)
161
171
  - [Delegated Mode](../../concepts/delegated-mode.md)
162
- - [ProcessKeys](../../concepts/process-keys.md)
172
+ - [Process Keys](../../concepts/process-keys.md)
163
173
  - [Observations](../../concepts/observations.md)
@@ -17,19 +17,22 @@ tags:
17
17
  - integrations
18
18
  - git
19
19
  - observations
20
+ - polling
20
21
  status: stable
21
22
  ask_examples:
22
23
  - How do I add a git repo to watch?
23
24
  - Will the agent message me on every commit?
24
25
  - Can the agent push to my repos?
26
+ - How often does the daemon poll my repos?
25
27
  locale: en-US
26
28
  created: 2026-04-25
27
- updated: 2026-04-25
29
+ updated: 2026-05-28
28
30
  keywords:
29
31
  - git
30
32
  - commit
31
33
  - repository
32
34
  - observer
35
+ - polling
33
36
  related:
34
37
  - features/integrations/github
35
38
  - features/routines/hourly-check
@@ -38,12 +41,17 @@ ui_anchors:
38
41
  - /connections/repositories
39
42
  config_keys:
40
43
  - gitPollIntervalSeconds
44
+ process_keys:
45
+ - git.push.detected
46
+ - git.lifecycle.poll
47
+ api_endpoints:
48
+ - /api/git/log
49
+ - /api/git/diff
50
+ - /api/git/show
41
51
  ---
42
52
 
43
53
  # Git
44
54
 
45
- ## In One Sentence
46
-
47
55
  Add local git repositories to a watched set; the daemon polls them
48
56
  and the hourly check decides whether the recent activity is worth
49
57
  flagging.
@@ -72,19 +80,22 @@ by design.
72
80
 
73
81
  ## Where in the Dashboard
74
82
 
75
- - **Connections → Git** lists the watched paths and last-poll times.
83
+ - **Connections → Repositories** lists the watched paths and last-poll
84
+ times. Git repos are managed as part of the unified Repositories
85
+ surface (the same place that links a local checkout to its GitHub
86
+ remote).
76
87
 
77
88
  ## Configuration
78
89
 
79
90
  | Setting | Default | Notes |
80
91
  |---|---|---|
81
- | `gitPollIntervalSeconds` | 300 | How often to scan watched repos. |
92
+ | `gitPollIntervalSeconds` | 3600 | How often to scan watched repos. |
82
93
 
83
94
  ## When Something Goes Wrong
84
95
 
85
96
  - A **missing observation** for a commit you just made: check that the
86
- repo path is actually watched on `/connections/git` and that the
87
- poll has fired since.
97
+ repo path is actually watched on `/connections/repositories` and that
98
+ the poll has fired since (it runs every `gitPollIntervalSeconds`).
88
99
  - A repo that **never appears** in observations: the agent's own
89
100
  writes are filtered out (see `AgentWriteTracker`); make sure the
90
101
  commit was authored by you, not by an agent session.