@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.
- package/README.md +256 -833
- package/agent-assets/agent-profiles/_safety.md +52 -20
- package/agent-assets/agent-profiles/browser-task.md +108 -0
- package/agent-assets/agent-profiles/conversational.md +3 -3
- package/agent-assets/agent-profiles/profile-importer.md +3 -3
- package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
- package/agent-assets/agent-profiles/routine.md +4 -3
- package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
- package/agent-assets/agents/evening-review/agent.md +53 -0
- package/agent-assets/agents/hourly-check/agent.md +62 -0
- package/agent-assets/agents/monthly-review/agent.md +55 -0
- package/agent-assets/agents/morning-routine/agent.md +78 -0
- package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
- package/agent-assets/agents/skill-curation/agent.md +52 -0
- package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
- package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
- package/agent-assets/agents/weekly-review/agent.md +51 -0
- package/agent-assets/docs/concepts/agent-day.md +18 -11
- package/agent-assets/docs/concepts/auth-health.md +56 -10
- package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
- package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
- package/agent-assets/docs/concepts/delegated-mode.md +193 -75
- package/agent-assets/docs/concepts/memory-model.md +79 -34
- package/agent-assets/docs/concepts/observations.md +61 -11
- package/agent-assets/docs/concepts/process-keys.md +66 -17
- package/agent-assets/docs/concepts/routines.md +77 -32
- package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
- package/agent-assets/docs/concepts/safety-model.md +62 -37
- package/agent-assets/docs/concepts/skills.md +38 -17
- package/agent-assets/docs/features/integrations/browser-history.md +195 -0
- package/agent-assets/docs/features/integrations/calendar.md +40 -30
- package/agent-assets/docs/features/integrations/git.md +20 -9
- package/agent-assets/docs/features/integrations/github.md +93 -35
- package/agent-assets/docs/features/integrations/mail.md +60 -17
- package/agent-assets/docs/features/integrations/notion.md +51 -11
- package/agent-assets/docs/features/integrations/obsidian.md +35 -7
- package/agent-assets/docs/features/lifestyle/git.md +45 -44
- package/agent-assets/docs/features/lifestyle/reading.md +50 -22
- package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
- package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
- package/agent-assets/docs/features/memory-files/projects.md +75 -15
- package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
- package/agent-assets/docs/features/memory-files/schedule.md +113 -70
- package/agent-assets/docs/features/memory-files/today.md +47 -21
- package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
- package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
- package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
- package/agent-assets/docs/features/messaging/discord.md +46 -4
- package/agent-assets/docs/features/messaging/overview.md +40 -19
- package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
- package/agent-assets/docs/features/messaging/slack.md +79 -14
- package/agent-assets/docs/features/messaging/telegram.md +25 -6
- package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
- package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
- package/agent-assets/docs/features/operations/approvals.md +53 -15
- package/agent-assets/docs/features/operations/backend-routing.md +75 -16
- package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
- package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
- package/agent-assets/docs/features/operations/notifications.md +58 -11
- package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
- package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
- package/agent-assets/docs/features/routines/custom-routines.md +97 -23
- package/agent-assets/docs/features/routines/evening-review.md +75 -22
- package/agent-assets/docs/features/routines/hourly-check.md +150 -30
- package/agent-assets/docs/features/routines/morning-routine.md +60 -33
- package/agent-assets/docs/features/routines/weekly-review.md +65 -20
- package/agent-assets/docs/features/wiki/commands.md +37 -16
- package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
- package/agent-assets/docs/features/wiki/dashboard.md +255 -0
- package/agent-assets/docs/features/wiki/overview.md +80 -12
- package/agent-assets/docs/features/wiki/search.md +248 -0
- package/agent-assets/docs/features/wiki/workspaces.md +254 -0
- package/agent-assets/docs/getting-started/01-what-is-this.md +64 -32
- package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
- package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
- package/agent-assets/docs/getting-started/04-first-day.md +52 -20
- package/agent-assets/docs/glossary.md +285 -21
- package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
- package/agent-assets/docs/guides/backup-and-restore.md +92 -14
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
- package/agent-assets/docs/guides/build-your-wiki.md +33 -6
- package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
- package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
- package/agent-assets/docs/guides/install-and-run.md +64 -19
- package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
- package/agent-assets/docs/guides/migrate-machines.md +86 -18
- package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
- package/agent-assets/docs/guides/pause-the-agent.md +71 -22
- package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
- package/agent-assets/docs/guides/setup-wizard.md +126 -56
- package/agent-assets/docs/guides/switch-default-backend.md +72 -17
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
- package/agent-assets/docs/reference/api.md +162 -23
- package/agent-assets/docs/reference/cli-commands.md +55 -15
- package/agent-assets/docs/reference/config.md +246 -39
- package/agent-assets/docs/reference/disallowed-tools.md +42 -10
- package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
- package/agent-assets/docs/reference/knowledge-layout.md +620 -0
- package/agent-assets/docs/reference/process-keys.md +126 -20
- package/agent-assets/docs/reference/skills.md +62 -18
- package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
- package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
- package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
- package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
- package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
- package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
- package/agent-assets/skills/agent-actions/SKILL.md +122 -0
- package/agent-assets/skills/agent-create/SKILL.md +149 -0
- package/agent-assets/skills/attach/SKILL.md +3 -4
- package/agent-assets/skills/browser-history/SKILL.md +198 -0
- package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
- package/agent-assets/skills/browser-task/SKILL.md +169 -0
- package/agent-assets/skills/context/SKILL.md +45 -463
- package/agent-assets/skills/context/curation.json +2 -2
- package/agent-assets/skills/context/references/api.md +232 -0
- package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
- package/agent-assets/skills/context/references/snapshot-files.md +103 -0
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
- package/agent-assets/skills/docs-search/SKILL.md +17 -16
- package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
- package/agent-assets/skills/external-services/SKILL.md +9 -262
- package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
- package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
- package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
- package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
- package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
- package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
- package/agent-assets/skills/external-services/references/github.md +17 -0
- package/agent-assets/skills/external-services/references/obsidian.md +49 -0
- package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
- package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
- package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
- package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
- package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
- package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
- package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
- package/agent-assets/skills/mail/SKILL.md +9 -114
- package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
- package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
- package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
- package/agent-assets/skills/mail/references/api.md +110 -0
- package/agent-assets/skills/mail/references/examples.md +70 -0
- package/agent-assets/skills/mail/references/providers.md +8 -8
- package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
- package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
- package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
- package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/management-policy/SKILL.md +54 -125
- package/agent-assets/skills/management-policy/curation.json +1 -1
- package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
- package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
- package/agent-assets/skills/notify/SKILL.md +10 -82
- package/agent-assets/skills/notify/references/priority.md +65 -0
- package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
- package/agent-assets/skills/notion/SKILL.md +6 -10
- package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
- package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
- package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
- package/agent-assets/skills/observations/SKILL.md +25 -14
- package/agent-assets/skills/project-doc/SKILL.md +2 -6
- package/agent-assets/skills/project-doc/curation.json +3 -3
- package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
- package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
- package/agent-assets/skills/reading/SKILL.md +12 -2
- package/agent-assets/skills/reading/references/reading-taste.md +2 -2
- package/agent-assets/skills/roadmap/SKILL.md +43 -141
- package/agent-assets/skills/roadmap/curation.json +1 -1
- package/agent-assets/skills/roadmap/references/api.md +100 -0
- package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
- package/agent-assets/skills/roadmap/references/migration.md +56 -0
- package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
- package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
- package/agent-assets/skills/schedule/SKILL.md +76 -104
- package/agent-assets/skills/schedule/references/batch.md +93 -0
- package/agent-assets/skills/schedule/references/errors.md +217 -0
- package/agent-assets/skills/schedule/references/model-selection.md +96 -0
- package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
- package/agent-assets/skills/today/SKILL.md +32 -62
- package/agent-assets/skills/today/curation.json +3 -3
- package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
- package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
- package/agent-assets/skills/user-interview/SKILL.md +23 -67
- package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
- package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
- package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
- package/agent-assets/skills/user-profile/SKILL.md +54 -74
- package/agent-assets/skills/user-profile/curation.json +2 -2
- package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
- package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
- package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
- package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
- package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
- package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
- package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
- package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
- package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
- package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
- package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
- package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
- package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
- package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
- package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
- package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
- package/agent-assets/task-flows/browser_task.md +84 -0
- package/agent-assets/task-flows/github.assigned.md +1 -1
- package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
- package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
- package/agent-assets/task-flows/knowledge.import.md +15 -15
- package/agent-assets/task-flows/message.received.dm.md +20 -17
- package/agent-assets/task-flows/message.received.dm_first.md +11 -15
- package/agent-assets/task-flows/routine.custom.md +6 -4
- package/agent-assets/task-flows/routine.evening_review.md +46 -170
- package/agent-assets/task-flows/routine.fetch_window.md +19 -14
- package/agent-assets/task-flows/routine.hourly_check.md +27 -15
- package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
- package/agent-assets/task-flows/routine.monthly_review.md +67 -25
- package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
- package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
- package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
- package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
- package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
- package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
- package/agent-assets/task-flows/routine.roadmap_refresh.md +68 -23
- package/agent-assets/task-flows/routine.today_refresh.md +4 -4
- package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
- package/agent-assets/task-flows/routine.weekly_review.md +370 -86
- package/agent-assets/task-flows/schedule.approaching.md +0 -1
- package/agent-assets/task-flows/scheduled.dm.md +13 -13
- package/agent-assets/task-flows/scheduled.task.md +9 -9
- package/agent-assets/task-flows/setup.initial.md +171 -251
- package/agent-assets/task-flows/setup.update.md +2 -2
- package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
- package/agent-assets/templates/README.md +27 -20
- package/agent-assets/templates/_index.md +42 -26
- package/agent-assets/templates/_manifest.json +34 -99
- package/agent-assets/templates/{user → identity}/_index.md +1 -1
- package/agent-assets/templates/identity/expertise.md +9 -0
- package/agent-assets/templates/identity/goals.md +9 -0
- package/agent-assets/templates/identity/people.md +13 -0
- package/agent-assets/templates/identity/personal.md +9 -0
- package/agent-assets/templates/{user → identity}/profile.md +2 -2
- package/agent-assets/templates/identity/work.md +9 -0
- package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
- package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
- package/agent-assets/templates/policies/_index.md +21 -0
- package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
- package/agent-assets/templates/policies/journal-format.md +168 -0
- package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
- package/agent-assets/templates/{rules → policies}/management.md +3 -3
- package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
- package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
- package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
- package/bin/aitne.mjs +21 -5
- package/package.json +5 -4
- package/scripts/commands/doctor.mjs +63 -5
- package/scripts/commands/run-now.mjs +187 -0
- package/scripts/commands/verify.mjs +264 -0
- package/scripts/lib/ports.d.mts +27 -0
- package/scripts/lib/ports.mjs +36 -0
- package/scripts/lib/read-api-token.mjs +176 -0
- package/scripts/start.mjs +2 -1
- package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
- package/agent-assets/docs/features/routines/monthly-review.md +0 -65
- package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
- package/agent-assets/skills/management-task-register/SKILL.md +0 -330
- package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
- package/agent-assets/skills/receipts/SKILL.md +0 -134
- package/agent-assets/skills/travel/SKILL.md +0 -132
- package/agent-assets/skills/travel-time/SKILL.md +0 -158
- package/agent-assets/task-flows/routine.morning_routine.md +0 -322
- package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
- package/agent-assets/templates/context-index.md +0 -42
- package/agent-assets/templates/rules/_index.md +0 -19
- package/agent-assets/templates/rules/journal-format.md +0 -61
- package/agent-assets/templates/user/expertise.md +0 -7
- package/agent-assets/templates/user/goals.md +0 -7
- package/agent-assets/templates/user/people.md +0 -7
- package/agent-assets/templates/user/personal.md +0 -7
- package/agent-assets/templates/user/work.md +0 -7
- /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
- /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
- /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
- /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
- /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
|
|
9
|
-
Almost always main backend is unhealthy
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
107
|
+
## Fix
|
|
41
108
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
|
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
|
-
|
|
32
|
-
"waiting" state.
|
|
66
|
+
All secrets are single-use and expire after **5 minutes**.
|
|
33
67
|
|
|
34
|
-
## Most
|
|
68
|
+
## Most likely causes
|
|
35
69
|
|
|
36
|
-
1.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
86
|
+
## Diagnostic steps
|
|
42
87
|
|
|
43
|
-
1.
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
100
|
+
## Confirming the fix
|
|
48
101
|
|
|
49
|
-
|
|
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
|
|
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
|
|
13
|
-
daemon was stopped
|
|
14
|
-
|
|
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
|
-
-
|
|
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-
|
|
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 `
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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. `
|
|
57
|
-
2. `/activity` —
|
|
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. `
|
|
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
|
|
65
|
-
|
|
66
|
-
-
|
|
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
|
|
11
|
-
section:
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
34
|
-
|
|
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
|
|
78
|
+
## Most likely causes
|
|
37
79
|
|
|
38
|
-
1.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
|
91
|
+
## Diagnostic steps
|
|
44
92
|
|
|
45
|
-
1.
|
|
46
|
-
`/connections
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
109
|
+
## Confirming the fix
|
|
51
110
|
|
|
52
|
-
|
|
53
|
-
|
|
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-
|
|
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/
|
|
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
|
-
-
|
|
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
|
|
47
|
-
|
|
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
|
-
-
|
|
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
|
|