@aitne-sh/aitne 0.1.12 → 0.1.13

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 (139) hide show
  1. package/agent-assets/agent-profiles/background-task.md +8 -1
  2. package/agent-assets/agent-profiles/routine-fetch-window.md +11 -0
  3. package/agent-assets/agents/evening-review/agent.md +6 -2
  4. package/agent-assets/agents/lesson-maintenance/agent.md +56 -0
  5. package/agent-assets/agents/morning-routine/agent.md +7 -2
  6. package/agent-assets/agents/source-librarian/agent.md +51 -0
  7. package/agent-assets/docs/concepts/agent-day.md +15 -15
  8. package/agent-assets/docs/concepts/auth-health.md +10 -7
  9. package/agent-assets/docs/concepts/backends-and-tiers.md +21 -13
  10. package/agent-assets/docs/concepts/costs-and-quotas.md +10 -10
  11. package/agent-assets/docs/concepts/delegated-mode.md +18 -18
  12. package/agent-assets/docs/concepts/memory-model.md +25 -24
  13. package/agent-assets/docs/concepts/observations.md +27 -19
  14. package/agent-assets/docs/concepts/process-keys.md +25 -26
  15. package/agent-assets/docs/concepts/routines.md +18 -17
  16. package/agent-assets/docs/concepts/safety-and-execution.md +20 -17
  17. package/agent-assets/docs/concepts/safety-model.md +16 -15
  18. package/agent-assets/docs/concepts/skills.md +7 -4
  19. package/agent-assets/docs/features/integrations/browser-history.md +52 -47
  20. package/agent-assets/docs/features/integrations/calendar.md +7 -7
  21. package/agent-assets/docs/features/integrations/git.md +15 -13
  22. package/agent-assets/docs/features/integrations/github.md +12 -10
  23. package/agent-assets/docs/features/integrations/mail.md +47 -45
  24. package/agent-assets/docs/features/integrations/notion.md +15 -11
  25. package/agent-assets/docs/features/integrations/obsidian.md +27 -23
  26. package/agent-assets/docs/features/lifestyle/git.md +7 -8
  27. package/agent-assets/docs/features/lifestyle/reading.md +11 -8
  28. package/agent-assets/docs/features/lifestyle/receipts.md +21 -22
  29. package/agent-assets/docs/features/lifestyle/travel-bookings.md +9 -9
  30. package/agent-assets/docs/features/memory-files/agent-journal.md +12 -10
  31. package/agent-assets/docs/features/memory-files/agent-lessons.md +46 -21
  32. package/agent-assets/docs/features/memory-files/projects.md +13 -14
  33. package/agent-assets/docs/features/memory-files/roadmap.md +16 -15
  34. package/agent-assets/docs/features/memory-files/schedule.md +10 -10
  35. package/agent-assets/docs/features/memory-files/today.md +18 -18
  36. package/agent-assets/docs/features/memory-files/user-profile.md +17 -17
  37. package/agent-assets/docs/features/messaging/bang-commands.md +15 -15
  38. package/agent-assets/docs/features/messaging/dashboard-chat.md +7 -6
  39. package/agent-assets/docs/features/messaging/discord.md +7 -5
  40. package/agent-assets/docs/features/messaging/overview.md +14 -14
  41. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +12 -12
  42. package/agent-assets/docs/features/messaging/slack.md +9 -8
  43. package/agent-assets/docs/features/messaging/telegram.md +7 -7
  44. package/agent-assets/docs/features/messaging/whatsapp.md +6 -6
  45. package/agent-assets/docs/features/operations/activity-and-conversations.md +9 -9
  46. package/agent-assets/docs/features/operations/approvals.md +13 -12
  47. package/agent-assets/docs/features/operations/backend-routing.md +38 -37
  48. package/agent-assets/docs/features/operations/browser-tasks.md +63 -57
  49. package/agent-assets/docs/features/operations/cost-tracking.md +5 -5
  50. package/agent-assets/docs/features/operations/managed-chromium.md +23 -22
  51. package/agent-assets/docs/features/operations/notifications.md +15 -15
  52. package/agent-assets/docs/features/operations/quiet-hours.md +14 -15
  53. package/agent-assets/docs/features/operations/schedule-approaching.md +16 -14
  54. package/agent-assets/docs/features/routines/activity-scan.md +14 -11
  55. package/agent-assets/docs/features/routines/custom-routines.md +9 -7
  56. package/agent-assets/docs/features/routines/evening-review.md +6 -7
  57. package/agent-assets/docs/features/routines/morning-routine.md +22 -21
  58. package/agent-assets/docs/features/routines/weekly-review.md +57 -51
  59. package/agent-assets/docs/features/wiki/commands.md +27 -21
  60. package/agent-assets/docs/features/wiki/cost-and-approval.md +28 -23
  61. package/agent-assets/docs/features/wiki/dashboard.md +21 -23
  62. package/agent-assets/docs/features/wiki/overview.md +17 -25
  63. package/agent-assets/docs/features/wiki/search.md +15 -17
  64. package/agent-assets/docs/features/wiki/workspaces.md +55 -56
  65. package/agent-assets/docs/getting-started/01-what-is-this.md +3 -4
  66. package/agent-assets/docs/getting-started/02-first-steps.md +12 -13
  67. package/agent-assets/docs/getting-started/03-what-can-this-do.md +7 -7
  68. package/agent-assets/docs/getting-started/04-first-day.md +4 -5
  69. package/agent-assets/docs/glossary.md +17 -16
  70. package/agent-assets/docs/guides/add-a-custom-routine.md +17 -12
  71. package/agent-assets/docs/guides/backup-and-restore.md +19 -16
  72. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +55 -62
  73. package/agent-assets/docs/guides/build-your-wiki.md +11 -12
  74. package/agent-assets/docs/guides/change-which-model-handles-x.md +30 -28
  75. package/agent-assets/docs/guides/connect-a-new-mail-account.md +30 -29
  76. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +30 -32
  77. package/agent-assets/docs/guides/import-knowledge-file.md +9 -10
  78. package/agent-assets/docs/guides/install-and-run.md +9 -10
  79. package/agent-assets/docs/guides/maintain-wiki-health.md +10 -10
  80. package/agent-assets/docs/guides/migrate-machines.md +16 -14
  81. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +11 -12
  82. package/agent-assets/docs/guides/pause-the-agent.md +25 -25
  83. package/agent-assets/docs/guides/reinstall-cleanly.md +13 -12
  84. package/agent-assets/docs/guides/setup-wizard.md +9 -11
  85. package/agent-assets/docs/guides/switch-default-backend.md +9 -9
  86. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +9 -11
  87. package/agent-assets/docs/pages/activity.md +76 -0
  88. package/agent-assets/docs/pages/agents.md +78 -0
  89. package/agent-assets/docs/pages/analytics.md +70 -0
  90. package/agent-assets/docs/pages/browser.md +73 -0
  91. package/agent-assets/docs/pages/chat.md +67 -0
  92. package/agent-assets/docs/pages/connections.md +78 -0
  93. package/agent-assets/docs/pages/git.md +73 -0
  94. package/agent-assets/docs/pages/knowledge.md +75 -0
  95. package/agent-assets/docs/pages/overview.md +90 -0
  96. package/agent-assets/docs/pages/reading.md +65 -0
  97. package/agent-assets/docs/pages/settings.md +77 -0
  98. package/agent-assets/docs/pages/tasks.md +74 -0
  99. package/agent-assets/docs/pages/wiki.md +73 -0
  100. package/agent-assets/docs/reference/api.md +18 -17
  101. package/agent-assets/docs/reference/cli-commands.md +13 -10
  102. package/agent-assets/docs/reference/config.md +40 -35
  103. package/agent-assets/docs/reference/disallowed-tools.md +18 -17
  104. package/agent-assets/docs/reference/keyboard-shortcuts.md +6 -8
  105. package/agent-assets/docs/reference/knowledge-layout.md +10 -10
  106. package/agent-assets/docs/reference/process-keys.md +20 -22
  107. package/agent-assets/docs/reference/skills.md +18 -16
  108. package/agent-assets/docs/troubleshooting/auth-failed.md +13 -11
  109. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +10 -10
  110. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +26 -24
  111. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +8 -9
  112. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +19 -18
  113. package/agent-assets/docs/troubleshooting/observation-not-detected.md +14 -15
  114. package/agent-assets/docs/troubleshooting/quota-exhausted.md +28 -26
  115. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +35 -34
  116. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +21 -24
  117. package/agent-assets/skills/agent-create/SKILL.md +39 -5
  118. package/agent-assets/skills/background-task/SKILL.md +9 -4
  119. package/agent-assets/skills/board/SKILL.md +8 -9
  120. package/agent-assets/skills/browser-task/SKILL.md +2 -0
  121. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +2 -1
  122. package/agent-assets/skills/schedule/SKILL.md +6 -5
  123. package/agent-assets/skills/sources/SKILL.md +68 -0
  124. package/agent-assets/skills/sources/curation.json +21 -0
  125. package/agent-assets/skills/sources/seeds/filing-rules.seed.json +25 -0
  126. package/agent-assets/skills/sources/seeds/source-collections.seed.json +20 -0
  127. package/agent-assets/skills/task/SKILL.md +5 -2
  128. package/agent-assets/task-flows/background_task.md +29 -3
  129. package/agent-assets/task-flows/message.received.dm.md +1 -1
  130. package/agent-assets/task-flows/routine.activity_scan.md +17 -2
  131. package/agent-assets/task-flows/routine.evening_review.md +72 -11
  132. package/agent-assets/task-flows/routine.fetch_window.md +21 -0
  133. package/agent-assets/task-flows/routine.monthly_review.md +3 -1
  134. package/agent-assets/task-flows/routine.morning_routine_today.md +26 -7
  135. package/agent-assets/task-flows/routine.source_maintenance.md +50 -0
  136. package/agent-assets/task-flows/scheduled.dm.md +8 -3
  137. package/agent-assets/templates/_manifest.json +1 -0
  138. package/agent-assets/templates/knowledge/sources/_index.md +19 -0
  139. package/package.json +4 -4
@@ -17,7 +17,6 @@ section: memory-files
17
17
  tags:
18
18
  - memory
19
19
  - journal
20
- - reflection
21
20
  - routines
22
21
  status: stable
23
22
  ask_examples:
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - Why did journal/agent.md stop growing?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-07
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - journal
33
32
  - retros
@@ -77,20 +76,22 @@ Each entry carries:
77
76
  - The reflection itself.
78
77
 
79
78
  The file lives at `~/.personal-agent/context/journal/agent.md`. The
80
- day-to-day morning and ad-hoc entries accumulate indefinitely; the
81
- daily retention rollup keeps only a rolling window of the structured
82
- retros (the most recent 12 `## Weekly` and 24 `## Monthly` sections),
83
- pruning older ones. Later routines read it back to look for patterns.
79
+ day-to-day morning and ad-hoc entries accumulate indefinitely. A daily
80
+ retention rollup then keeps only a rolling window of the structured
81
+ retros the most recent 12 `## Weekly` and 24 `## Monthly` sections
82
+ and prunes older ones. Later routines read the file back to look for
83
+ patterns.
84
84
 
85
85
  ## Who writes it, and when
86
86
 
87
87
  Three routines append to the journal — none ever rewrites it:
88
88
 
89
89
  - **Morning routine** is the recurring daily writer — and here the
90
- daemon itself does the writing, not an LLM stage. After the day's
90
+ daemon (the always-on local background service) does the writing
91
+ itself, rather than an AI-model (LLM) stage. Once the day's
91
92
  stages (Stage A `routine.morning_routine_today`, Stage B
92
- `routine.morning_routine_journal`) settle, the daemon appends a
93
- one-paragraph audit-trail entry assembled from the run's
93
+ `routine.morning_routine_journal`) finish, the daemon appends a
94
+ one-paragraph audit-trail entry built from the run's
94
95
  `agent_actions` rows — stage results, inbox stats, anomalies — plus
95
96
  a one-line footprint of the prior day's actions. This is the entry
96
97
  you'll see most often.
@@ -104,7 +105,8 @@ Three routines append to the journal — none ever rewrites it:
104
105
  rejected. It does not write the bulk of the diary.
105
106
 
106
107
  In-the-moment notes can also land here when the agent flags something
107
- worth recording during reactive work.
108
+ worth recording during reactive work — its live back-and-forth with
109
+ you, outside the scheduled routines.
108
110
 
109
111
  ### Example entry
110
112
 
@@ -18,8 +18,6 @@ summary: |
18
18
  section: memory-files
19
19
  tags:
20
20
  - memory
21
- - feedback
22
- - learning
23
21
  - routines
24
22
  status: beta
25
23
  ask_examples:
@@ -30,7 +28,7 @@ ask_examples:
30
28
  - How do I tune the lesson caps?
31
29
  locale: en-US
32
30
  created: 2026-06-08
33
- updated: 2026-06-07
31
+ updated: 2026-07-01
34
32
  keywords:
35
33
  - lessons
36
34
  - feedback
@@ -61,20 +59,21 @@ ui_anchors:
61
59
 
62
60
  The lesson stores are where the agent remembers how you want it to
63
61
  behave: a short, dated list of learned directives that grows from your
64
- corrections and the agent's own retros, and is fed back into the agent's
65
- work so it stops repeating the same mistakes.
62
+ corrections and from the agent's own reviews of its work, and is fed back
63
+ into the agent's work so it stops repeating the same mistakes.
66
64
 
67
65
  ## What they are
68
66
 
69
67
  There are two kinds of store:
70
68
 
71
69
  - **Global agent behavior** — `policies/agent-lessons.md`. Lessons that
72
- apply to the agent as a whole. These are injected into your DM
73
- conversations and into the routines that decide whether to notify you.
70
+ apply to the agent as a whole. They are fed into your DM (direct
71
+ message) chats with the agent and into the routines that decide whether
72
+ to notify you.
74
73
  - **Per-agent** — `policies/agents/<slug>/lessons.md`, one per Agent
75
- Definition. These are injected **only** into that agent's own
76
- executions, so a lesson learned for your "weekly-report" agent never
77
- leaks into an unrelated one.
74
+ Definition. These are fed in **only** when that agent itself runs, so a
75
+ lesson learned for your "weekly-report" agent never leaks into an
76
+ unrelated one.
78
77
 
79
78
  Both live under `~/.personal-agent/context/policies/`, alongside your
80
79
  other rule files, and are plain Markdown you can read or hand-edit.
@@ -111,7 +110,7 @@ it for you. There are three ways signals enter:
111
110
  Those raw signals don't become lessons immediately. Each night the
112
111
  [evening review](../routines/evening-review.md) folds the day's
113
112
  unconsumed signals into the right store as dated lessons, then marks them
114
- consumed (it skips the step entirely when nothing pends). Once a month
113
+ consumed (it skips the step entirely when nothing is waiting). Once a month
115
114
  the monthly review — off by default; opt in by enabling the
116
115
  monthly-review agent at `/agents/monthly-review` — runs a re-generalize
117
116
  pass that collapses several same-theme lessons into one higher-level
@@ -122,8 +121,8 @@ principle, keeping each store small.
122
121
  A new lesson is stored but is not necessarily *injected* right away. A
123
122
  lesson carries a `<!-- provisional -->` marker until it has enough
124
123
  corroborating evidence; provisional lessons sit in the file but are not
125
- fed into the agent's prompts. This avoids over-fitting to a single
126
- offhand comment.
124
+ fed into the agent's prompts. This keeps the agent from over-reacting to a
125
+ single offhand comment.
127
126
 
128
127
  How a lesson crosses from provisional to active:
129
128
 
@@ -135,6 +134,26 @@ How a lesson crosses from provisional to active:
135
134
  promotes on the first occurrence — it is taken at your word.
136
135
  - An **ignore on its own never promotes** a lesson, and is never read as
137
136
  disapproval.
137
+ - A candidate that **contradicts an established lesson** (one whose
138
+ confidence is at or above `feedbackContradictionGuardCf`, default 0.6)
139
+ is held provisional until it accumulates 1.5x the usual evidence — a
140
+ single stray signal can't flip a well-supported lesson. Your explicit
141
+ corrections bypass this guard entirely.
142
+
143
+ ## Confidence (`cf`)
144
+
145
+ Every lesson carries a numeric confidence `cf` between 0 and 1, stamped
146
+ deterministically by the daemon (never trusted from the model's rewrite).
147
+ It rises with corroboration and decays with time since the lesson was
148
+ last reinforced. Inferred lessons whose decayed confidence falls below
149
+ `feedbackLessonConfidenceFloor` (default 0.25) quietly stop being
150
+ injected — but the two highest-authority classes are protected: a
151
+ durable `constraint` is never filtered, and an explicit owner correction
152
+ is tested on its undecayed confidence (obeying a directive produces no
153
+ new signals, so decay alone can't silently un-bind it). A daily
154
+ mechanical pass (the **Lesson Maintenance** agent at
155
+ `/agents/lesson-maintenance`, 17:40) keeps the stamps fresh even on days
156
+ with no new feedback.
138
157
 
139
158
  ## Bounded by design
140
159
 
@@ -142,19 +161,25 @@ The stores can't grow without limit. Each is capped in bytes and entry
142
161
  count — the global store at `feedbackLessonMaxBytesGlobal` bytes
143
162
  (default 8192) / 40 entries, the per-agent stores at
144
163
  `feedbackLessonMaxBytesPerAgent` (default 4096) / 20 entries. When a
145
- store is full, the lowest-signal lessons are dropped first. Lessons that
146
- go untouched for `feedbackLessonStaleDays` (default 60) are pruned — with
147
- one exception: a `kind=constraint` lesson is durable and is never
148
- stale-pruned or collapsed away. The underlying feedback signals
149
- themselves are retained for `feedbackSignalRetentionDays` (default 180).
164
+ store is full, the lowest-signal lessons are dropped first. Expiration is
165
+ graduated and reversible: a lesson untouched past
166
+ `feedbackLessonStaleDays` (default 60) whose decayed confidence is below
167
+ the floor **demotes** back to provisional; a provisional lesson that goes
168
+ uncorroborated for twice that horizon is **archived** (removed from the
169
+ file — its raw signals remain in the database); fresh corroboration
170
+ **re-promotes** a demoted lesson. One exception: a `kind=constraint`
171
+ lesson is durable and never expires or collapses away. The underlying
172
+ feedback signals themselves are retained for
173
+ `feedbackSignalRetentionDays` (default 180).
150
174
 
151
175
  ## Where in the dashboard
152
176
 
153
177
  **Settings → Lessons** (`/settings/lessons`, labelled "Lessons" with a
154
- **Preview** badge) is the read/tune surface. From there you can view and
155
- edit the lessons themselves and adjust every knob above:
178
+ **Preview** badge) is where you read and tune all of this. From there you
179
+ can view and edit the lessons themselves and adjust every knob above:
156
180
  `feedbackLearningEnabled` (the master kill-switch, on by default),
157
- `feedbackPromotionThreshold`, the byte caps, the stale-days horizon, and
181
+ `feedbackPromotionThreshold`, the byte caps, the stale-days horizon, the
182
+ confidence floor, the contradiction guard, the outcome-rollup toggle, and
158
183
  the signal retention window. Turning `feedbackLearningEnabled` off stops
159
184
  both capture and consolidation.
160
185
 
@@ -16,8 +16,6 @@ summary: |
16
16
  section: memory-files
17
17
  tags:
18
18
  - memory
19
- - projects
20
- - core
21
19
  status: stable
22
20
  ask_examples:
23
21
  - Where do I find the per-project files?
@@ -25,7 +23,7 @@ ask_examples:
25
23
  - How does the agent write to a project file?
26
24
  locale: en-US
27
25
  created: 2026-04-25
28
- updated: 2026-06-07
26
+ updated: 2026-07-01
29
27
  keywords:
30
28
  - projects
31
29
  - project file
@@ -67,11 +65,11 @@ only the minimum — `type: project`, `owner: shared`, an `updated`
67
65
  date, and an H1 title. By convention the agent also writes `slug`,
68
66
  `state`, `start`, `due`, `stakeholders`, `next_milestone`, and `tags`.
69
67
 
70
- `state` is what marks a project **active**: the Obsidian `_active.base`
71
- Bases view filters on it (`state != "archived"`), and the morning
72
- routine surfaces every project whose `state` is not `archived` — a
73
- file with no `state` (or any state other than `archived`) is treated
74
- as active and surfaced.
68
+ The `state` field is what marks a project **active**. The Obsidian
69
+ `_active.base` view filters on it (keeping rows where
70
+ `state != "archived"`), and the morning routine surfaces every project
71
+ whose `state` is not `archived`. A file with no `state` at all or any
72
+ state other than `archived` — counts as active and shows up.
75
73
 
76
74
  ```markdown
77
75
  ---
@@ -95,13 +93,14 @@ Ship the public beta before the conference.
95
93
 
96
94
  ## When It Runs / How It Is Triggered
97
95
 
98
- Read on demand. Written when the operator asks the agent to remember
99
- something project-specific, or when a DM expresses project intent
100
- (create, update status, mark done).
96
+ Read on demand. Written when you ask the agent to remember something
97
+ project-specific, or when a direct message (DM) signals project intent
98
+ create, update status, or mark done.
101
99
 
102
- The agent cannot edit context files on disk a pre-write hook blocks
103
- `Edit`/`Write` anywhere inside the context vault. All project writes go
104
- through the context API:
100
+ The agent cannot edit context files directly on disk: a pre-write hook
101
+ blocks the `Edit` and `Write` tools anywhere inside the context vault
102
+ (the folder that holds these Markdown memory files). Instead, every
103
+ project write goes through the context API:
105
104
 
106
105
  - `GET /api/context/list/projects` — discover existing project files.
107
106
  - `PUT /api/context/plans/projects/<slug>` — create or fully replace.
@@ -9,13 +9,13 @@ aliases:
9
9
  - preparation timeline
10
10
  category: features
11
11
  summary: |
12
- roadmap.md captures long-running goals plus Preparation Timeline
13
- rows that fire on specific days. The morning routine walks the
14
- roadmap each day to surface items whose offsets fire.
12
+ roadmap.md holds long-running goals plus Preparation Timeline
13
+ rows dated for specific days. Each day the morning routine reads the
14
+ roadmap and surfaces any row whose date has arrived.
15
15
  section: memory-files
16
16
  tags:
17
17
  - memory
18
- - core
18
+ - scheduler
19
19
  status: stable
20
20
  ask_examples:
21
21
  - What is the roadmap file?
@@ -24,7 +24,7 @@ ask_examples:
24
24
  - How do I add a roadmap entry?
25
25
  locale: en-US
26
26
  created: 2026-04-25
27
- updated: 2026-06-07
27
+ updated: 2026-07-01
28
28
  keywords:
29
29
  - roadmap.md
30
30
  - roadmap
@@ -49,7 +49,7 @@ context_files:
49
49
  ## In One Sentence
50
50
 
51
51
  A multi-week plan: each goal carries dates and Preparation Timeline
52
- rows that the morning routine fires on the day they come due.
52
+ rows, and the morning routine surfaces each row on the day it comes due.
53
53
 
54
54
  ## What It Does
55
55
 
@@ -87,16 +87,17 @@ hotel", and so on.
87
87
 
88
88
  ## When It Runs / How It Is Triggered
89
89
 
90
- Read by the morning routine each day, which walks the roadmap and
91
- surfaces any Preparation Timeline rows dated for that day (or overdue).
92
- The file is updated by the operator, or by the agent on request (for
93
- example via the roadmap skill or `aitne run-now roadmap_maintenance`).
90
+ The morning routine reads the roadmap each day and surfaces any
91
+ Preparation Timeline rows dated for that day plus any earlier row it
92
+ has not handled yet (overdue). You can update the file yourself, or ask
93
+ the agent to (for example via the roadmap skill or
94
+ `aitne run-now roadmap_maintenance`).
94
95
 
95
- The agent never edits the file directly. All writes go through the
96
+ The agent never edits the file directly. Every write goes through the
96
97
  daemon's context endpoint — `PUT /api/context/plans/roadmap` (full
97
- replace) or `PATCH /api/context/plans/roadmap` (section op) which is
98
- guarded by an exclusive roadmap write lock so two flows can't clobber
99
- each other.
98
+ replace) or `PATCH /api/context/plans/roadmap` (section op). A write
99
+ lock holds the roadmap exclusively during each write, so two flows can
100
+ never overwrite each other.
100
101
 
101
102
  ## Where in the Dashboard
102
103
 
@@ -104,6 +105,6 @@ each other.
104
105
 
105
106
  ## Related
106
107
 
107
- - [Morning Routine](../../routines/morning-routine.md) — reads the roadmap each day.
108
+ - [Morning Routine](../routines/morning-routine.md) — reads the roadmap each day.
108
109
  - [Projects](projects.md) — deeper, per-project context the roadmap links to.
109
110
  - [today.md](today.md) — the single-day plan the roadmap feeds into.
@@ -21,7 +21,6 @@ tags:
21
21
  - memory
22
22
  - journal
23
23
  - routines
24
- - core
25
24
  status: stable
26
25
  ask_examples:
27
26
  - Where does the agent store the day's diary?
@@ -29,7 +28,7 @@ ask_examples:
29
28
  - How do I change which sections the daily journal includes?
30
29
  locale: en-US
31
30
  created: 2026-04-25
32
- updated: 2026-06-10
31
+ updated: 2026-07-01
33
32
  keywords:
34
33
  - daily journal
35
34
  - diary
@@ -42,7 +41,7 @@ related:
42
41
  - features/memory-files/agent-journal
43
42
  - concepts/agent-day
44
43
  ui_anchors:
45
- - /schedule
44
+ - /tasks
46
45
  - /agents/morning-routine?tab=rulebook
47
46
  process_keys:
48
47
  - routine.morning_routine_journal
@@ -55,8 +54,9 @@ context_files:
55
54
  ## In One Sentence
56
55
 
57
56
  `journal/daily/YYYY-MM-DD.md` is the morning routine's first-person
58
- diary of the **previous** agent-day — what the user did, who they met,
59
- what they talked aboutcomposed by the daemon and kept as a
57
+ diary of the **previous** agent-day (the agent's version of a day,
58
+ which rolls over at 04:00 by default) what the user did, who they
59
+ met, what they talked about — composed by the daemon and kept as a
60
60
  read-only archive that the weekly and monthly reviews read back.
61
61
 
62
62
  > **Renamed from `schedule/`.** The old mechanical `schedule/YYYY-MM-DD.md`
@@ -93,11 +93,11 @@ typically includes:
93
93
  - `## Tasks` — what the user worked on.
94
94
  - `## Conversations` — who they talked to and about what.
95
95
 
96
- When the `browser_history` integration is active, a reading/research
97
- surface is woven in from the day's browser digest. Daemon-owned
98
- frontmatter (`date`, `weekday`, `calendar_events`, `messages_handled`,
99
- `projects`, `people`, `tags`, `content_hash`, `updated`) is filled in
100
- automatically. The exact sections and tone are governed by the
96
+ When the `browser_history` integration is turned on, a reading and
97
+ research section is added from the day's browser digest. The daemon
98
+ fills in the frontmatter fields automatically (`date`, `weekday`,
99
+ `calendar_events`, `messages_handled`, `projects`, `people`, `tags`,
100
+ `content_hash`, `updated`). The exact sections and tone are set by the
101
101
  journal-format and journal-export policy files (see
102
102
  [Configuration](#configuration)).
103
103
 
@@ -13,9 +13,7 @@ summary: |
13
13
  and the operator all read and append to it during the day.
14
14
  section: memory-files
15
15
  tags:
16
- - core
17
16
  - memory
18
- - today
19
17
  status: stable
20
18
  ask_examples:
21
19
  - What is in today.md?
@@ -23,7 +21,7 @@ ask_examples:
23
21
  - Why does today.md keep getting rewritten?
24
22
  locale: en-US
25
23
  created: 2026-04-25
26
- updated: 2026-06-07
24
+ updated: 2026-07-01
27
25
  keywords:
28
26
  - today
29
27
  - day plan
@@ -48,9 +46,10 @@ context_files:
48
46
 
49
47
  ## In One Sentence
50
48
 
51
- The single live file for the current agent day plan, log, tasks, and
52
- hand-off. The morning routine rebuilds it; everything else during the
53
- day appends to it.
49
+ The single live file for the current agent day (the window the agent
50
+ treats as "today") its plan, log, tasks, and hand-off. The morning
51
+ routine rebuilds it fresh each day; everything else during the day only
52
+ appends to it.
54
53
 
55
54
  ## What It Does
56
55
 
@@ -58,12 +57,12 @@ today.md holds six sections, written in this order:
58
57
 
59
58
  - **User Schedule** — the day's calendar events.
60
59
  - **User Tasks** — today's external tasks plus agent-tracked to-dos.
61
- - **Agent Plan** — what the agent intends to work on today (each row is
62
- registered as a schedule entry by the morning routine; mid-day
63
- sessions may add rows for new signals or cancel ones whose premise
64
- changed).
65
- - **Agent Notes** — look-ahead items and date-bound memos folded in from
66
- inbox triage.
60
+ - **Agent Plan** — what the agent means to work on today. The morning
61
+ routine turns each row into a schedule entry; a later session that day
62
+ can add rows for new signals or drop a row whose reason no longer
63
+ holds.
64
+ - **Agent Notes** — upcoming items and date-specific memos pulled in from
65
+ inbox triage (the sorting of new incoming items).
67
66
  - **Agent Log** — what actually happened, appended throughout the day.
68
67
  - **Handoff** — what carries over to tomorrow.
69
68
 
@@ -73,17 +72,18 @@ today.md holds six sections, written in this order:
73
72
  rotates the previous day's file to `state/yesterday.md`).
74
73
  - The **activity scan** routes new observations into the right section
75
74
  and appends short status lines under Agent Log.
76
- - The **evening review** finalizes the file — it updates Agent Log and
75
+ - The **evening review** closes out the file — it updates Agent Log and
77
76
  the Handoff section. (The daily journal itself is written the next
78
77
  morning, from the rotated file.)
79
78
 
80
79
  ## How It Is Written
81
80
 
82
- The agent never edits today.md with a file tool. All writes go through
83
- the daemon's context API — `PUT`/`PATCH /api/context/state/today` (the
84
- canonical, class-prefixed path). A `today-write-lock` serializes writes
85
- during the morning routine: while the lock is held, a write to
86
- `state/today` must carry the `X-Lock-Id` header or it is rejected.
81
+ The agent never edits today.md with a file tool. Every write goes
82
+ through the daemon's context API — `PUT`/`PATCH /api/context/state/today`
83
+ (the canonical, class-prefixed path). A `today-write-lock` forces writes
84
+ to happen one at a time during the morning routine: while the lock is
85
+ held, any write to `state/today` must carry the `X-Lock-Id` header, or
86
+ it is rejected.
87
87
 
88
88
  ## Where in the Dashboard
89
89
 
@@ -18,8 +18,6 @@ summary: |
18
18
  section: memory-files
19
19
  tags:
20
20
  - memory
21
- - profile
22
- - core
23
21
  status: stable
24
22
  ask_examples:
25
23
  - What is identity/profile.md?
@@ -27,7 +25,7 @@ ask_examples:
27
25
  - Will the agent change my profile without asking?
28
26
  locale: en-US
29
27
  created: 2026-04-25
30
- updated: 2026-06-07
28
+ updated: 2026-07-01
31
29
  keywords:
32
30
  - user profile
33
31
  - identity/profile.md
@@ -55,19 +53,21 @@ context_files:
55
53
 
56
54
  ## In One Sentence
57
55
 
58
- A stable profile of you the agent reads it every session and
59
- silently appends durable facts you state in DMs.
56
+ A steady profile of you. The agent reads it at the start of every
57
+ session and quietly adds durable facts things that stay true, like
58
+ your role or your manager's name — that you mention in DMs.
60
59
 
61
60
  ## What It Does
62
61
 
63
62
  - Captures who you are, what you do, and who matters in your life.
64
- - Is pinned at the top of every session prompt, so the agent keeps
65
- the same baseline understanding of you turn-to-turn.
66
- - Anchors a set of companion slices in the `identity/` directory that
67
- split the dossier into topic-shaped files:
63
+ - Sits at the top of every session prompt, so the agent keeps the same
64
+ baseline understanding of you from one message to the next.
65
+ - Anchors a set of companion files — called slices in the `identity/`
66
+ directory, one per topic:
68
67
  `identity/people.md`, `identity/work.md`, `identity/expertise.md`,
69
- `identity/personal.md`, `identity/goals.md`. The agent loads these on
70
- demand instead of inlining everything into every prompt.
68
+ `identity/personal.md`, `identity/goals.md`. The agent loads these
69
+ only when it needs them, instead of packing everything into every
70
+ prompt.
71
71
 
72
72
  > Older docs and exports may call these files `user/profile.md`,
73
73
  > `user/people.md`, and so on. `user/` is a legacy alias for
@@ -77,11 +77,11 @@ silently appends durable facts you state in DMs.
77
77
  ## When It Runs / How It Is Triggered
78
78
 
79
79
  - **Read continuously** — loaded at the start of every session.
80
- - **Written** silently, in the same turn, when you state a durable
81
- fact about yourself in a DM ("remember that…", "I'm a…", "my
82
- manager is…"), and during the profile sweep routine
83
- (`routine.user_profile_sweep`), which catches facts the DM-time
84
- capture missed and routes them into the appropriate
80
+ - **Written** silently, within the same reply, when you state a
81
+ durable fact about yourself in a DM ("remember that…", "I'm a…",
82
+ "my manager is…"), and during the profile sweep routine
83
+ (`routine.user_profile_sweep`), which catches facts that the
84
+ in-chat capture missed and files them into the right
85
85
  `identity/*.md` slice.
86
86
 
87
87
  The agent never edits these files directly. It writes through the
@@ -106,7 +106,7 @@ To tell the agent a durable fact about yourself, just say it in a DM:
106
106
  > remember that my manager is Priya and we sync every Monday at 10am
107
107
 
108
108
  The agent silently appends a line to the relevant slice (here
109
- `identity/people.md`) in the same turn, and recalls it in future
109
+ `identity/people.md`) right away, and recalls it in future
110
110
  sessions.
111
111
 
112
112
  ## When Something Goes Wrong
@@ -23,10 +23,8 @@ summary: |
23
23
  and list every command.
24
24
  section: messaging
25
25
  tags:
26
- - core
27
26
  - messaging
28
27
  - operations
29
- - bang-commands
30
28
  status: stable
31
29
  ask_examples:
32
30
  - How do I pause the agent from my phone?
@@ -37,7 +35,7 @@ ask_examples:
37
35
  - How do I accept a research-cluster offer?
38
36
  locale: en-US
39
37
  created: 2026-05-12
40
- updated: 2026-06-07
38
+ updated: 2026-07-01
41
39
  keywords:
42
40
  - bang command
43
41
  - "!stop"
@@ -70,10 +68,12 @@ process_keys:
70
68
 
71
69
  # Bang Commands
72
70
 
73
- DM the agent a short word starting with `!` and the daemon answers
74
- directly no LLM call, no cost, no session opened. Use them to pause,
75
- check spend, look at recent failures, manage research clusters, and
76
- list every command.
71
+ DM the agent a short word that starts with `!` the `!` symbol is
72
+ nicknamed a "bang," which is where these commands get their name and
73
+ the daemon (the always-on local background service) answers it directly.
74
+ No AI model runs, so there is no cost and no chat session is opened. Use
75
+ bang commands to pause the agent, check spend, look at recent failures,
76
+ manage research clusters, and list every command.
77
77
 
78
78
  ## Who Can Use Them
79
79
 
@@ -89,9 +89,9 @@ Pair your messaging app first; see
89
89
  | Command | What it does |
90
90
  |---|---|
91
91
  | `!help` | List every registered command — built-ins plus enabled user commands. |
92
- | `!stop` | Pause cron-driven autonomous work (activity scan, morning / evening / weekly routines, scheduled tasks). In-flight runs are **not** aborted. |
92
+ | `!stop` | Pause cron-driven (scheduled) autonomous work: activity scan, the morning / evening / weekly routines, and scheduled tasks. Runs already in progress are **not** aborted. |
93
93
  | `!start` | Resume autonomous work after `!stop`. |
94
- | `!close` | Close the active DM session for the current routing tuple so the next DM starts a fresh conversation. |
94
+ | `!close` | Close the active DM session for the current routing tuple (this platform + channel + thread) so the next DM starts a fresh conversation. |
95
95
 
96
96
  ### Tasks (detached background / browser work)
97
97
 
@@ -206,12 +206,12 @@ were hidden.
206
206
 
207
207
  ## How They Behave
208
208
 
209
- - **Exact match for atomic commands** (`!stop`, `!cost`, `!checks` —
210
- each `!cost <backend>` variant is its own exact-match entry) and
211
- **prefix match for parameterised ones**
212
- (`!research accept <slug>`, `!compile @work full`). Anything
213
- spanning newlines falls through to the agent path so a
214
- `"!stop\nignore me"` payload cannot spoof a command.
209
+ - **Exact match for atomic commands** — single words like `!stop`,
210
+ `!cost`, and `!checks`, where each `!cost <backend>` variant is its
211
+ own exact-match entry — and **prefix match for parameterised ones**
212
+ that take an argument (`!research accept <slug>`, `!compile @work
213
+ full`). Anything that spans more than one line falls through to the
214
+ agent path, so a `"!stop\nignore me"` payload cannot spoof a command.
215
215
  - **DM only.** Bangs typed into a shared channel are ignored.
216
216
  - **No agent cost on built-ins.** No LLM is invoked for the
217
217
  daemon-side commands; one `bang_command` row is appended to
@@ -16,7 +16,6 @@ summary: |
16
16
  messaging app.
17
17
  section: messaging
18
18
  tags:
19
- - core
20
19
  - messaging
21
20
  - dashboard
22
21
  status: stable
@@ -26,7 +25,7 @@ ask_examples:
26
25
  - Why are my dashboard chat replies different from my Telegram replies?
27
26
  locale: en-US
28
27
  created: 2026-04-25
29
- updated: 2026-05-28
28
+ updated: 2026-07-01
30
29
  keywords:
31
30
  - chat
32
31
  - dashboard
@@ -55,13 +54,14 @@ ui_anchors:
55
54
 
56
55
  ## In One Sentence
57
56
 
58
- `/chat` is a browser-mounted DM with the agent — a fully featured
59
- conversational surface separate from any paired messaging app.
57
+ `/chat` is a DM with the agent that lives in your browser — a fully
58
+ featured chat, separate from any paired messaging app.
60
59
 
61
60
  ## What It Does
62
61
 
63
- - **Real-time** message stream over SSE the same conversational
64
- experience as a paired DM, but in the browser.
62
+ - **Real-time** message stream over SSE (Server-Sent Events, a live
63
+ one-way feed from the daemon to your browser) — the same
64
+ conversational experience as a paired DM, but in the browser.
65
65
  - **Tool progress** rendered inline (which tool, which file, which
66
66
  endpoint) so you can watch the agent work.
67
67
  - **Session history** persisted to SQLite (`scope='dashboard_chat'`)
@@ -113,3 +113,4 @@ demand when you send, never on a schedule. Its default tier is
113
113
  - [Messaging Overview](overview.md)
114
114
  - [Backends and Tiers](../../concepts/backends-and-tiers.md)
115
115
  - [Process Keys](../../concepts/process-keys.md)
116
+ - [Keyboard Shortcuts](../../reference/keyboard-shortcuts.md)
@@ -26,7 +26,7 @@ ui_anchors:
26
26
  - /connections/messaging
27
27
  locale: en-US
28
28
  created: 2026-04-25
29
- updated: 2026-05-28
29
+ updated: 2026-07-01
30
30
  keywords:
31
31
  - discord
32
32
  - bot token
@@ -44,8 +44,9 @@ related:
44
44
 
45
45
  ## In One Sentence
46
46
 
47
- A Discord bot becomes the agent's surface; pair via DM after
48
- installing the bot in the developer portal.
47
+ Aitne talks to you through a Discord bot you create. Set the bot up in
48
+ Discord's developer portal, then link it to yourself by sending it a
49
+ direct message.
49
50
 
50
51
  ## How to Set Up
51
52
 
@@ -57,8 +58,9 @@ installing the bot in the developer portal.
57
58
  DM or mention text without it.
58
59
  4. Invite the bot to any servers where you want mentions to work.
59
60
  5. Paste the token under **Connections → Messaging → Discord**.
60
- 6. DM the magic phrase from your own Discord account to complete
61
- pairing.
61
+ 6. From your own Discord account, DM the bot the magic phrase (the
62
+ short one-time pairing code Aitne shows you) to finish pairing. See
63
+ [Pairing & Magic Phrase](pairing-and-magic-phrase.md).
62
64
 
63
65
  ## What It Does
64
66