@awebai/oats 0.29.3 → 0.30.0

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 (232) hide show
  1. package/README.md +12 -6
  2. package/bin/oats.mjs +203 -54
  3. package/capabilities/oats-aweb/bin/oats-aweb.mjs +538 -204
  4. package/capabilities/oats-aweb/injects/aweb.md +1 -1
  5. package/capabilities/oats-aweb/lib/binding-wire.mjs +31 -22
  6. package/capabilities/oats-aweb/oats.json +5 -12
  7. package/capabilities/oats-aweb/skills/VENDORED.md +4 -4
  8. package/capabilities/oats-aweb/skills/aweb-team-membership/SKILL.md +1 -1
  9. package/capabilities/oats-aweb/skills/oats-aweb/SKILL.md +83 -13
  10. package/capabilities/oats-code-review/injects/reviewer.md +26 -0
  11. package/capabilities/oats-code-review/oats.json +16 -0
  12. package/capabilities/oats-code-review/skills/adversarial-review/SKILL.md +66 -0
  13. package/capabilities/oats-code-review/skills/review-dev-docs/SKILL.md +30 -0
  14. package/capabilities/oats-code-review/skills/security-review/SKILL.md +56 -0
  15. package/capabilities/oats-code-review/skills/simplification-review/SKILL.md +34 -0
  16. package/capabilities/oats-developer/injects/developer.md +38 -0
  17. package/capabilities/oats-developer/oats.json +17 -0
  18. package/capabilities/oats-developer/skills/execution-strategy/SKILL.md +43 -0
  19. package/capabilities/oats-developer/skills/maintain-dev-docs/SKILL.md +47 -0
  20. package/capabilities/oats-developer/skills/run-the-review-loop/SKILL.md +65 -0
  21. package/capabilities/oats-developer/skills/understand-the-spec/SKILL.md +37 -0
  22. package/capabilities/oats-developer/skills/worktrees/SKILL.md +36 -0
  23. package/capabilities/oats-engineering-expert/injects/expert.md +37 -0
  24. package/capabilities/oats-engineering-expert/oats.json +17 -0
  25. package/capabilities/oats-engineering-expert/skills/coordinate-developers/SKILL.md +37 -0
  26. package/capabilities/oats-engineering-expert/skills/coordinate-experts/SKILL.md +52 -0
  27. package/capabilities/oats-engineering-expert/skills/land-your-prs/SKILL.md +50 -0
  28. package/capabilities/oats-engineering-expert/skills/plan-and-spec/SKILL.md +53 -0
  29. package/capabilities/oats-engineering-expert/skills/verify-developer-work/SKILL.md +49 -0
  30. package/capabilities/oats-okf/bin/oats-okf.mjs +16 -9
  31. package/capabilities/oats-okf/lib/binding-wire.mjs +47 -15
  32. package/capabilities/oats-okf/lib/config.mjs +2 -1
  33. package/capabilities/oats-okf/lib/consult.mjs +26 -4
  34. package/capabilities/oats-okf/lib/harvest-switch.mjs +16 -3
  35. package/capabilities/oats-okf/lib/inspection.mjs +26 -7
  36. package/capabilities/oats-okf/lib/io.mjs +9 -1
  37. package/capabilities/oats-okf/lib/sources.mjs +34 -3
  38. package/capabilities/oats-okf/lib/stores.mjs +8 -6
  39. package/capabilities/oats-okf/lib/worker.mjs +7 -17
  40. package/capabilities/oats-okf/oats.json +6 -3
  41. package/capabilities/oats-okf-harvest/bin/okf-harvest.mjs +2 -2
  42. package/capabilities/oats-okf-harvest/oats.json +3 -3
  43. package/capabilities/oats-okf-harvest/skills/knowledge-harvest/SKILL.md +6 -6
  44. package/capabilities/oats-okf-maintenance/bin/okf-maintenance.mjs +37 -16
  45. package/capabilities/oats-okf-maintenance/injects/maintainer.md +1 -1
  46. package/capabilities/oats-okf-maintenance/lib/provenance.mjs +6 -1
  47. package/capabilities/oats-okf-maintenance/oats.json +2 -2
  48. package/capabilities/oats-okf-maintenance/skills/knowledge-review/SKILL.md +17 -2
  49. package/capabilities/oats-okf-maintenance/skills/okf-trigger-setup/SKILL.md +11 -23
  50. package/capabilities/oats-workspace-experts/injects/oats-experts.md +26 -0
  51. package/capabilities/oats-workspace-experts/oats.json +9 -0
  52. package/docs/capabilities.md +160 -171
  53. package/docs/capability-manifest.schema.json +7 -10
  54. package/docs/configuration.md +213 -64
  55. package/docs/design/2026-09-16-knowledge-capability-contract.md +36 -50
  56. package/docs/design/2026-09-23-workspace-module-contracts.md +377 -544
  57. package/docs/design/2026-09-26-okf-knowledge-operations.md +132 -357
  58. package/docs/design/2026-09-27-team-model-v2.md +116 -0
  59. package/docs/design/2026-09-28-automations-trust.md +38 -0
  60. package/docs/design/2026-09-28-soul-launch-preference.md +63 -0
  61. package/docs/design/HISTORY.md +65 -0
  62. package/docs/design/README.md +23 -54
  63. package/docs/desktop-cli-api.md +1787 -1777
  64. package/docs/desktop.md +30 -91
  65. package/docs/execution-targets.md +146 -292
  66. package/docs/first-team.md +31 -17
  67. package/docs/implementation.md +76 -288
  68. package/docs/integrations.md +118 -320
  69. package/docs/knowledge-capability-authoring.md +25 -52
  70. package/docs/knowledge-reference/acceptance.md +3 -3
  71. package/docs/knowledge-reference/adoption.md +1 -1
  72. package/docs/knowledge-reference/harvester.md +2 -2
  73. package/docs/knowledge-reference/package-craft.md +3 -3
  74. package/docs/knowledge-reference/provider-mapping.md +3 -6
  75. package/docs/knowledge-reference/reader-capture.md +3 -3
  76. package/docs/knowledge-theory.md +62 -166
  77. package/docs/knowledge.md +225 -404
  78. package/docs/layers.md +42 -97
  79. package/docs/oats-local.schema.json +58 -5
  80. package/docs/oats-membership.schema.json +1 -8
  81. package/docs/oats-package.schema.json +5 -5
  82. package/docs/oats-workspace.schema.json +8 -22
  83. package/docs/official-catalog.md +25 -28
  84. package/docs/packages.md +45 -63
  85. package/docs/plans/0.30-close-out.md +61 -0
  86. package/docs/release-lane.md +77 -0
  87. package/docs/release-notes/oats-framework-v1.1.3.md +10 -8
  88. package/docs/release-notes/v0.19.0.md +48 -147
  89. package/docs/release-notes/v0.19.1.md +2 -3
  90. package/docs/release-notes/v0.19.3.md +2 -15
  91. package/docs/release-notes/v0.20.0.md +0 -15
  92. package/docs/release-notes/v0.22.0.md +71 -138
  93. package/docs/release-notes/v0.22.1.md +42 -90
  94. package/docs/release-notes/v0.22.10.md +1 -1
  95. package/docs/release-notes/v0.22.11.md +1 -47
  96. package/docs/release-notes/v0.22.12.md +4 -13
  97. package/docs/release-notes/v0.22.13.md +1 -42
  98. package/docs/release-notes/v0.22.14.md +3 -11
  99. package/docs/release-notes/v0.22.15.md +1 -46
  100. package/docs/release-notes/v0.22.16.md +6 -8
  101. package/docs/release-notes/v0.22.18.md +1 -99
  102. package/docs/release-notes/v0.22.19.md +3 -14
  103. package/docs/release-notes/v0.22.2.md +6 -15
  104. package/docs/release-notes/v0.22.3.md +0 -1
  105. package/docs/release-notes/v0.22.4.md +1 -14
  106. package/docs/release-notes/v0.22.5.md +2 -12
  107. package/docs/release-notes/v0.22.6.md +0 -3
  108. package/docs/release-notes/v0.23.0.md +9 -25
  109. package/docs/release-notes/v0.23.1.md +9 -25
  110. package/docs/release-notes/v0.23.2.md +2 -4
  111. package/docs/release-notes/v0.24.0.md +56 -97
  112. package/docs/release-notes/v0.24.1.md +7 -11
  113. package/docs/release-notes/v0.24.10.md +34 -45
  114. package/docs/release-notes/v0.24.11.md +12 -20
  115. package/docs/release-notes/v0.24.12.md +35 -48
  116. package/docs/release-notes/v0.24.13.md +34 -41
  117. package/docs/release-notes/v0.24.2.md +9 -13
  118. package/docs/release-notes/v0.24.3.md +7 -11
  119. package/docs/release-notes/v0.24.4.md +6 -6
  120. package/docs/release-notes/v0.24.5.md +6 -10
  121. package/docs/release-notes/v0.24.6.md +2 -5
  122. package/docs/release-notes/v0.24.7.md +46 -75
  123. package/docs/release-notes/v0.24.8.md +58 -96
  124. package/docs/release-notes/v0.24.9.md +38 -54
  125. package/docs/release-notes/v0.25.0.md +59 -76
  126. package/docs/release-notes/v0.25.1.md +57 -81
  127. package/docs/release-notes/v0.25.2.md +51 -70
  128. package/docs/release-notes/v0.25.3.md +11 -13
  129. package/docs/release-notes/v0.25.4.md +9 -13
  130. package/docs/release-notes/v0.25.5.md +3 -5
  131. package/docs/release-notes/v0.25.6.md +20 -29
  132. package/docs/release-notes/v0.25.7.md +5 -7
  133. package/docs/release-notes/v0.25.8.md +26 -39
  134. package/docs/release-notes/v0.26.0.md +175 -646
  135. package/docs/release-notes/v0.27.0.md +4 -5
  136. package/docs/release-notes/v0.27.1.md +4 -6
  137. package/docs/release-notes/v0.27.2.md +1 -1
  138. package/docs/release-notes/v0.28.0.md +57 -124
  139. package/docs/release-notes/v0.29.0.md +89 -208
  140. package/docs/release-notes/v0.29.1.md +1 -1
  141. package/docs/release-notes/v0.29.2.md +3 -4
  142. package/docs/release-notes/v0.29.4.md +90 -0
  143. package/docs/release-notes/v0.30.0.md +205 -0
  144. package/docs/schedules.md +280 -349
  145. package/docs/servers.md +99 -117
  146. package/docs/soul.schema.json +2 -9
  147. package/docs/souls-and-instances.md +145 -158
  148. package/docs/workspaces.md +132 -215
  149. package/lib/automations.mjs +28 -6
  150. package/lib/core.mjs +226 -74
  151. package/lib/instance-events.mjs +1 -1
  152. package/lib/instance-inspect.mjs +109 -34
  153. package/lib/instance-lifecycle.mjs +14 -1
  154. package/lib/instance-resolution.mjs +26 -27
  155. package/lib/launch-preference.mjs +87 -0
  156. package/lib/materialize.mjs +3 -3
  157. package/lib/packages.mjs +2 -5
  158. package/lib/resolve.mjs +29 -87
  159. package/lib/schedule.mjs +32 -18
  160. package/lib/teams-verbs.mjs +195 -0
  161. package/lib/teams.mjs +190 -0
  162. package/lib/triggers.mjs +53 -17
  163. package/lib/workspace.mjs +54 -147
  164. package/package-catalog.json +9 -15
  165. package/package.json +1 -1
  166. package/skills/oats-getting-started/SKILL.md +25 -13
  167. package/capabilities/oats-review/injects/review.md +0 -69
  168. package/capabilities/oats-review/oats.json +0 -10
  169. package/capabilities/oats-review/skills/code-review/SKILL.md +0 -44
  170. package/capabilities/oats-review/skills/security-review/SKILL.md +0 -59
  171. package/docs/conventions.md +0 -90
  172. package/docs/design/2026-09-07-architecture-reassessment.md +0 -131
  173. package/docs/design/2026-09-07-desktop-souls-capabilities.md +0 -50
  174. package/docs/design/2026-09-07-mobile-agent-management-proposal.md +0 -228
  175. package/docs/design/2026-09-08-expert-assisted-deployment-proposal.md +0 -558
  176. package/docs/design/2026-09-13-knowledge-and-memory-direction.md +0 -744
  177. package/docs/design/2026-09-13-knowledge-implementation.md +0 -127
  178. package/docs/design/2026-09-13-knowledge-location-contract.md +0 -340
  179. package/docs/design/2026-09-14-artifact-retention-contract.md +0 -190
  180. package/docs/design/2026-09-14-portable-souls-and-git-workspaces.md +0 -708
  181. package/docs/design/2026-09-14-portable-souls-contract-amendments.md +0 -85
  182. package/docs/design/2026-09-14-portable-souls-explainer.md +0 -750
  183. package/docs/design/2026-09-15-captured-dispatch.md +0 -127
  184. package/docs/design/2026-09-15-captured-resolution-records.md +0 -143
  185. package/docs/design/2026-09-15-package-preparation.md +0 -100
  186. package/docs/design/2026-09-15-portable-data-contract.md +0 -121
  187. package/docs/design/2026-09-15-portable-declarations.md +0 -189
  188. package/docs/design/2026-09-15-portable-souls-handoff.md +0 -150
  189. package/docs/design/2026-09-15-portable-souls-implementation.md +0 -417
  190. package/docs/design/2026-09-15-selection-lock-and-approval.md +0 -122
  191. package/docs/design/2026-09-15-source-observation.md +0 -119
  192. package/docs/design/2026-09-16-captured-admission.md +0 -77
  193. package/docs/design/2026-09-16-captured-helper-dispatch.md +0 -105
  194. package/docs/design/2026-09-16-captured-launch-inputs.md +0 -42
  195. package/docs/design/2026-09-16-command-profile-preparation.md +0 -86
  196. package/docs/design/2026-09-16-fresh-install-first-rollout.md +0 -47
  197. package/docs/design/2026-09-16-fresh-operator-walkthrough.md +0 -282
  198. package/docs/design/2026-09-16-messaging-capability-contract.md +0 -59
  199. package/docs/design/2026-09-16-portable-migration-evidence.md +0 -158
  200. package/docs/design/2026-09-16-portable-onboarding.md +0 -179
  201. package/docs/design/2026-09-16-prepare-request-transport.md +0 -26
  202. package/docs/design/2026-09-16-provider-binding-codecs.md +0 -98
  203. package/docs/design/2026-09-16-provider-binding-wire.md +0 -274
  204. package/docs/design/2026-09-17-capability-helper-input-contract.md +0 -95
  205. package/docs/design/2026-09-17-captured-backend-parity.md +0 -53
  206. package/docs/design/2026-09-17-captured-native-start.md +0 -58
  207. package/docs/design/2026-09-17-portable-boundary-hookup.md +0 -19
  208. package/docs/design/2026-09-17-portable-boundary-resources.md +0 -52
  209. package/docs/design/2026-09-17-public-captured-start.md +0 -108
  210. package/docs/design/2026-09-17-public-prepare-request.md +0 -90
  211. package/docs/design/2026-09-18-captured-pi-host.md +0 -205
  212. package/docs/design/2026-09-18-first-cut-release-checklist.md +0 -131
  213. package/docs/design/2026-09-18-herdr-protocol-compatibility.md +0 -60
  214. package/docs/design/2026-09-20-redesign-program-board.md +0 -142
  215. package/docs/design/2026-09-20-workspace-and-portable-adoption-plan.md +0 -289
  216. package/docs/design/2026-09-20-workspace-onboarding-public.md +0 -207
  217. package/docs/design/2026-09-22-desktop-parity-seams.md +0 -58
  218. package/docs/design/2026-09-23-simplified-workspace-model.md +0 -711
  219. package/docs/design/2026-09-23-workspace-v2-implementation-plan.md +0 -65
  220. package/docs/design/2026-09-24-desktop-phase-f-boundary.md +0 -242
  221. package/docs/design/2026-09-24-phase-d-plan.md +0 -305
  222. package/docs/design/2026-09-25-teams-contract.md +0 -258
  223. package/docs/design/2026-09-26-desktop-design-brief-architecture.md +0 -241
  224. package/docs/design/desktop-ux-plan.md +0 -362
  225. package/docs/design/launch-configurations.md +0 -168
  226. package/docs/design/okf-mirror-provenance.md +0 -105
  227. package/docs/design/operations-contract.md +0 -141
  228. package/docs/oats-member.schema.json +0 -38
  229. package/skills/integration-authoring/SKILL.md +0 -84
  230. package/skills/oats-support/SKILL.md +0 -79
  231. package/skills/skill-craft/SKILL.md +0 -109
  232. package/skills/soul-craft/SKILL.md +0 -116
@@ -1,19 +1,17 @@
1
1
  # OATS v0.25.3 — `OATS_SOUL_ID`
2
2
 
3
- Kernel/Pi **0.25.3**. Tag `v0.25.3` → the commit carrying these notes. No API change;
4
- `features[]` unchanged; one additive hook environment variable and one additive
5
- `instance.json` field.
3
+ Kernel/Pi **0.25.3**. No API change; `features[]` unchanged.
6
4
 
7
5
  ## Kernel
8
6
 
9
- - **`OATS_SOUL_ID`** — a soul's stable identity for capability hooks (`spawn`,
10
- `retire`, `launch`): `<repo key>#<soul name>` for a workspace soul, the realpath of
11
- `agents/<name>/soul` for a classic soul. Recorded as `instance.json.workspace.soul.id`.
12
- Fixes the consequence of 0.25.1's per-commit soul cache found by the first outsider
13
- rebuild: OKF 2.1.3 pins a soul's owner to `realpath(home/soul)`, which now changes with
14
- every member commit → the next spawn of the same soul was refused `E_OWNER`. The provider
15
- half (owners keyed by `OATS_SOUL_ID`, one-time migration of path pins) ships in OKF 2.1.4.
16
- - **`OATS_SOUL` is the content the home links** — for a workspace soul the per-commit
17
- directory, never the swappable `agents/<name>/soul` pointer (spawn and retire hooks agree).
7
+ - **`OATS_SOUL_ID`**: a soul's stable identity for capability hooks (`spawn`,
8
+ `retire`, `launch`): `<repo key>#<soul name>` for a workspace soul, the
9
+ realpath of `agents/<name>/soul` for a classic soul. Recorded as
10
+ `instance.json.workspace.soul.id`. OKF 2.1.3 pinned a soul's owner to
11
+ `realpath(home/soul)`, which 0.25.1's per-commit soul cache changes with
12
+ every member commit, so the next spawn was refused `E_OWNER`; OKF 2.1.4 keys
13
+ owners by `OATS_SOUL_ID`.
14
+ - **`OATS_SOUL` is the content the home links**: for a workspace soul, the
15
+ per-commit directory, never the swappable `agents/<name>/soul` pointer.
18
16
 
19
- Contract: `docs/design/2026-09-23-workspace-module-contracts.md` § "0.25.3 — OATS_SOUL_ID".
17
+ Contract: [workspace module contracts](../design/2026-09-23-workspace-module-contracts.md) §5.2.
@@ -1,21 +1,17 @@
1
1
  # OATS 0.25.4
2
2
 
3
- Patch release: one kernel fix found by an operator rehearsal on 0.25.3.
3
+ Patch release: one kernel fix.
4
4
 
5
5
  ## Fixed
6
6
 
7
7
  - **Quarantine retry never re-ran the owed retire hook on a workspace-mode
8
- home.** When a required spawn hook fails and its compensation is incomplete,
9
- the kernel retains the home with a cleanup descriptor
10
- (`.oats-rollback-incomplete.json`). Module materialization had already
11
- written a pre-hook `instance.json` stub (`{ modules, providers,
12
- resolutionRevision }`), and `oats retire` trusted that stub over the
13
- descriptor — so `meta.repo` was undefined, the retry reported *"retire hook
14
- <cap>: did not run on this retry"* and *"cleanup descriptor lost its context
15
- repo"* on every attempt, and only `--force` could remove the home (leaving
16
- the provider's external state to be cleaned by hand). The retry now reads
17
- the cleanup descriptor whenever the live record is not a complete spawn
18
- record; the owed hook runs, the home stays while it fails, and is removed
19
- once it succeeds. Regression test in `test/spawn-workspace.test.mjs`.
8
+ home.** When a required spawn hook fails and its compensation is
9
+ incomplete, the kernel keeps the home with a cleanup descriptor
10
+ (`.oats-rollback-incomplete.json`). `oats retire` trusted the pre-hook
11
+ `instance.json` stub over that descriptor, so every retry reported that the
12
+ retire hook did not run, and only `--force` could remove the home (leaving
13
+ the provider's external state to clean by hand). The retry now reads the
14
+ descriptor whenever the live record is not a complete spawn record: the owed
15
+ hook runs, and the home is removed once it succeeds.
20
16
 
21
17
  No contract changes. `oats version --json` is unchanged apart from the version.
@@ -22,8 +22,7 @@ the version.
22
22
 
23
23
  ## Catalog
24
24
 
25
- - **oats.okf → v2.1.4** (mirror in `capabilities/oats-okf` synced, published
26
- tag `2af47ad3`): sparse staging to `base.root` from a single-branch partial
25
+ - **oats.okf → v2.1.4** (mirror in `capabilities/oats-okf` synced): sparse staging to `base.root` from a single-branch partial
27
26
  clone with streamed object reads (large repositories and large files outside
28
27
  the knowledge base no longer matter), `git-timeout` binding key (600 s for
29
28
  remote operations), migration record hygiene + `oats okf migrate --forget`,
@@ -36,7 +35,6 @@ the version.
36
35
  identity), host-only `residents` map, and the messaging-layer meta key
37
36
  `identity` on every spawn. Known limitation: sending mail/chat through a
38
37
  grant is rejected by the aweb server as of aw 1.36.1 (client bug; receive,
39
- wake and whoami work). Guide truths in `docs/workspaces.md` and
40
- `docs/rebuild-to-v2.md` updated from "1.11.2 ignores `team`" to what 1.12.0
41
- does.
38
+ wake and whoami work). [workspaces.md](../workspaces.md) and the [rebuild guide](https://github.com/awebai/oats/blob/bdd7e55e1b798a97b8b5486001d7c17e522792a7/docs/rebuild-to-v2.md) describe what
39
+ 1.12.0 does with `team`.
42
40
 
@@ -1,37 +1,28 @@
1
1
  # OATS 0.25.6
2
2
 
3
- Decision 27 — per-spawn identity choice (local | global) — lands its kernel half.
4
- No new CLI flags; three provider-neutral additions and one manifest attribute.
3
+ The kernel half of the per-spawn identity choice (local | global). No new CLI
4
+ flags; three provider-neutral additions and one manifest attribute.
5
5
 
6
6
  ## Added
7
7
 
8
- - **`decision.effective.providers`** — the spawn decision now binds the merged
9
- per-module payloads the providers will receive (exactly the preview's
8
+ - **`decision.effective.providers`**: the spawn decision binds the merged
9
+ per-module payloads the providers will receive (the preview's
10
10
  `settings.<cap>`), so a confirmed apply covers every provider fact by value.
11
- - **`hostOnly` settings keys** — a capability manifest may mark a settings key
12
- `hostOnly: true`; the resolver accepts it only from the deployment's
13
- `oats-local.yaml settings.<cap>` and refuses it in the workspace file, `byTeam`
14
- payloads, a soul's slot payload and `--provider` flags (`E_WORKSPACE_SCHEMA`,
15
- reason `host-only-key`). Closes the documented hole where a committed file
16
- could point a messaging provider at a custody root.
17
- - **Served identity on the roster** — `oats status --json instances[].identity`,
18
- the text roster's `identity:` line and `oats inspect --home … selected.identity`
19
- carry the principal an instance acts as, copied from its messaging provider's
20
- hook meta (`{ mode, alias, team, address, resident, grant?, provider }`).
21
- - `oats version --json` `features[]` gains `served-identity`.
11
+ - **`hostOnly` settings keys**: a manifest may mark a settings key `hostOnly:
12
+ true`, accepted only from the deployment's `oats-local.yaml`
13
+ `settings.<cap>` and refused elsewhere (`E_WORKSPACE_SCHEMA`, reason
14
+ `host-only-key`), so a committed file cannot point a messaging provider at a
15
+ custody root.
16
+ - **Served identity on the roster**: `oats status --json`
17
+ `instances[].identity`, the roster's `identity:` line and `oats inspect
18
+ --home … selected.identity` carry the principal an instance acts as, from its
19
+ messaging provider's hook meta. Feature `served-identity`. Any messaging
20
+ provider that emits `identity` in its spawn or launch meta appears there.
22
21
 
23
- ## Desktop (10B-0)
22
+ ## Desktop
24
23
 
25
- - **Terminal owner leases** (PR #117) — the Desktop's terminal wire is now
26
- `terminalApi: 2`: every terminal is a lease (256-bit token) held by the
27
- admitted renderer *document*; a navigation, reload or renderer crash revokes
28
- the document and cleans its viewers; the 20-terminal cap is reserved
29
- synchronously so parallel opens cannot overshoot; writes are bounded and
30
- one-way. Maintainer's native gate (real Electron, tmux, PTY) passed 23/23:
31
- open/ready/write/close, quota, reload revocation, source isolation, no
32
- residue after quit. See `packages/desktop/docs/terminal-owner-leases.md`.
33
-
34
- ## For providers
35
-
36
- oats.aweb 1.13.0 (next) can declare `residents` `hostOnly`. Any messaging provider
37
- that emits `identity` in its spawn/launch meta appears on the roster.
24
+ - **Terminal owner leases** (#117, `terminalApi: 2`): every terminal is a
25
+ lease held by the admitted renderer document; a navigation, reload or
26
+ renderer crash revokes it and cleans its viewers; the 20-terminal cap cannot
27
+ be overshot by parallel opens; writes are bounded and one-way. See
28
+ [terminal owner leases](../../packages/desktop/docs/terminal-owner-leases.md).
@@ -2,10 +2,8 @@
2
2
 
3
3
  ## Fixed
4
4
 
5
- - **A v2 deployment is a configuration boundary.** The ancestor walk that
6
- composes legacy `oats-config.yaml` levels now stops at the directory holding
7
- `oats-local.yaml`. A deployment created inside another scope (a scratch
8
- deployment under an operator's workspace, a fixture under a repository) no
9
- longer inherits the outer scope's files, and `oats inspect` no longer names
10
- the outer checkout as its `scope.workspace` or lists the outer files in
11
- `scope.chain`. Found by the Desktop engineer's Phase F study.
5
+ - **A v2 deployment is a configuration boundary.** The ancestor walk over
6
+ legacy `oats-config.yaml` levels stops at the directory holding
7
+ `oats-local.yaml`, so a deployment inside another scope no longer inherits
8
+ the outer scope's files, and `oats inspect` no longer reports the outer
9
+ checkout as its `scope.workspace` or lists its files in `scope.chain`.
@@ -2,47 +2,34 @@
2
2
 
3
3
  ## Fixed
4
4
 
5
- - **Desktop: quotes are escaped in attribute contexts** (#139). The views share
6
- one escaper (`escapeHtml`) for element content and attribute values.
7
-
5
+ - **Desktop: quotes are escaped in attribute contexts** (#139).
8
6
  - **The roster reports an instance where it actually is.** `oats status`
9
7
  reports each instance at the directory the kernel enumerated
10
- (`<soul dir>/instances/<name>`), under that directory's name. An
11
- `instance.json` whose `home` or `instance` disagrees no longer relocates or
12
- renames the instance; the disagreeing values appear only as the diagnostics
13
- `recordedHome` / `recordedInstance`. Before this, a hostile or corrupted
14
- `instance.json` could make every consumer that acts on `home` (retire,
15
- `inspect --home`, the Desktop's file roots) target a path outside the
16
- deployment. Found by the Desktop engineer in Phase F slice F1.
8
+ (`<soul dir>/instances/<name>`), under that name. An `instance.json` whose
9
+ `home` or `instance` disagrees no longer relocates or renames it; the values
10
+ appear only as `recordedHome` / `recordedInstance`. A hostile or corrupted
11
+ `instance.json` could otherwise make retire, `inspect --home` or the Desktop
12
+ target a path outside the deployment.
17
13
 
18
14
  ## Added
19
15
 
20
- - **Team facts for workspace-model hooks** (human decisions 2026-09-24:
21
- `oats.aweb` is the messaging default; teams are seamless). A workspace
22
- deployment has no classic `team:` block, so lifecycle hooks of a workspace
23
- spawn now receive: `OATS_TEAM_SCOPE` = the deployment directory;
24
- `OATS_TEAM_ID` = the messaging slot's merged payload `team` (workspace base ⊕
25
- `byTeam[<soul team>]` ⊕ soul ⊕ host ⊕ spawn), **empty when no shared team is
26
- mapped — meaning "personal"**; and new `OATS_TEAM_LABEL` (the soul's team
27
- label), `OATS_WORKSPACE_NAME` and `OATS_WORKSPACE_KEY` (canonical repository
28
- key), so a messaging provider can derive a personal team per person per
29
- workspace deterministically. Classic deployments are unchanged.
30
- - **Desktop F2: Capabilities, Sources, sync and approval, onboarding** (#143).
31
- The Workspace view gains a Capabilities table (Capability | Status | Used
32
- by, from `oats capabilities --json`, filtered by team and source) and a
33
- Sources tab. It can run `oats sync` and approve pending packages: the Desktop
34
- admits an approval only when its (id, version, executables digest) exactly
35
- match the latest sync report it holds, and refuses a mismatch with
36
- `E_APPROVAL_STALE`. A picked folder that isn't yet a workspace can be
37
- onboarded through single-use offers held by the main process. The 0.24
38
- Deployment inventory and Workspace readiness blocks are removed.
39
- - **Desktop: design parity with Redesign v3 and brand artwork** (#137, #128).
40
- The Desktop F1 deployment model on kernel JSON (#126) is included too.
41
- - **`oats.aweb` is the workspace messaging default** (#140, human decision).
42
- The onboarding skill makes messaging setup its own step before the first
43
- spawn (#141).
44
- - **The onboarding next-step hint names `oats-operator-expert`** (#134).
45
- - **Phase D:**
46
- - The OATS repository hosts a workspace-model workspace (D2, #127).
47
- - `oats-operator-expert` and `integrations-expert` souls, with the experts' instructions on the workspace model (D3, #129).
48
- - `oats.core` and `oats.setup` rewritten for the workspace model (D4, #133).
16
+ - **Team facts for workspace-model hooks.** Lifecycle hooks of a workspace
17
+ spawn receive `OATS_TEAM_SCOPE` (the deployment directory), `OATS_TEAM_ID`
18
+ (the messaging slot's merged payload `team`, empty when no shared team is
19
+ mapped, meaning "personal"), and new `OATS_TEAM_LABEL`,
20
+ `OATS_WORKSPACE_NAME` and `OATS_WORKSPACE_KEY`. Classic deployments are
21
+ unchanged.
22
+ - **Desktop: Capabilities, Sources, sync and approval, onboarding** (#143).
23
+ The Workspace view gains a Capabilities table and a Sources tab, runs `oats
24
+ sync` and approves pending packages only when (id, version, executables
25
+ digest) match the latest sync report (`E_APPROVAL_STALE` otherwise), and
26
+ onboards a picked folder. The 0.24 Deployment inventory and Workspace
27
+ readiness blocks are removed.
28
+ - **Desktop: design parity with Redesign v3, brand artwork, and the
29
+ deployment model on kernel JSON** (#137, #128, #126).
30
+ - **`oats.aweb` is the workspace messaging default** (#140); the onboarding
31
+ skill makes messaging setup its own step before the first spawn (#141), and
32
+ its next-step hint names `oats-operator-expert` (#134).
33
+ - **The OATS repository hosts a workspace-model workspace** (#127), with the
34
+ `oats-operator-expert` and `integrations-expert` souls (#129), and `oats.core`
35
+ and `oats.setup` rewritten for the workspace model (#133).