@aitne-sh/aitne 0.1.7 → 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 (317) hide show
  1. package/README.md +256 -833
  2. package/agent-assets/agent-profiles/_safety.md +52 -20
  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 +3 -3
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agent-profiles/routine.md +4 -3
  8. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  9. package/agent-assets/agents/evening-review/agent.md +53 -0
  10. package/agent-assets/agents/hourly-check/agent.md +62 -0
  11. package/agent-assets/agents/monthly-review/agent.md +55 -0
  12. package/agent-assets/agents/morning-routine/agent.md +78 -0
  13. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  14. package/agent-assets/agents/skill-curation/agent.md +52 -0
  15. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  16. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  17. package/agent-assets/agents/weekly-review/agent.md +51 -0
  18. package/agent-assets/docs/concepts/agent-day.md +18 -11
  19. package/agent-assets/docs/concepts/auth-health.md +56 -10
  20. package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
  21. package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
  22. package/agent-assets/docs/concepts/delegated-mode.md +193 -75
  23. package/agent-assets/docs/concepts/memory-model.md +79 -34
  24. package/agent-assets/docs/concepts/observations.md +61 -11
  25. package/agent-assets/docs/concepts/process-keys.md +66 -17
  26. package/agent-assets/docs/concepts/routines.md +77 -32
  27. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  28. package/agent-assets/docs/concepts/safety-model.md +62 -37
  29. package/agent-assets/docs/concepts/skills.md +38 -17
  30. package/agent-assets/docs/features/integrations/browser-history.md +195 -0
  31. package/agent-assets/docs/features/integrations/calendar.md +40 -30
  32. package/agent-assets/docs/features/integrations/git.md +20 -9
  33. package/agent-assets/docs/features/integrations/github.md +93 -35
  34. package/agent-assets/docs/features/integrations/mail.md +60 -17
  35. package/agent-assets/docs/features/integrations/notion.md +51 -11
  36. package/agent-assets/docs/features/integrations/obsidian.md +35 -7
  37. package/agent-assets/docs/features/lifestyle/git.md +45 -44
  38. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  39. package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
  40. package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
  41. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  42. package/agent-assets/docs/features/memory-files/projects.md +75 -15
  43. package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
  44. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  45. package/agent-assets/docs/features/memory-files/today.md +47 -21
  46. package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
  47. package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
  48. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  49. package/agent-assets/docs/features/messaging/discord.md +46 -4
  50. package/agent-assets/docs/features/messaging/overview.md +40 -19
  51. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  52. package/agent-assets/docs/features/messaging/slack.md +79 -14
  53. package/agent-assets/docs/features/messaging/telegram.md +25 -6
  54. package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
  55. package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
  56. package/agent-assets/docs/features/operations/approvals.md +53 -15
  57. package/agent-assets/docs/features/operations/backend-routing.md +75 -16
  58. package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
  59. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  60. package/agent-assets/docs/features/operations/notifications.md +58 -11
  61. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  62. package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
  63. package/agent-assets/docs/features/routines/custom-routines.md +97 -23
  64. package/agent-assets/docs/features/routines/evening-review.md +75 -22
  65. package/agent-assets/docs/features/routines/hourly-check.md +150 -30
  66. package/agent-assets/docs/features/routines/morning-routine.md +60 -33
  67. package/agent-assets/docs/features/routines/weekly-review.md +65 -20
  68. package/agent-assets/docs/features/wiki/commands.md +37 -16
  69. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  70. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  71. package/agent-assets/docs/features/wiki/overview.md +80 -12
  72. package/agent-assets/docs/features/wiki/search.md +248 -0
  73. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  74. package/agent-assets/docs/getting-started/01-what-is-this.md +64 -32
  75. package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
  76. package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
  77. package/agent-assets/docs/getting-started/04-first-day.md +52 -20
  78. package/agent-assets/docs/glossary.md +285 -21
  79. package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
  80. package/agent-assets/docs/guides/backup-and-restore.md +92 -14
  81. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
  82. package/agent-assets/docs/guides/build-your-wiki.md +33 -6
  83. package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
  84. package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
  85. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
  86. package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
  87. package/agent-assets/docs/guides/install-and-run.md +64 -19
  88. package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
  89. package/agent-assets/docs/guides/migrate-machines.md +86 -18
  90. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
  91. package/agent-assets/docs/guides/pause-the-agent.md +71 -22
  92. package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
  93. package/agent-assets/docs/guides/setup-wizard.md +126 -56
  94. package/agent-assets/docs/guides/switch-default-backend.md +72 -17
  95. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
  96. package/agent-assets/docs/reference/api.md +162 -23
  97. package/agent-assets/docs/reference/cli-commands.md +55 -15
  98. package/agent-assets/docs/reference/config.md +246 -39
  99. package/agent-assets/docs/reference/disallowed-tools.md +42 -10
  100. package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
  101. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  102. package/agent-assets/docs/reference/process-keys.md +126 -20
  103. package/agent-assets/docs/reference/skills.md +62 -18
  104. package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
  105. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
  106. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
  107. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
  108. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
  109. package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
  110. package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
  111. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
  112. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
  113. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  115. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
  116. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  117. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  118. package/agent-assets/skills/agent-actions/SKILL.md +122 -0
  119. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  120. package/agent-assets/skills/attach/SKILL.md +3 -4
  121. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  122. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  123. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  124. package/agent-assets/skills/context/SKILL.md +45 -463
  125. package/agent-assets/skills/context/curation.json +2 -2
  126. package/agent-assets/skills/context/references/api.md +232 -0
  127. package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
  128. package/agent-assets/skills/context/references/snapshot-files.md +103 -0
  129. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
  130. package/agent-assets/skills/docs-search/SKILL.md +17 -16
  131. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
  132. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
  133. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
  134. package/agent-assets/skills/external-services/SKILL.md +9 -262
  135. package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
  136. package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
  137. package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
  138. package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
  139. package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
  140. package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
  141. package/agent-assets/skills/external-services/references/github.md +17 -0
  142. package/agent-assets/skills/external-services/references/obsidian.md +49 -0
  143. package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
  144. package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
  145. package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
  146. package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
  147. package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
  148. package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
  149. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
  150. package/agent-assets/skills/mail/SKILL.md +9 -114
  151. package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
  152. package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
  153. package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
  154. package/agent-assets/skills/mail/references/api.md +110 -0
  155. package/agent-assets/skills/mail/references/examples.md +70 -0
  156. package/agent-assets/skills/mail/references/providers.md +8 -8
  157. package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
  158. package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
  159. package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
  160. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
  161. package/agent-assets/skills/management-policy/SKILL.md +54 -125
  162. package/agent-assets/skills/management-policy/curation.json +1 -1
  163. package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
  164. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  165. package/agent-assets/skills/notify/SKILL.md +10 -82
  166. package/agent-assets/skills/notify/references/priority.md +65 -0
  167. package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
  168. package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
  169. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
  170. package/agent-assets/skills/notion/SKILL.md +6 -10
  171. package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
  172. package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
  173. package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
  174. package/agent-assets/skills/observations/SKILL.md +25 -14
  175. package/agent-assets/skills/project-doc/SKILL.md +2 -6
  176. package/agent-assets/skills/project-doc/curation.json +3 -3
  177. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  178. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  179. package/agent-assets/skills/reading/SKILL.md +12 -2
  180. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  181. package/agent-assets/skills/roadmap/SKILL.md +43 -141
  182. package/agent-assets/skills/roadmap/curation.json +1 -1
  183. package/agent-assets/skills/roadmap/references/api.md +100 -0
  184. package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
  185. package/agent-assets/skills/roadmap/references/migration.md +56 -0
  186. package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
  187. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  188. package/agent-assets/skills/schedule/SKILL.md +76 -104
  189. package/agent-assets/skills/schedule/references/batch.md +93 -0
  190. package/agent-assets/skills/schedule/references/errors.md +217 -0
  191. package/agent-assets/skills/schedule/references/model-selection.md +96 -0
  192. package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
  193. package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
  194. package/agent-assets/skills/today/SKILL.md +32 -62
  195. package/agent-assets/skills/today/curation.json +3 -3
  196. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
  197. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  198. package/agent-assets/skills/user-interview/SKILL.md +23 -67
  199. package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
  200. package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
  201. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
  202. package/agent-assets/skills/user-profile/SKILL.md +54 -74
  203. package/agent-assets/skills/user-profile/curation.json +2 -2
  204. package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
  205. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  206. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
  207. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
  208. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
  209. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
  210. package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
  211. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
  212. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
  213. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
  214. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
  215. package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
  216. package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
  217. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
  218. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
  219. package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
  220. package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
  221. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
  222. package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
  223. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
  224. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
  225. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
  226. package/agent-assets/task-flows/browser_task.md +84 -0
  227. package/agent-assets/task-flows/github.assigned.md +1 -1
  228. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  229. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  230. package/agent-assets/task-flows/knowledge.import.md +15 -15
  231. package/agent-assets/task-flows/message.received.dm.md +20 -17
  232. package/agent-assets/task-flows/message.received.dm_first.md +11 -15
  233. package/agent-assets/task-flows/routine.custom.md +6 -4
  234. package/agent-assets/task-flows/routine.evening_review.md +46 -170
  235. package/agent-assets/task-flows/routine.fetch_window.md +19 -14
  236. package/agent-assets/task-flows/routine.hourly_check.md +27 -15
  237. package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
  238. package/agent-assets/task-flows/routine.monthly_review.md +67 -25
  239. package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
  240. package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
  241. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  242. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  243. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  244. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  245. package/agent-assets/task-flows/routine.roadmap_refresh.md +68 -23
  246. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  247. package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
  248. package/agent-assets/task-flows/routine.weekly_review.md +370 -86
  249. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  250. package/agent-assets/task-flows/scheduled.dm.md +13 -13
  251. package/agent-assets/task-flows/scheduled.task.md +9 -9
  252. package/agent-assets/task-flows/setup.initial.md +171 -251
  253. package/agent-assets/task-flows/setup.update.md +2 -2
  254. package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
  255. package/agent-assets/templates/README.md +27 -20
  256. package/agent-assets/templates/_index.md +42 -26
  257. package/agent-assets/templates/_manifest.json +34 -99
  258. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  259. package/agent-assets/templates/identity/expertise.md +9 -0
  260. package/agent-assets/templates/identity/goals.md +9 -0
  261. package/agent-assets/templates/identity/people.md +13 -0
  262. package/agent-assets/templates/identity/personal.md +9 -0
  263. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  264. package/agent-assets/templates/identity/work.md +9 -0
  265. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
  266. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  267. package/agent-assets/templates/policies/_index.md +21 -0
  268. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  269. package/agent-assets/templates/policies/journal-format.md +168 -0
  270. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  271. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  272. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  273. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  274. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  275. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  276. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  277. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  278. package/bin/aitne.mjs +21 -5
  279. package/package.json +5 -4
  280. package/scripts/commands/doctor.mjs +63 -5
  281. package/scripts/commands/run-now.mjs +187 -0
  282. package/scripts/commands/verify.mjs +264 -0
  283. package/scripts/lib/ports.d.mts +27 -0
  284. package/scripts/lib/ports.mjs +36 -0
  285. package/scripts/lib/read-api-token.mjs +176 -0
  286. package/scripts/start.mjs +2 -1
  287. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
  288. package/agent-assets/docs/features/routines/monthly-review.md +0 -65
  289. package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
  290. package/agent-assets/skills/management-task-register/SKILL.md +0 -330
  291. package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
  292. package/agent-assets/skills/receipts/SKILL.md +0 -134
  293. package/agent-assets/skills/travel/SKILL.md +0 -132
  294. package/agent-assets/skills/travel-time/SKILL.md +0 -158
  295. package/agent-assets/task-flows/routine.morning_routine.md +0 -322
  296. package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
  297. package/agent-assets/templates/context-index.md +0 -42
  298. package/agent-assets/templates/rules/_index.md +0 -19
  299. package/agent-assets/templates/rules/journal-format.md +0 -61
  300. package/agent-assets/templates/user/expertise.md +0 -7
  301. package/agent-assets/templates/user/goals.md +0 -7
  302. package/agent-assets/templates/user/people.md +0 -7
  303. package/agent-assets/templates/user/personal.md +0 -7
  304. package/agent-assets/templates/user/work.md +0 -7
  305. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  306. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  307. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  308. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  309. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  310. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  311. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  312. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  313. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  314. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  315. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  316. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  317. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -3,52 +3,126 @@ schema_version: 1
3
3
  slug: troubleshooting/fallback-keeps-firing
4
4
  title: Fallback Keeps Firing
5
5
  id: fallback-keeps-firing
6
+ aliases:
7
+ - fallback firing
8
+ - backend fallback
9
+ - main backend down
10
+ - fallover loop
6
11
  category: troubleshooting
7
12
  summary: |
8
- The router transitioned main fallback for several runs in a row.
9
- Almost always main backend is unhealthy or quota-exhausted.
13
+ The router keeps switching from your main backend to its fallback,
14
+ run after run. Almost always the main backend is unhealthy
15
+ (expired auth) or quota-exhausted. This doc shows how to confirm the
16
+ cause and get runs back onto the main backend.
10
17
  section: fallback-keeps-firing
18
+ status: stable
11
19
  tags:
12
20
  - troubleshooting
13
21
  - backends
14
- status: stable
22
+ - routing
23
+ - health
24
+ - cost
25
+ keywords:
26
+ - fallback
27
+ - BackendQuotaError
28
+ - BackendDecisiveFailure
29
+ - router fallover
30
+ - auth expired
31
+ - quota exhausted
15
32
  ask_examples:
16
- - Why does the fallback keep running?
33
+ - Why does the fallback backend keep running?
17
34
  - How do I stop the fallover loop?
18
- locale: en-US
19
- created: 2026-04-25
20
- updated: 2026-04-25
35
+ - Why isn't my main backend being used?
36
+ ui_anchors:
37
+ - /settings/models
38
+ - /analytics
39
+ - /activity
40
+ process_keys:
41
+ - message.dm
42
+ - routine.morning_routine
43
+ api_endpoints:
44
+ - GET /api/health
45
+ - POST /api/backends/:backendId/check-auth
46
+ config_keys:
47
+ - autonomousDailyCostCapUsd
21
48
  related:
22
49
  - troubleshooting/auth-failed
23
50
  - troubleshooting/quota-exhausted
24
51
  - features/operations/backend-routing
52
+ - concepts/auth-health
53
+ - concepts/backends-and-tiers
54
+ locale: en-US
55
+ created: 2026-04-25
56
+ updated: 2026-05-28
25
57
  ---
26
58
 
27
59
  # Fallback Keeps Firing
28
60
 
29
- ## What You See
61
+ The backend router resolves every run to a `{ main, fallback }` pair. When
62
+ the main backend can't take the work, the router transparently switches to
63
+ the fallback so the run still completes. If that happens once, it's normal.
64
+ If it happens run after run, the main backend has a persistent problem.
65
+
66
+ ## What you see
67
+
68
+ - Multiple recent Activity rows whose backend is *not* your main backend.
69
+ - Notifications that mention a "fallback".
70
+
71
+ ## Most likely causes
72
+
73
+ 1. **Main backend's auth has expired.** The most common cause — the CLI
74
+ credentials (or API key) for the main backend are no longer valid, so
75
+ every run raises a `BackendDecisiveFailure("auth")` and the router falls
76
+ over.
77
+ 2. **Main backend's usage window is exhausted.** Claude and Codex meter
78
+ usage per rolling window; Gemini also hits its per-day free-tier cap.
79
+ When the limit is reached the backend raises a `BackendQuotaError` and
80
+ the router falls over until the window resets.
81
+ 3. **A repeating `BackendDecisiveFailure` from a config issue** — e.g. the
82
+ main backend's CLI isn't installed, a pinned model id no longer
83
+ resolves, or execution-mode settings reject the run.
84
+
85
+ `BackendQuotaError` and `BackendDecisiveFailure` are the two signals the
86
+ router watches; one of them is firing on every attempt.
87
+
88
+ ## Diagnose
30
89
 
31
- - Multiple recent Activity rows with backend != main.
32
- - Notifications mentioning "fallback".
90
+ 1. **Check auth on `/settings/models`.** Each backend has a card showing
91
+ its auth status. If the main backend's card flags expired or failed
92
+ auth, that's your cause — re-verify or re-authenticate it there.
93
+ 2. **Check quota/spend on `/analytics` (Cost tab).** Look at the main
94
+ backend's recent spend. A flat ceiling or a depleted window points to
95
+ cause 2. If you set `autonomousDailyCostCapUsd`, autonomous runs also
96
+ stop once the daily cap is hit (reactive DMs are never blocked by it).
97
+ 3. **Read the failure detail in `/activity`.** Open the offending row to
98
+ see the exact error. From the CLI you can do the same:
33
99
 
34
- ## Most Likely Causes
100
+ ```bash
101
+ # recent runs on the main backend that didn't succeed
102
+ aitne audit --backend claude --result failed --since 24h
103
+ ```
35
104
 
36
- 1. Main backend's auth has expired.
37
- 2. Main backend's heavy-tier window is depleted.
38
- 3. A `BackendDecisiveFailure` is repeating — usually a config issue.
105
+ (`--backend` accepts `claude`, `codex`, or `gemini`.)
39
106
 
40
- ## Diagnostic Steps
107
+ ## Fix
41
108
 
42
- 1. Open `/connections` auth-health card.
43
- 2. Open `/analytics` main-backend cost / quota.
44
- 3. Look at the failure detail in Activity for the offending row.
109
+ - **Expired auth →** re-authenticate the main backend from its card on
110
+ `/settings/models`, then run a test. See [Auth Failed](auth-failed.md).
111
+ - **Exhausted quota →** wait for the usage window to reset, raise the cap,
112
+ or accept the fallback until it clears. See
113
+ [Quota Exhausted](quota-exhausted.md).
114
+ - **Config issue →** fix the reported problem (install the CLI, repin a
115
+ valid model, relax execution mode) on `/settings/models`.
45
116
 
46
- ## Confirming the Fix
117
+ ## Confirm the fix
47
118
 
48
- - The next run uses the main backend.
119
+ - The next run uses the main backend again — visible in `/activity` or via
120
+ `aitne audit --backend <id> --since 1h`.
49
121
 
50
122
  ## Related
51
123
 
52
124
  - [Auth Failed](auth-failed.md)
53
125
  - [Quota Exhausted](quota-exhausted.md)
54
126
  - [Backend Routing](../features/operations/backend-routing.md)
127
+ - [Auth Health](../concepts/auth-health.md)
128
+ - [Backends and Tiers](../concepts/backends-and-tiers.md)
@@ -3,22 +3,40 @@ schema_version: 1
3
3
  slug: troubleshooting/messaging-not-pairing
4
4
  title: Messaging Not Pairing
5
5
  id: messaging-not-pairing
6
+ aliases:
7
+ - pairing failed
8
+ - magic phrase not working
9
+ - messaging not paired
10
+ - pairing card stuck waiting
6
11
  category: troubleshooting
7
12
  summary: |
8
- The magic phrase isn't pairing your messaging account. Usually the
9
- bot can't see DMs, the phrase expired, or the message went to a
10
- group instead of a direct channel.
11
- section: messaging-not-pairing
13
+ Your messaging account won't pair: the dashboard's pairing card stays in
14
+ "waiting". Usually the secret expired (5-minute window), the phrase was
15
+ wrapped in a sentence instead of sent by itself, the bot can't see your
16
+ DM, or the message landed in a group instead of a direct channel.
17
+ section: messaging
12
18
  tags:
13
19
  - troubleshooting
14
20
  - messaging
21
+ - pairing
15
22
  status: stable
23
+ locale: en-US
24
+ created: 2026-04-25
25
+ updated: 2026-05-28
26
+ keywords:
27
+ - magic phrase
28
+ - owner channel
29
+ - pairing
30
+ - bot token
31
+ - QR pairing
32
+ - deep link
33
+ ui_anchors:
34
+ - /connections/messaging
16
35
  ask_examples:
17
36
  - Why isn't my magic phrase pairing?
18
37
  - Where do I send the magic phrase?
19
- locale: en-US
20
- created: 2026-04-25
21
- updated: 2026-04-25
38
+ - My Telegram QR isn't pairing, what's wrong?
39
+ - The pairing card is stuck on waiting.
22
40
  related:
23
41
  - features/messaging/pairing-and-magic-phrase
24
42
  - features/messaging/overview
@@ -26,28 +44,65 @@ related:
26
44
 
27
45
  # Messaging Not Pairing
28
46
 
29
- ## What You See
47
+ ## What you see
48
+
49
+ After you send the magic phrase (Slack / Discord) or scan/tap the QR or
50
+ deep link (Telegram / WhatsApp), the pairing card on
51
+ **Connections → Messaging** (`/connections/messaging`) stays in the
52
+ "waiting" state and never flips to "paired".
53
+
54
+ ## Know which secret your platform uses
55
+
56
+ Not every platform uses the typed phrase, so the fix depends on the
57
+ platform:
58
+
59
+ | Platform | Secret | How you send it |
60
+ |---|---|---|
61
+ | **Slack** | Magic phrase | DM the 4-word phrase (e.g. `apple-banana-cherry-date`) to the bot, by itself. |
62
+ | **Discord** | Magic phrase | Same as Slack — DM the displayed phrase to the bot. |
63
+ | **Telegram** | QR / deep link | Tap **START** so the bot receives `/start <token>`. |
64
+ | **WhatsApp** | Device QR | Scan the dashboard QR from your phone (Linked Devices). |
30
65
 
31
- - After DMing the magic phrase, the dashboard's pairing card stays in
32
- "waiting" state.
66
+ All secrets are single-use and expire after **5 minutes**.
33
67
 
34
- ## Most Likely Causes
68
+ ## Most likely causes
35
69
 
36
- 1. Phrase expired generate a new one.
37
- 2. Bot does not have DM permission (Discord, Slack).
38
- 3. DM was sent in a group / channel by mistake.
39
- 4. Bot token wrong paste it in again.
70
+ 1. **The secret expired.** The phrase or token is only valid for 5
71
+ minutes. If you took longer, it has lapsed — regenerate a fresh one.
72
+ 2. **You wrapped the phrase in a sentence (Slack / Discord).** The
73
+ matcher requires the four words to be the **only** content of the
74
+ message. Sending "my phrase is apple-banana-cherry-date" is rejected
75
+ by design, and the agent replies asking you to send the phrase on its
76
+ own. Matching otherwise ignores case, punctuation, and emoji.
77
+ 3. **You sent it in a group or channel.** Pairing — and all agent
78
+ messaging — works only in a one-to-one DM. Group chats are out of
79
+ scope.
80
+ 4. **The bot can't see your DM.** On Discord and Slack the bot needs
81
+ permission to receive direct messages from you; without it your
82
+ message never reaches the daemon.
83
+ 5. **A token is wrong.** A mistyped or stale bot token means the daemon
84
+ isn't connected at all. Re-paste it in the platform's card.
40
85
 
41
- ## Diagnostic Steps
86
+ ## Diagnostic steps
42
87
 
43
- 1. Click "Regenerate phrase" on `/connections/messaging`.
44
- 2. Confirm bot privileges in the messaging app.
45
- 3. Send the phrase from a direct chat with the bot.
88
+ 1. On `/connections/messaging`, click **Regenerate phrase** (Slack /
89
+ Discord) or re-open the QR / deep link (Telegram / WhatsApp) so you
90
+ start a fresh 5-minute window.
91
+ 2. For Slack / Discord, send **only** the four words — no surrounding
92
+ text — from a direct chat with the bot, not a channel.
93
+ 3. For Telegram, tap **START** so the bot gets `/start <token>`. For
94
+ WhatsApp, set the owner phone number first, then click **Pair device**
95
+ and scan.
96
+ 4. If the card still doesn't react at all, confirm the bot's tokens and
97
+ DM permissions in the messaging app, then re-paste any token on the
98
+ card.
46
99
 
47
- ## Confirming the Fix
100
+ ## Confirming the fix
48
101
 
49
- - The pairing card shows your owner identity.
102
+ The pairing card flips to "paired" and shows your owner identity. A DM to
103
+ that channel now reaches the agent.
50
104
 
51
105
  ## Related
52
106
 
53
- - [Pairing & Magic Phrase](../features/messaging/pairing-and-magic-phrase.md)
107
+ - [Pairing and Magic Phrase](../features/messaging/pairing-and-magic-phrase.md)
108
+ - [Messaging Overview](../features/messaging/overview.md)
@@ -9,61 +9,124 @@ aliases:
9
9
  - no morning briefing
10
10
  category: troubleshooting
11
11
  summary: |
12
- The most common operator pain. Causes are ordered by frequency:
13
- daemon was stopped, fallback failed, quota exhausted, schedule
14
- configuration mismatch, day-boundary subtlety.
12
+ The morning routine produced no fresh state/today.md and no briefing.
13
+ Causes are ordered by frequency: daemon was stopped at the trigger
14
+ time, both backends failed, quota exhausted, the routine threw and is
15
+ mid-retry, or it is a day-boundary subtlety. Most cases self-heal via
16
+ boot-time catch-up or the retry/stall watchdog.
15
17
  section: morning-routine-didnt-run
16
18
  tags:
17
19
  - troubleshooting
18
- - routine
20
+ - routines
21
+ - autonomous
22
+ - scheduler
23
+ - dispatch
19
24
  status: stable
20
25
  ask_examples:
21
26
  - Why didn't my morning routine fire?
22
27
  - Why is today.md empty?
28
+ - How do I regenerate today.md by hand?
23
29
  locale: en-US
24
30
  created: 2026-04-25
25
- updated: 2026-04-25
31
+ updated: 2026-05-28
32
+ keywords:
33
+ - morning routine didn't run
34
+ - morning routine skipped
35
+ - morning routine gate
36
+ - empty today.md
37
+ - regenerate today
26
38
  related:
27
39
  - features/routines/morning-routine
40
+ - features/routines/hourly-check
41
+ - concepts/agent-day
28
42
  - troubleshooting/auth-failed
29
43
  - troubleshooting/quota-exhausted
44
+ process_keys:
45
+ - routine.morning_routine
46
+ - routine.morning_routine_today
47
+ - routine.morning_routine_journal
48
+ api_endpoints:
49
+ - POST /api/agent/regenerate
50
+ config_keys:
51
+ - dayBoundaryHour
52
+ context_files:
53
+ - state/today.md
54
+ ui_anchors:
55
+ - /settings/routines
56
+ - /activity
30
57
  ---
31
58
 
32
59
  # Morning Routine Didn't Run
33
60
 
34
61
  ## What You See
35
62
 
36
- - An empty or stale `today.md`.
63
+ - An empty or stale `state/today.md`.
37
64
  - No morning notification.
38
65
  - Activity has no `routine.morning_routine` row for today.
39
66
 
67
+ ## Before You Worry: It Often Self-Heals
68
+
69
+ The morning routine has two recovery paths that usually fix this
70
+ without any action from you:
71
+
72
+ - **Boot-time catch-up.** If the daemon was stopped during the trigger
73
+ window, it fires the unrun morning routine the next time it starts.
74
+ So a missed routine often resolves itself on the next `aitne start`
75
+ or `aitne restart`.
76
+ - **Retry on failure.** If the routine runs but fails to produce a
77
+ fresh `state/today.md`, the daemon retries up to 3 times with an
78
+ exponential back-off (5, then 10, then 15 minutes). After 3 failed
79
+ attempts it sends you a DM asking you to regenerate manually. If the
80
+ wake row sits unfinished for ~2 hours (the stall watchdog threshold),
81
+ you also get an owner DM so the silence never goes unnoticed.
82
+
83
+ Give it a few minutes, or restart the daemon, before digging deeper.
84
+
40
85
  ## Most Likely Causes (in probability order)
41
86
 
42
- 1. **Daemon was stopped at the trigger time.** Check `pa status`.
43
- 2. **Fallback failed too.** Look for a `fallback-failed` notification.
44
- 3. **Heavy-tier quota exhausted on both backends.** See
45
- [Quota Exhausted](quota-exhausted.md).
46
- 4. **Hourly check skip-gate fired during the trigger window.** The
47
- morning routine and the hourly check share an atomic flag — if the
48
- hourly check was already running at the rollover instant, the
49
- morning routine won't double-fire.
50
- 5. **Day-boundary subtlety.** Before `dayBoundaryHour`, the routine
51
- still "belongs to" yesterday see
87
+ 1. **Daemon was stopped at the trigger time.** Check `aitne status`.
88
+ Boot-time catch-up should cover this once the daemon is back up.
89
+ 2. **Both backends failed.** The routine tried the main backend, fell
90
+ back, and the fallback failed too. Check `/activity` for an error
91
+ outcome and `aitne logs` for the failure.
92
+ 3. **Quota exhausted on both backends.** The morning routine runs on
93
+ the medium tier (Sonnet by default for Claude); a backend that is
94
+ out of quota fails over, and if the fallback is also out you get no
95
+ run. See [Quota Exhausted](quota-exhausted.md).
96
+ 4. **Mid-retry.** The routine threw and is in the 5/10/15-minute
97
+ retry window — the row may simply not have landed yet.
98
+ 5. **Day-boundary subtlety.** Before `dayBoundaryHour` (default 04:00),
99
+ the routine still "belongs to" yesterday — see
52
100
  [Agent Day](../concepts/agent-day.md).
53
101
 
102
+ Note: the morning routine takes priority over the hourly check, not the
103
+ other way around. The hourly check skips itself while the morning
104
+ routine is active, so a running hourly check never blocks the morning
105
+ routine.
106
+
54
107
  ## Diagnostic Steps
55
108
 
56
- 1. `pa status` — daemon up?
57
- 2. `/activity` — any row for `routine.morning_routine`?
109
+ 1. `aitne status` — is the daemon up?
110
+ 2. `/activity` — is there a row for `routine.morning_routine`? An error
111
+ outcome points to a backend failure (cause 2 or 3).
58
112
  3. `/settings/routines` — the routine list shows the next scheduled
59
113
  fire and recent runs.
60
- 4. `pa logs` — search for `morning_routine`.
114
+ 4. `aitne logs` — search for `morning_routine` to see the trigger,
115
+ any fallback, and retry scheduling.
116
+
117
+ ## Forcing a Regenerate
118
+
119
+ If you want today's `state/today.md` rebuilt right now, click
120
+ **Regenerate** on the dashboard (it POSTs to `/api/agent/regenerate`
121
+ with `target: today`). This bypasses the schedule and runs the
122
+ synthesis immediately.
61
123
 
62
124
  ## Confirming the Fix
63
125
 
64
- - The next morning's routine fires within 60 seconds of
65
- `dayBoundaryHour` (default 04:00).
66
- - Activity shows the row with a non-error outcome.
126
+ - The next morning's routine fires shortly after `dayBoundaryHour`
127
+ (default 04:00).
128
+ - `/activity` shows a `routine.morning_routine` row with a non-error
129
+ outcome.
67
130
 
68
131
  ## When None of the Above Help
69
132
 
@@ -73,3 +136,5 @@ related:
73
136
  ## Related
74
137
 
75
138
  - [Morning Routine](../features/routines/morning-routine.md)
139
+ - [Hourly Check](../features/routines/hourly-check.md)
140
+ - [Agent Day](../concepts/agent-day.md)
@@ -3,55 +3,119 @@ schema_version: 1
3
3
  slug: troubleshooting/observation-not-detected
4
4
  title: Observation Not Detected
5
5
  id: observation-not-detected
6
+ aliases:
7
+ - observation missing
8
+ - no observations
9
+ - polling broken
10
+ - hourly check empty
6
11
  category: troubleshooting
7
12
  summary: |
8
13
  An expected change (commit, note, calendar move) didn't surface in
9
14
  the hourly check. Most often a polling delay, a vault/repo not
10
- watched, or the change was authored by the agent itself.
11
- section: observation-not-detected
15
+ watched, or a change the agent authored itself (filtered out).
16
+ section: troubleshooting
12
17
  tags:
13
18
  - troubleshooting
14
19
  - observations
20
+ - polling
21
+ - hourly-check
15
22
  status: stable
16
23
  ask_examples:
17
24
  - Why didn't the agent notice my new commit?
18
25
  - Why didn't a calendar change show up?
26
+ - Why is the hourly check empty?
19
27
  locale: en-US
20
28
  created: 2026-04-25
21
- updated: 2026-04-25
29
+ updated: 2026-05-28
30
+ keywords:
31
+ - observation
32
+ - polling
33
+ - observer
34
+ - AgentWriteTracker
35
+ - hourly check
22
36
  related:
23
37
  - concepts/observations
38
+ - features/routines/hourly-check
24
39
  - features/integrations/git
25
40
  - features/integrations/obsidian
26
- - features/routines/hourly-check
41
+ config_keys:
42
+ - hourlyCheckMinObservations
43
+ - hourlyCheckEnabled
44
+ - hourlyCheckIntervalMinutes
45
+ process_keys:
46
+ - routine.hourly_check
47
+ ui_anchors:
48
+ - /connections/repositories
49
+ - /connections/calendar
50
+ - /settings/schedule
51
+ context_files:
52
+ - state/today.md
27
53
  ---
28
54
 
29
55
  # Observation Not Detected
30
56
 
31
- ## What You See
57
+ You made a change by hand — a commit, an Obsidian note, a calendar move — and
58
+ expected the agent to notice it on the next hourly check. It didn't.
59
+
60
+ This is almost always one of four things: the poller hasn't run yet, the
61
+ source isn't being watched, the agent itself made the change (so it was
62
+ filtered out), or there weren't enough observations to clear the hourly-check
63
+ gate. Work through them in that order.
64
+
65
+ ## How detection actually works
66
+
67
+ Observers (Obsidian, Git, Notion, Calendar) do **not** fire an event per
68
+ change. They poll on a cadence and call `recordObservation(...)`, which
69
+ appends a row to the `observations` table. The hourly check later reads those
70
+ rows in a single batch. So a "missing" observation is usually a row that was
71
+ never written, or one that was written but filtered.
32
72
 
33
- - A change you made by hand, not echoed by the hourly check.
34
- - The hourly check ran but did not mention it.
73
+ `AgentWriteTracker` tags every change as `actor='agent'` or `actor='user'`.
74
+ Changes the agent itself wrote are tagged `actor='agent'` and skipped by the
75
+ hourly check — this is the deliberate anti-loop filter that stops the agent
76
+ from observing its own output.
35
77
 
36
- ## Most Likely Causes
78
+ ## Most likely causes
37
79
 
38
- 1. Poll has not yet fired since your change.
39
- 2. The repo / vault is not on the watched list.
40
- 3. The change was tagged `actor='agent'` (anti-loop filter).
41
- 4. Below the `hourlyCheckMinObservations` threshold.
80
+ 1. **The poll hasn't fired since your change.** Each integration runs on its
81
+ own interval; a fresh change can sit for several minutes before the next
82
+ poll picks it up.
83
+ 2. **The repo / vault / calendar isn't on the watched list.** If the source
84
+ was never connected, nothing polls it.
85
+ 3. **The change was tagged `actor='agent'`.** If the agent (not you) authored
86
+ the commit or note, the anti-loop filter drops it.
87
+ 4. **It was below the gate threshold.** The hourly check only runs its full
88
+ pass when at least `hourlyCheckMinObservations` (default `1`) pending
89
+ observations exist. A single low-signal change can be held back.
42
90
 
43
- ## Diagnostic Steps
91
+ ## Diagnostic steps
44
92
 
45
- 1. Confirm the integration's "last polled" timestamp on
46
- `/connections/...`.
47
- 2. Confirm the observed path is in the watched set.
48
- 3. Lower `hourlyCheckMinObservations` to test.
93
+ 1. **Check the "last polled" timestamp.** On the relevant connection page —
94
+ `/connections/repositories` for Git/GitHub, `/connections/calendar` for
95
+ calendars, or the matching `/connections/...` page confirm the source
96
+ polled *after* you made the change. If the timestamp predates your change,
97
+ you're just early; wait for the next poll.
98
+ 2. **Confirm the source is watched.** Verify the repo/vault/calendar is
99
+ actually connected and enabled on its connection page. A disabled or
100
+ never-added source produces no observations.
101
+ 3. **Rule out the agent-authored filter.** If the commit or note was written
102
+ by the agent, that's expected — it's filtered by design. Look for a change
103
+ *you* made by hand to test detection.
104
+ 4. **Lower the gate threshold to test.** Temporarily set
105
+ `hourlyCheckMinObservations` to `1` (its default) on `/settings/schedule`
106
+ so even a single observation triggers the check, then make a manual change
107
+ and wait for the next hourly run.
49
108
 
50
- ## Confirming the Fix
109
+ ## Confirming the fix
51
110
 
52
- - Future changes record observations and surface in the next
53
- hourly check.
111
+ After the next poll runs, a manual change you made should record an
112
+ observation and surface in the next hourly check. You can cross-check recent
113
+ agent activity from the CLI with `aitne audit`, which reads the `agent_actions`
114
+ log read-only.
54
115
 
55
116
  ## Related
56
117
 
57
- - [Observations](../concepts/observations.md)
118
+ - [Observations](../concepts/observations.md) — what gets recorded and why
119
+ - [Hourly Check](../features/routines/hourly-check.md) — the gate and its thresholds
120
+ - [Git integration](../features/integrations/git.md)
121
+ - [Obsidian integration](../features/integrations/obsidian.md)
@@ -17,17 +17,33 @@ tags:
17
17
  - troubleshooting
18
18
  - cost
19
19
  - backends
20
+ - quotas
21
+ - routing
20
22
  status: stable
21
23
  ask_examples:
22
24
  - Why did Aitne fall over to the fallback backend?
23
25
  - Why is my Anthropic API call returning a quota error?
26
+ - Why did an autonomous run get skipped for the cost cap?
24
27
  locale: en-US
25
28
  created: 2026-04-25
26
- updated: 2026-05-04
29
+ updated: 2026-05-28
30
+ keywords:
31
+ - quota
32
+ - BackendQuotaError
33
+ - rate limit
34
+ - fallback fired
35
+ - 5h window
36
+ - cost cap
37
+ ui_anchors:
38
+ - /analytics
39
+ - /settings/models
40
+ config_keys:
41
+ - autonomousDailyCostCapUsd
42
+ - autonomousMonthlyCostCapUsd
27
43
  related:
28
44
  - concepts/costs-and-quotas
29
45
  - concepts/auth-health
30
- - guides/use-cloud-providers
46
+ - guides/switch-default-backend
31
47
  ---
32
48
 
33
49
  # Quota Exhausted
@@ -36,15 +52,25 @@ related:
36
52
 
37
53
  - A `BackendQuotaError` row in Activity.
38
54
  - Fallback ran the next routine instead of main.
39
- - Analytics shows the budget close to or past the cap.
55
+ - Or: an autonomous run was skipped with reason
56
+ `autonomous_cost_cap_exceeded` — this is a *separate* safety net
57
+ (`autonomousDailyCostCapUsd` / `autonomousMonthlyCostCapUsd`,
58
+ default off) that skips only autonomous work, never reactive DMs.
59
+ It is not a provider quota error; raise the cap on `/settings/models`
60
+ or wait for the next agent day.
40
61
 
41
62
  ## Most Likely Causes
42
63
 
43
64
  1. **Provider rate limit** on your API key (Anthropic / OpenAI /
44
65
  Google) — the supported path. Check the provider console for the
45
66
  per-minute / per-day caps tied to your billing.
46
- 2. **Gemini per-day cap** for `gemini-2.5-flash` reached on the free
47
- tier (`GEMINI_API_KEY` without billing).
67
+ 2. **Gemini per-agent-day request ceiling** reached. Aitne caps
68
+ Gemini at 450 model requests per agent day (a conservative fraction
69
+ of Google's free-tier daily limit on `GEMINI_API_KEY` /
70
+ `GOOGLE_API_KEY` without billing). This ceiling is Gemini-only and
71
+ model-agnostic — it is not tied to any one model id. The error reads
72
+ "Gemini daily-request ceiling reached" and resets at the next
73
+ agent-day boundary (04:00 local).
48
74
  3. **Cloud-provider quota** — Bedrock / Vertex / Foundry / Azure
49
75
  OpenAI / Gemini-Vertex enforce their own per-region / per-model
50
76
  quotas. The error surfaces the same way as a direct-API quota.
@@ -73,7 +99,11 @@ related:
73
99
 
74
100
  ## Confirming the Fix
75
101
 
76
- - The next run after the window resets succeeds on the main backend.
102
+ - After a **provider window / Gemini ceiling** resets, the next run
103
+ succeeds on the main backend (no `BackendQuotaError` row, no
104
+ fallback).
105
+ - After raising or clearing the **autonomous cost cap**, autonomous
106
+ runs stop logging `autonomous_cost_cap_exceeded` skips.
77
107
 
78
108
  ## Related
79
109