@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
@@ -8,6 +8,7 @@ aliases:
8
8
  - vocabulary
9
9
  - lexicon
10
10
  category: glossary
11
+ section: glossary
11
12
  summary: |
12
13
  Single flat term list for Aitne vocabulary. Cross-references
13
14
  link to a single canonical anchor here so concept docs do not drift.
@@ -23,9 +24,18 @@ ask_examples:
23
24
  - What is OpenCode?
24
25
  - What is a routine pre-pass?
25
26
  - What is the wiki workspace?
27
+ - What is an integration mode?
28
+ - What is native mode?
29
+ - What is B-3 / browser history?
30
+ - What is B-4 / managed Chromium?
31
+ - What is a schema migration?
32
+ - What is execution permission mode?
33
+ - What is a bang command?
34
+ - What is deniedTools?
35
+ - What is an observation?
26
36
  locale: en-US
27
37
  created: 2026-04-25
28
- updated: 2026-05-15
38
+ updated: 2026-05-28
29
39
  keywords:
30
40
  - terminology
31
41
  - vocabulary
@@ -37,13 +47,46 @@ keywords:
37
47
  - observation
38
48
  - skill
39
49
  - wiki workspace
50
+ - integration mode
51
+ - native mode
52
+ - delegated mode
53
+ - browser history
54
+ - managed chromium
55
+ - schema migration
56
+ - execution permission mode
57
+ - research cluster
58
+ - bang command
59
+ - deniedTools
60
+ - safety model
40
61
  related:
41
62
  - concepts/agent-day
42
63
  - concepts/backends-and-tiers
43
64
  - concepts/process-keys
44
65
  - concepts/observations
66
+ - concepts/delegated-mode
67
+ - concepts/safety-and-execution
68
+ - concepts/safety-model
45
69
  - features/routines/morning-routine
46
70
  - features/wiki/overview
71
+ - features/integrations/browser-history
72
+ - features/messaging/bang-commands
73
+ ui_anchors:
74
+ - /settings/models
75
+ - /docs
76
+ - /settings/integrations/browser-history-managed/b4
77
+ process_keys:
78
+ - dashboard.docs_qa
79
+ - delegated_task_heavy
80
+ - routine.fetch_window
81
+ - routine.hourly_check
82
+ - routine.research_cluster_update
83
+ config_keys:
84
+ - dayBoundaryHour
85
+ - browserTaskHostnameDenylist
86
+ - delegatedTaskHeavyEnabled
87
+ - claudeExecutionPermissionMode
88
+ api_endpoints:
89
+ - POST /api/observations
47
90
  ---
48
91
 
49
92
  # Glossary
@@ -65,6 +108,42 @@ One of the model providers Aitne can dispatch to: `claude`
65
108
  per-installation; one is the **main backend**, and the others can be
66
109
  enabled as fallbacks.
67
110
 
111
+ ## Browser History (B-3)
112
+
113
+ Local-only history poller that reads the browser's own SQLite database
114
+ (Chrome / Safari / Firefox / Arc) and records page visits as
115
+ observations. Drives the **research cluster** derivation, the weekly
116
+ reload-memory block, and the [`!checks`](features/messaging/bang-commands.md)
117
+ on-demand reload tally. No content is uploaded; only URLs, titles, and
118
+ visit timings the browser itself recorded. See
119
+ [Browser History](features/integrations/browser-history.md).
120
+
121
+ ## Managed Chromium (B-4)
122
+
123
+ Experimental purchase-confirmation flow that drives a daemon-spawned
124
+ Chromium profile to complete a vendor checkout the agent has already
125
+ prepared. **Default-off.** Requires per-site opt-in, the experimental-
126
+ danger acknowledgement modal, at least one DM channel, a single-use
127
+ `!~xxxxxxxx` token, screenshot-first consent, and a 5-min timeout. There
128
+ is no longer a hardcoded domain category denylist (banks, government,
129
+ payment processors, etc. were removed at the framework level on
130
+ 2026-05-27); domain-level deny is operator-managed via **Settings →
131
+ Integrations → Browser History (Managed) → B-4** (`browserTaskHostnameDenylist`,
132
+ default empty). The structural defences that remain: the IP CIDR layer
133
+ in `shouldDenyEgress` (RFC1918 / loopback / cloud-metadata), the
134
+ form-submit `payment-path-blocker`, and the single-use token primitive.
135
+ Operator self-testing only until B-3 has been stable for six weeks. See
136
+ [Managed Chromium](features/operations/managed-chromium.md).
137
+
138
+ ## Bang Command
139
+
140
+ Short, owner-only command typed in a paired DM that starts with `!`
141
+ (e.g. `!help`, `!stop`, `!cost`, `!report`, `!checks`, `!research`,
142
+ `!ingest`, `!compile`, `!ask`). Handled by the daemon directly — no
143
+ LLM call, no cost, no session opened. Built-in commands plus operator-
144
+ enabled custom commands appear in `!help`. See
145
+ [Bang Commands](features/messaging/bang-commands.md).
146
+
68
147
  ## Backend Router
69
148
 
70
149
  The component that resolves a `ProcessKey` to a concrete `(backend,
@@ -84,28 +163,80 @@ matching anchor.
84
163
  The hour-of-day at which the agent day rolls over. Configured via
85
164
  `dayBoundaryHour` (default `4`).
86
165
 
166
+ ## deniedTools
167
+
168
+ Per-integration deny list of tool names (or prefix globs like
169
+ `send_*`) the agent must not call. The primary defense against
170
+ unwanted destructive actions in the [Safety Model](concepts/safety-model.md).
171
+ Editable in **Connections → \<integration\> → Tool Permissions**;
172
+ seeded with a recommended starter list on first delegated setup.
173
+ Patterns are validated against the connector's `capabilityTools` set
174
+ at PATCH time so typos fail fast.
175
+
176
+ ## Execution Permission Mode
177
+
178
+ Per-backend `Safe` / `Allow` posture, set independently for each
179
+ registered backend via
180
+ `{claude,codex,gemini,opencode}ExecutionPermissionMode`. **Safe** =
181
+ strict per-call permission checks plus the Claude curl/jq hooks,
182
+ Codex `workspace-write` sandbox, and Gemini whitelist TOML. **Allow** =
183
+ SDK bypass / sandbox off / minimal TOML. The absolute-block layer
184
+ (recursive delete, sudo, secret-file reads/writes) is enforced in
185
+ *both* modes — `allowedToolsOverride` cannot widen past it. Codex
186
+ allow mode cannot enforce the absolute-block layer for shell commands
187
+ (no hook surface); the gap is documented in
188
+ `docs/design/09-safety-cost.md`. See
189
+ [Safety and Execution](concepts/safety-and-execution.md).
190
+
191
+ ## Integration Mode
192
+
193
+ The per-integration posture for how Aitne ingests events from a
194
+ connected service: `direct | delegated | native | disabled`.
195
+
196
+ - **direct** — the daemon runs its own poller against the integration's
197
+ API.
198
+ - **delegated** — a lite-tier `delegated-sync-worker` polls on opt-in
199
+ cadences (see `docs/design/appendices/delegated-sync-opt-in.md`).
200
+ - **native** — no poller; the main backend reaches the integration
201
+ through its own MCP connector and POSTs observations in-turn via
202
+ `/api/observations`. Two variants: **descriptor-driven** (the
203
+ integration ships a `backendConnectors` entry — `gmail`,
204
+ `google_calendar`, `notion`) and **user-managed** (the descriptor
205
+ declares `userManagedConnector: true` and the user installs their own
206
+ MCP / skill harness — `outlook_mail`, `outlook_calendar`).
207
+ - **disabled** — silence; no poller, no native handoff.
208
+
209
+ Mode lookup goes through `getIntegrationState(db, key)`; never
210
+ hardcode an integration reference outside
211
+ `packages/shared/src/integrations.ts`. See
212
+ [Delegated Mode](concepts/delegated-mode.md).
213
+
87
214
  ## Heavy Tier
88
215
 
89
216
  Synonym for the **high** tier — the expensive, high-quality model lane
90
- on each backend (Claude Opus 4.7, GPT-5.5, Gemini 3 Pro, Opus 4.7 via
91
- OpenCode). Registered but not auto-selected on any routine: after
92
- `docs/design/appendices/morning-routine-optimization.md` Phase 7
93
- (2026-05-16) the only flows that default to this tier are `setup` and
94
- `knowledge.import`. Operators can pin any other process key to high
95
- per row from `/settings/models`.
217
+ on each backend (Claude Opus 4.8 / `claude-opus-4-8`, `gpt-5.5` on
218
+ Codex, `gemini-3.1-pro-preview` on Gemini, Opus 4.8 via OpenCode).
219
+ Registered but not auto-selected on any install-seeded surface: after
220
+ the "no Opus by default" pass (2026-05-16) the **only** process key that
221
+ defaults to high tier is `delegated_task_heavy` (opt-in, gated by the
222
+ `delegatedTaskHeavyEnabled` flag). Every other process key — including
223
+ `setup` and `knowledge.import` — defaults to medium. Operators can pin
224
+ any other process key to high per row from the `/settings/models`
225
+ dashboard page.
96
226
 
97
227
  ## Light Tier
98
228
 
99
229
  Operator-facing umbrella for the two non-heavy lanes on each backend:
100
230
 
101
- - **Medium / Main** (Claude Sonnet 4.6, GPT-5.4-mini, Gemini 3 Flash,
102
- Sonnet 4.6 via OpenCode) — default for owner DMs, dashboard chat,
103
- the hourly check, and the morning / evening / weekly review
104
- routines.
105
- - **Lite / Delegated** (Claude Haiku 4.5 and equivalents) — reserved
106
- for mechanical / delegated surfaces: Gmail classification, GitHub
107
- triage, calendar-change handlers, the routine pre-pass fetcher,
108
- the `delegated_task` invoker.
231
+ - **Medium / Main** (Claude Sonnet 4.6, `gpt-5.4` on Codex,
232
+ `gemini-3.1-pro-preview` on Gemini, Sonnet 4.6 via OpenCode) —
233
+ default for owner DMs, dashboard chat, the hourly check, and the
234
+ morning / evening / weekly review routines.
235
+ - **Lite / Delegated** (Claude Haiku 4.5, `gpt-5.4-mini` on Codex,
236
+ `gemini-3.1-flash-lite-preview` on Gemini, Haiku 4.5 via OpenCode)
237
+ reserved for mechanical / delegated surfaces: Gmail classification,
238
+ GitHub triage, calendar-change handlers, the routine pre-pass
239
+ fetcher, the `delegated_task` invoker.
109
240
 
110
241
  ## OpenCode
111
242
 
@@ -128,6 +259,16 @@ main routine then consumes the resulting `<fetch_report>` block and
128
259
  pending observations instead of calling upstream APIs itself. Introduced
129
260
  in 2026-05 to trim morning-routine input tokens by ~24%.
130
261
 
262
+ ## Observation
263
+
264
+ One row in the `observations` table. A change record a polling
265
+ integration (Obsidian, Git, Notion, calendar, mail, browser history)
266
+ or a `routine.fetch_window` pre-pass wrote into SQLite. The
267
+ `routine.hourly_check` is the consumer — there is no per-change
268
+ notification. `actor='agent'` rows are filtered out by the consumer
269
+ to break the agent-observing-its-own-writes loop. See
270
+ [Observations](concepts/observations.md).
271
+
131
272
  ## ProcessKey
132
273
 
133
274
  The branded string identifier for a class of agent invocation, e.g.
@@ -135,12 +276,40 @@ The branded string identifier for a class of agent invocation, e.g.
135
276
  backend selection, skill manifest, agent profile, and task-flow
136
277
  template lookup. Defined in `packages/shared/src/process-key.ts`.
137
278
 
279
+ ## Research Cluster
280
+
281
+ A topic the browser-history poller derives from a user's reading
282
+ pattern when meaningful visits, foreground time, and distinct domains
283
+ cross a threshold. Each cluster has a slug, a display name, a journal
284
+ file at `context/research/<slug>.md`, and a status
285
+ (`active | dormant | muted | concluded`). Surfaced via the
286
+ **Two-Option Offer DM** (research dive vs. wiki summary) and the
287
+ [`!research`](features/messaging/bang-commands.md) bang prefix.
288
+
289
+ ## Schema Migration
290
+
291
+ Forward-only, append-only, idempotent migration entry in
292
+ `packages/daemon/src/db/migrations.ts:MIGRATIONS`. Runs right after
293
+ `applySchema(db)` at boot; applied ids are recorded in
294
+ `schema_migrations` so each runs at most once per DB. Used for any
295
+ non-additive change to a pre-existing structure — `ALTER TABLE ADD
296
+ COLUMN`, `CREATE INDEX` on a column added by a prior migration, data
297
+ backfill, or a `settings_json` shape change whose old value won't parse
298
+ under the new schema. Gating ALTERs behind `columnExists` /
299
+ `tableExists` / `indexExists` keeps a fresh DB (where `applySchema`
300
+ already produced the target state) a no-op. The legacy reinstall
301
+ escape hatch still exists as a last resort, but **migrations are the
302
+ upgrade path** — see [Reinstall Cleanly](guides/reinstall-cleanly.md).
303
+
138
304
  ## QA Panel
139
305
 
140
306
  The right-side pane on `/docs` and the bottom of the `?`-button
141
307
  slide-over that runs grounded question answering over the docs corpus.
142
- Runs on the operator's DM-bound backend at the **light tier** —
143
- inherited from `message.dm`'s binding via the cascade-write helper.
308
+ Dispatched under the `dashboard.docs_qa` ProcessKey, which is **hard
309
+ tier-locked to medium** (`TIER_LOCKED_PROCESS_KEYS` in
310
+ `packages/shared/src/process-key.ts`) — an operator pin to a different
311
+ tier is ignored. The backend itself is inherited from the operator's
312
+ DM-bound backend via the cascade-write helper.
144
313
 
145
314
  ## Skill
146
315
 
@@ -157,26 +326,68 @@ the row key in `fts_docs`, and the first half of every
157
326
 
158
327
  ## Tier
159
328
 
160
- Short for **model tier**: `light` or `heavy`. Each ProcessKey has a
161
- default tier; per-process pins and per-call requested-tier overrides can
162
- deviate from that default.
329
+ Short for **model tier**. The code-level enum (`ProcessModelTier` in
330
+ `packages/shared/src/process-key.ts`) has three values `lite`,
331
+ `medium`, `high`. This doc also uses the operator-facing two-way split
332
+ **light** (lite + medium) vs **heavy** (high); see [Light Tier](#light-tier)
333
+ and [Heavy Tier](#heavy-tier). Each ProcessKey has a default tier;
334
+ per-process pins and per-call requested-tier overrides can deviate from
335
+ that default, except for keys in `TIER_LOCKED_PROCESS_KEYS` (today only
336
+ `dashboard.docs_qa`, locked to medium).
337
+
338
+ ## Two-Option Offer DM
339
+
340
+ DM pattern used for research-cluster offers and any other follow-up
341
+ where the user has two natural choices. Sends one DM with two distinct
342
+ actions (e.g. "research dive" vs. "wiki summary") instead of a single
343
+ yes/no prompt; the user replies with the matching `!research` subcommand
344
+ to accept either path. Replaces the older single-option offer for
345
+ ambiguous-intent surfaces.
163
346
 
164
347
  ## Today.md
165
348
 
166
349
  The current agent day's main memory file under
167
- `~/.personal-agent/context/today.md`. Rebuilt once per day by the
350
+ `~/.personal-agent/context/state/today.md`. Rebuilt once per day by the
168
351
  morning routine and edited by every DM, observation, and routine that
169
352
  needs to record state for the day.
170
353
 
171
354
  ## Wiki Workspace
172
355
 
173
356
  A single named root the wiki feature writes into. Either **internal**
174
- (`~/.personal-agent/wiki/`) or **external** (a path you point at, often
175
- an existing Obsidian vault). Every wiki bang command targets a
176
- workspace; omitting the `@<workspace>` token addresses the default.
357
+ (`~/.personal-agent/context/knowledge/wiki/` after the context-vault v2 restructure;
358
+ pre-v2 installs lived at `~/.personal-agent/wiki/`) or **external**
359
+ (a path you point at, often an existing Obsidian vault). Every wiki bang
360
+ command targets a workspace; omitting the `@<workspace>` token addresses the default.
177
361
  See [Wiki Overview](features/wiki/overview.md) and
178
362
  [Multiple Wikis](guides/multiple-wikis-for-multiple-domains.md).
179
363
 
364
+ ## Authority Class
365
+
366
+ One of the six top-level partitions of the vault — `identity/`, `state/`,
367
+ `plans/`, `journal/`, `knowledge/`, `policies/`. Each class carries a
368
+ distinct authority + lifecycle contract; the daemon enforces by reading
369
+ file frontmatter (Phase 1 advisory; Phase 2 strict). Established by the
370
+ context-vault v2 restructure (CONTEXT_VAULT_REDESIGN_PLAN.md). See
371
+ [Knowledge Layout](reference/knowledge-layout.md) for what lives in each.
372
+
373
+ ## Context Vault v2
374
+
375
+ The vault layout introduced by the context-vault v2 restructure
376
+ (migration id `0004-context-vault-restructure`) — six authority classes,
377
+ in-process legacy path alias, `wiki/` and `integrations.md` and user
378
+ `skills/` consolidated under the vault root. Migrates forward-only on
379
+ first boot of the cutover release; never destroys user data. See
380
+ [Knowledge Layout](reference/knowledge-layout.md).
381
+
382
+ ## Frontmatter Contract
383
+
384
+ YAML preamble in each vault MD file declaring `kind` (one of the six
385
+ class names), `authority` (`user` / `agent` / `mixed`), `mutability`
386
+ (`replace` / `patch` / `append` / `readonly`), `slug`, and `title`.
387
+ Parsed by `core/context-validation/frontmatter.ts`. Phase 1 logs
388
+ warnings on missing/invalid frontmatter; Phase 2 rejects the write.
389
+ Toggle: `runtimeSettings.contextVault.enforceFrontmatter` (default `false`).
390
+
180
391
  ## Wiki Layers
181
392
 
182
393
  The four directories every workspace contains:
@@ -10,30 +10,42 @@ aliases:
10
10
  - scheduled task
11
11
  category: guides
12
12
  summary: |
13
- Define a new autonomous routine — slug, cron expression, tier, and
13
+ Define a new autonomous routine — slug, cron expression, model tier, and
14
14
  budget cap — via /settings/routines. The form writes a vault file at
15
- routines/custom/<slug>.md.
15
+ policies/routines/custom/<slug>.md; saving it registers the cron job.
16
16
  section: add-a-custom-routine
17
17
  tags:
18
- - guide
18
+ - guides
19
19
  - routines
20
20
  - scheduler
21
+ - autonomous
22
+ - core
21
23
  status: stable
22
24
  ask_examples:
23
25
  - How do I add a custom routine?
24
26
  - What can a custom routine do?
27
+ - How do I schedule the agent to run on a cron?
25
28
  locale: en-US
26
29
  created: 2026-04-25
27
- updated: 2026-04-25
30
+ updated: 2026-05-28
28
31
  keywords:
29
32
  - custom routine
30
33
  - schedule
31
34
  - cron
32
35
  - recurrence
33
- - PUT /api/recurring-schedules
36
+ - backend_tier
37
+ - process_key
38
+ ui_anchors:
39
+ - /settings/routines
40
+ api_endpoints:
41
+ - PUT /api/context/*
42
+ context_files:
43
+ - policies/routines/custom/<slug>.md
34
44
  related:
35
45
  - features/routines/custom-routines
36
46
  - concepts/routines
47
+ - concepts/process-keys
48
+ - concepts/backends-and-tiers
37
49
  ---
38
50
 
39
51
  # Add a Custom Routine
@@ -50,22 +62,48 @@ Make the agent fire a particular kind of work on a schedule you pick.
50
62
 
51
63
  1. Open `/settings/routines` (the older `/connections/routines` URL
52
64
  redirects here).
53
- 2. Click "Add custom routine".
65
+ 2. Click **Add**. The "New custom routine" dialog opens.
54
66
  3. Fill the form:
55
- - **Slug** — kebab-case (e.g. `tuesday-notion-sweep`); becomes the
56
- ProcessKey `routine.custom.<slug>` and the file name
57
- `routines/custom/<slug>.md`.
58
- - **Cron expression** — standard 5-field cron (e.g. `0 11 * * 2`).
59
- The form previews the next three fires.
60
- - **Backend tier** `light` or `heavy`. Custom routines have no
61
- concrete model picker; tier determines which model the
62
- BackendRouter resolves at fire time.
63
- - **Max budget USD** per-execute cap (default `0.05`).
64
- - **Description** free-text. Becomes the body of the generated
65
- vault file under `## Checks`. Edit the file later to refine the
66
- check list.
67
- 4. Save. The dashboard writes the vault file; the next-fire timestamp
68
- appears in the routine table.
67
+ - **Slug** — lowercase kebab-case, 1–64 chars, no leading/trailing
68
+ hyphen (e.g. `tuesday-notion-sweep`). It becomes the ProcessKey
69
+ `routine.custom.<slug>` and the file name
70
+ `policies/routines/custom/<slug>.md`.
71
+ - **Cron expression** standard 5-field cron in the daemon's
72
+ timezone (e.g. `0 11 * * 2` for 11:00 every Tuesday). The dialog
73
+ previews the next three fire times.
74
+ - **Backend tier** `lite` (Haiku), `medium` (Sonnet), or `high`
75
+ (Opus). Default is `medium`. Custom routines have no concrete
76
+ model picker; the tier is written to the file's `backend_tier`
77
+ frontmatter, and the BackendRouter resolves the actual model at
78
+ fire time. (See [Backends and tiers](../concepts/backends-and-tiers.md).)
79
+ - **Max budget (USD)** per-execute cap (default `0.05`; must be a
80
+ positive number).
81
+ - **Description** — optional free text. It becomes the body of the
82
+ generated vault file, above an empty `## Checks` section seeded
83
+ with a `### First check` placeholder. Edit the file later on the
84
+ same page to flesh out the check list.
85
+ 4. Click **Create**. The dashboard writes the vault file via the
86
+ context API (`PUT /api/context/policies/routines/custom/<slug>`).
87
+ Because the file ships with `enabled: true` and a `cron:` field,
88
+ saving it registers (or refreshes) the cron job, and the next-fire
89
+ timestamp appears in the routine list.
90
+
91
+ The generated file looks roughly like this:
92
+
93
+ ```yaml
94
+ ---
95
+ type: rule
96
+ slug: tuesday-notion-sweep
97
+ cron: "0 11 * * 2"
98
+ process_key: routine.custom.tuesday-notion-sweep
99
+ enabled: true
100
+ backend_tier: medium
101
+ max_budget_usd: 0.05
102
+ ---
103
+ ```
104
+
105
+ To stop a routine without deleting it, set `enabled: false` in the
106
+ file and save — that unregisters the cron job.
69
107
 
70
108
  ## Verification
71
109
 
@@ -74,9 +112,11 @@ Make the agent fire a particular kind of work on a schedule you pick.
74
112
 
75
113
  ## If It Fails
76
114
 
77
- - A cron that resolves to "never": the dashboard refuses to save it.
78
- - A prompt that hits absolute-block guardrails: the routine fires
79
- but the offending tool call is logged as `blocked_absolute`.
115
+ - A cron that resolves to "never" (or is otherwise invalid): the
116
+ dialog shows the preview error and refuses to save it.
117
+ - A prompt that hits the absolute-block guardrails: the routine fires
118
+ but the offending tool call is logged as `blocked_absolute` in the
119
+ action log.
80
120
 
81
121
  ## Related
82
122
 
@@ -10,29 +10,33 @@ aliases:
10
10
  - context backup
11
11
  category: guides
12
12
  summary: |
13
- Aitne's data lives in two placesthe SQLite database and
14
- the context Markdown files. Back both up and restoration is a tar
15
- extract.
13
+ Aitne's durable state lives in one directoryPA_DATA_DIR
14
+ (~/.personal-agent), holding the SQLite database and the context
15
+ Markdown vault. Back it up with a tar after stopping the daemon;
16
+ restoring is a tar extract. Secrets live in the OS keychain, not
17
+ this directory, so re-register them after a restore.
16
18
  section: backup-and-restore
17
19
  tags:
18
- - guide
20
+ - guides
19
21
  - operations
20
22
  - backup
21
23
  status: stable
22
24
  ask_examples:
23
25
  - How do I back up Aitne?
24
26
  - Can I restore on a new machine?
27
+ - Why are my API keys gone after restoring a backup?
25
28
  locale: en-US
26
29
  created: 2026-04-25
27
- updated: 2026-04-25
30
+ updated: 2026-05-28
28
31
  keywords:
29
32
  - backup
30
33
  - restore
31
34
  - tarball
32
- - rsync
33
- - git
34
35
  - PA_DATA_DIR
35
36
  - snapshot
37
+ - keychain
38
+ - secrets
39
+ - SQLite
36
40
  related:
37
41
  - guides/reinstall-cleanly
38
42
  - guides/migrate-machines
@@ -42,25 +46,85 @@ related:
42
46
 
43
47
  ## Goal
44
48
 
45
- Capture all Aitne state in a tar that you can restore later.
49
+ Capture all of Aitne's durable state in a single tar archive you can
50
+ restore later — on this machine or a fresh one.
51
+
52
+ ## What's in the backup (and what isn't)
53
+
54
+ Everything Aitne persists lives under `PA_DATA_DIR` (default
55
+ `~/.personal-agent`), so backing up that one directory captures it all:
56
+
57
+ - `data/personal_agent.db` — sessions, actions, observations, FTS index
58
+ (plus the `-wal` / `-shm` companion files while the daemon runs).
59
+ - `context/` — the Markdown memory vault (today, roadmap, journal,
60
+ knowledge, identity, policies, …).
61
+ - Logs, PID files, and prompts.
62
+
63
+ **Not in the tar — re-register these after a restore:**
64
+
65
+ - **Secrets** (Anthropic / OpenAI / Google API keys, etc.) live in the
66
+ OS keychain, *not* under `~/.personal-agent`, so a tar never includes
67
+ them.
68
+ - **Messaging pairings** (Slack / Telegram / Discord / WhatsApp tokens)
69
+ are likewise keychain-backed.
70
+
71
+ Both are re-added through the dashboard after restore.
46
72
 
47
73
  ## Steps
48
74
 
49
- 1. `aitne stop`.
50
- 2. `tar -czf personal-agent-backup-$(date +%F).tgz ~/.personal-agent/`.
51
- 3. To restore: extract the tar to your home directory, then `aitne start`.
75
+ 1. **Stop the daemon** so the SQLite write-ahead log is checkpointed and
76
+ the snapshot is consistent:
77
+
78
+ ```bash
79
+ aitne stop
80
+ ```
81
+
82
+ 2. **Create the archive** (capturing the whole data directory in one
83
+ shot):
84
+
85
+ ```bash
86
+ tar -czf personal-agent-backup-$(date +%F).tgz ~/.personal-agent/
87
+ ```
88
+
89
+ 3. **Restore** by extracting the tar to your home directory, then
90
+ starting the daemon:
91
+
92
+ ```bash
93
+ tar -xzf personal-agent-backup-2026-05-28.tgz -C ~/
94
+ aitne start
95
+ ```
96
+
97
+ Schema migrations run automatically on the first boot (see below), so
98
+ an older DB is brought up to the current shape without extra steps.
99
+
100
+ 4. **Re-register secrets and re-pair messaging** through the dashboard —
101
+ they were never in the tar.
52
102
 
53
103
  ## Verification
54
104
 
55
- - Activity feed shows historical rows after restore.
105
+ - `aitne status` reports the daemon healthy.
106
+ - The Activity feed shows your historical rows after restore.
56
107
  - Context files match the originals.
57
108
 
58
109
  ## If It Fails
59
110
 
60
- - A schema-version mismatch: Aitne's policy is "clean
61
- reinstall, no data migration" if the restored DB is from an
62
- older daemon version, drop the DB and re-seed from the context
63
- files.
111
+ - **Schema mismatch on restore.** Aitne ships forward-only schema
112
+ migrations applied automatically at boot (see
113
+ [Schema Migration](../glossary.md#schema-migration)), so a restored DB
114
+ from an older daemon version usually just works — the migration runner
115
+ brings it up to the current shape on the next start. Only fall back to
116
+ dropping the DB (see [Reinstall Cleanly](reinstall-cleanly.md)) if the
117
+ daemon refuses to start *after* you've checked the log
118
+ (`aitne logs`) for a real migration error.
119
+ - **The agent can't reach its backends after restore.** That's the
120
+ missing keychain secrets — re-add your API keys in the dashboard
121
+ (Step 4). The DB and context restore fine without them.
122
+
123
+ ## Moving to a different machine?
124
+
125
+ This guide backs up and restores in place. To copy state to another host
126
+ (including the keychain re-registration walkthrough), follow
127
+ [Migrate Machines](migrate-machines.md).
64
128
 
65
129
  ## Related
66
130