@awebai/oats 0.29.4 → 0.30.1

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 (263) hide show
  1. package/README.md +12 -6
  2. package/bin/oats.mjs +194 -50
  3. package/docs/capabilities.md +160 -171
  4. package/docs/capability-manifest.schema.json +6 -11
  5. package/docs/configuration.md +213 -64
  6. package/docs/design/2026-09-16-knowledge-capability-contract.md +36 -50
  7. package/docs/design/2026-09-23-workspace-module-contracts.md +377 -544
  8. package/docs/design/2026-09-26-okf-knowledge-operations.md +132 -357
  9. package/docs/design/2026-09-27-team-model-v2.md +97 -117
  10. package/docs/design/2026-09-28-automations-trust.md +38 -0
  11. package/docs/design/2026-09-28-soul-launch-preference.md +63 -0
  12. package/docs/design/HISTORY.md +65 -0
  13. package/docs/design/README.md +23 -54
  14. package/docs/desktop-cli-api.md +1787 -1777
  15. package/docs/desktop.md +30 -91
  16. package/docs/execution-targets.md +146 -292
  17. package/docs/first-team.md +31 -17
  18. package/docs/implementation.md +77 -288
  19. package/docs/integrations.md +118 -320
  20. package/docs/knowledge-capability-authoring.md +25 -52
  21. package/docs/knowledge-reference/acceptance.md +3 -3
  22. package/docs/knowledge-reference/adoption.md +1 -1
  23. package/docs/knowledge-reference/harvester.md +2 -2
  24. package/docs/knowledge-reference/package-craft.md +3 -3
  25. package/docs/knowledge-reference/provider-mapping.md +3 -6
  26. package/docs/knowledge-reference/reader-capture.md +3 -3
  27. package/docs/knowledge-theory.md +62 -166
  28. package/docs/knowledge.md +225 -404
  29. package/docs/layers.md +42 -97
  30. package/docs/oats-local.schema.json +58 -5
  31. package/docs/oats-membership.schema.json +1 -8
  32. package/docs/oats-package.schema.json +5 -5
  33. package/docs/oats-workspace.schema.json +8 -22
  34. package/docs/official-catalog.md +25 -28
  35. package/docs/packages.md +45 -63
  36. package/docs/plans/0.30-close-out.md +83 -0
  37. package/docs/release-lane.md +82 -0
  38. package/docs/release-notes/oats-framework-v1.1.3.md +10 -8
  39. package/docs/release-notes/v0.19.0.md +48 -147
  40. package/docs/release-notes/v0.19.1.md +2 -3
  41. package/docs/release-notes/v0.19.3.md +2 -15
  42. package/docs/release-notes/v0.20.0.md +0 -15
  43. package/docs/release-notes/v0.22.0.md +71 -138
  44. package/docs/release-notes/v0.22.1.md +42 -90
  45. package/docs/release-notes/v0.22.10.md +1 -1
  46. package/docs/release-notes/v0.22.11.md +1 -47
  47. package/docs/release-notes/v0.22.12.md +4 -13
  48. package/docs/release-notes/v0.22.13.md +1 -42
  49. package/docs/release-notes/v0.22.14.md +3 -11
  50. package/docs/release-notes/v0.22.15.md +1 -46
  51. package/docs/release-notes/v0.22.16.md +6 -8
  52. package/docs/release-notes/v0.22.18.md +1 -99
  53. package/docs/release-notes/v0.22.19.md +3 -14
  54. package/docs/release-notes/v0.22.2.md +6 -15
  55. package/docs/release-notes/v0.22.3.md +0 -1
  56. package/docs/release-notes/v0.22.4.md +1 -14
  57. package/docs/release-notes/v0.22.5.md +2 -12
  58. package/docs/release-notes/v0.22.6.md +0 -3
  59. package/docs/release-notes/v0.23.0.md +9 -25
  60. package/docs/release-notes/v0.23.1.md +9 -25
  61. package/docs/release-notes/v0.23.2.md +2 -4
  62. package/docs/release-notes/v0.24.0.md +56 -97
  63. package/docs/release-notes/v0.24.1.md +7 -11
  64. package/docs/release-notes/v0.24.10.md +34 -45
  65. package/docs/release-notes/v0.24.11.md +12 -20
  66. package/docs/release-notes/v0.24.12.md +35 -48
  67. package/docs/release-notes/v0.24.13.md +34 -41
  68. package/docs/release-notes/v0.24.2.md +9 -13
  69. package/docs/release-notes/v0.24.3.md +7 -11
  70. package/docs/release-notes/v0.24.4.md +6 -6
  71. package/docs/release-notes/v0.24.5.md +6 -10
  72. package/docs/release-notes/v0.24.6.md +2 -5
  73. package/docs/release-notes/v0.24.7.md +46 -75
  74. package/docs/release-notes/v0.24.8.md +58 -96
  75. package/docs/release-notes/v0.24.9.md +38 -54
  76. package/docs/release-notes/v0.25.0.md +59 -76
  77. package/docs/release-notes/v0.25.1.md +57 -81
  78. package/docs/release-notes/v0.25.2.md +51 -70
  79. package/docs/release-notes/v0.25.3.md +11 -13
  80. package/docs/release-notes/v0.25.4.md +9 -13
  81. package/docs/release-notes/v0.25.5.md +3 -5
  82. package/docs/release-notes/v0.25.6.md +20 -29
  83. package/docs/release-notes/v0.25.7.md +5 -7
  84. package/docs/release-notes/v0.25.8.md +26 -39
  85. package/docs/release-notes/v0.26.0.md +175 -646
  86. package/docs/release-notes/v0.27.0.md +4 -5
  87. package/docs/release-notes/v0.27.1.md +4 -6
  88. package/docs/release-notes/v0.27.2.md +1 -1
  89. package/docs/release-notes/v0.28.0.md +57 -124
  90. package/docs/release-notes/v0.29.0.md +89 -208
  91. package/docs/release-notes/v0.29.1.md +1 -1
  92. package/docs/release-notes/v0.29.2.md +3 -4
  93. package/docs/release-notes/v0.30.0.md +205 -0
  94. package/docs/release-notes/v0.30.1.md +123 -0
  95. package/docs/schedules.md +280 -363
  96. package/docs/servers.md +99 -117
  97. package/docs/soul.schema.json +2 -9
  98. package/docs/souls-and-instances.md +145 -158
  99. package/docs/workspaces.md +137 -215
  100. package/lib/automations.mjs +21 -6
  101. package/lib/core.mjs +226 -74
  102. package/lib/instance-events.mjs +1 -1
  103. package/lib/instance-inspect.mjs +109 -34
  104. package/lib/instance-lifecycle.mjs +14 -1
  105. package/lib/instance-resolution.mjs +26 -27
  106. package/lib/launch-preference.mjs +87 -0
  107. package/lib/materialize.mjs +3 -3
  108. package/lib/packages.mjs +1 -1
  109. package/lib/resolve.mjs +30 -88
  110. package/lib/schedule.mjs +1 -1
  111. package/lib/teams-verbs.mjs +195 -0
  112. package/lib/teams.mjs +190 -0
  113. package/lib/triggers.mjs +2 -2
  114. package/lib/workspace.mjs +54 -147
  115. package/package-catalog.json +10 -16
  116. package/package.json +1 -3
  117. package/skills/oats-getting-started/SKILL.md +25 -13
  118. package/capabilities/oats-authoring/LICENSE +0 -21
  119. package/capabilities/oats-authoring/oats-package.json +0 -11
  120. package/capabilities/oats-authoring/oats.json +0 -12
  121. package/capabilities/oats-authoring/skills/integration-authoring/SKILL.md +0 -84
  122. package/capabilities/oats-authoring/skills/skill-craft/SKILL.md +0 -109
  123. package/capabilities/oats-authoring/skills/soul-craft/SKILL.md +0 -116
  124. package/capabilities/oats-aweb/bin/oats-aweb-binding.mjs +0 -11
  125. package/capabilities/oats-aweb/bin/oats-aweb.mjs +0 -1338
  126. package/capabilities/oats-aweb/injects/aweb.md +0 -47
  127. package/capabilities/oats-aweb/lib/binding-wire.mjs +0 -356
  128. package/capabilities/oats-aweb/lib/captured-execution.mjs +0 -91
  129. package/capabilities/oats-aweb/lib/captured-native.mjs +0 -91
  130. package/capabilities/oats-aweb/lib/grant-custody.mjs +0 -38
  131. package/capabilities/oats-aweb/lib/invocation-shape.mjs +0 -135
  132. package/capabilities/oats-aweb/lib/portable-binding.mjs +0 -146
  133. package/capabilities/oats-aweb/lib/session-readiness.mjs +0 -56
  134. package/capabilities/oats-aweb/lib/wake-receive.mjs +0 -56
  135. package/capabilities/oats-aweb/oats.json +0 -208
  136. package/capabilities/oats-aweb/skills/LICENSE +0 -21
  137. package/capabilities/oats-aweb/skills/VENDORED.md +0 -31
  138. package/capabilities/oats-aweb/skills/aweb-identity/SKILL.md +0 -201
  139. package/capabilities/oats-aweb/skills/aweb-messaging/SKILL.md +0 -161
  140. package/capabilities/oats-aweb/skills/aweb-messaging/references/messaging-scenarios.md +0 -61
  141. package/capabilities/oats-aweb/skills/aweb-team-membership/SKILL.md +0 -116
  142. package/capabilities/oats-aweb/skills/aweb-team-membership/references/team-membership-reference.md +0 -74
  143. package/capabilities/oats-aweb/skills/oats-aweb/SKILL.md +0 -216
  144. package/capabilities/oats-jira/bin/oats-jira.mjs +0 -40
  145. package/capabilities/oats-jira/injects/jira.md +0 -10
  146. package/capabilities/oats-jira/oats.json +0 -22
  147. package/capabilities/oats-jira/skills/jira-tasks/SKILL.md +0 -179
  148. package/capabilities/oats-linear/bin/oats-linear-hook.mjs +0 -34
  149. package/capabilities/oats-linear/bin/oats-linear.mjs +0 -344
  150. package/capabilities/oats-linear/injects/linear.md +0 -8
  151. package/capabilities/oats-linear/oats.json +0 -24
  152. package/capabilities/oats-linear/skills/linear-tasks/SKILL.md +0 -223
  153. package/capabilities/oats-okf/bin/oats-okf-binding.mjs +0 -14
  154. package/capabilities/oats-okf/bin/oats-okf.mjs +0 -209
  155. package/capabilities/oats-okf/injects/okf.md +0 -42
  156. package/capabilities/oats-okf/lib/binding-wire.mjs +0 -348
  157. package/capabilities/oats-okf/lib/captured-worker.mjs +0 -109
  158. package/capabilities/oats-okf/lib/config.mjs +0 -124
  159. package/capabilities/oats-okf/lib/consult.mjs +0 -518
  160. package/capabilities/oats-okf/lib/harvest-status.mjs +0 -88
  161. package/capabilities/oats-okf/lib/harvest-switch.mjs +0 -94
  162. package/capabilities/oats-okf/lib/inspection.mjs +0 -119
  163. package/capabilities/oats-okf/lib/invocation-context.mjs +0 -111
  164. package/capabilities/oats-okf/lib/invocation-shape.mjs +0 -135
  165. package/capabilities/oats-okf/lib/io.mjs +0 -118
  166. package/capabilities/oats-okf/lib/migration.mjs +0 -137
  167. package/capabilities/oats-okf/lib/okf-validate.mjs +0 -123
  168. package/capabilities/oats-okf/lib/portable-binding.mjs +0 -199
  169. package/capabilities/oats-okf/lib/source-contract.mjs +0 -46
  170. package/capabilities/oats-okf/lib/sources.mjs +0 -424
  171. package/capabilities/oats-okf/lib/stores.mjs +0 -473
  172. package/capabilities/oats-okf/lib/worker.mjs +0 -497
  173. package/capabilities/oats-okf/oats.json +0 -148
  174. package/capabilities/oats-okf/schemas/okf-base.schema.json +0 -46
  175. package/capabilities/oats-okf/schemas/okf-bindings.schema.json +0 -112
  176. package/capabilities/oats-okf/schemas/okf-portable-declaration.schema.json +0 -87
  177. package/capabilities/oats-okf/schemas/okf-portable-payload.schema.json +0 -113
  178. package/capabilities/oats-okf/schemas/okf-soul.schema.json +0 -37
  179. package/capabilities/oats-okf/skills/okf-consultation/SKILL.md +0 -144
  180. package/capabilities/oats-okf/skills/okf-consultation/references/consult.md +0 -86
  181. package/capabilities/oats-okf/skills/okf-instance-knowledge/SKILL.md +0 -104
  182. package/capabilities/oats-okf-harvest/bin/okf-harvest.mjs +0 -140
  183. package/capabilities/oats-okf-harvest/injects/harvester.md +0 -12
  184. package/capabilities/oats-okf-harvest/oats.json +0 -26
  185. package/capabilities/oats-okf-harvest/skills/knowledge-harvest/SKILL.md +0 -168
  186. package/capabilities/oats-okf-harvest/skills/knowledge-theory/SKILL.md +0 -192
  187. package/capabilities/oats-okf-harvest/skills/okf-authoring/SKILL.md +0 -151
  188. package/capabilities/oats-okf-harvest/skills/okf-authoring/scripts/okf-validate.mjs +0 -123
  189. package/capabilities/oats-okf-maintenance/bin/okf-maintenance.mjs +0 -170
  190. package/capabilities/oats-okf-maintenance/injects/maintainer.md +0 -12
  191. package/capabilities/oats-okf-maintenance/lib/provenance.mjs +0 -50
  192. package/capabilities/oats-okf-maintenance/oats.json +0 -21
  193. package/capabilities/oats-okf-maintenance/skills/knowledge-review/SKILL.md +0 -159
  194. package/capabilities/oats-okf-maintenance/skills/knowledge-theory/SKILL.md +0 -192
  195. package/capabilities/oats-okf-maintenance/skills/okf-authoring/SKILL.md +0 -151
  196. package/capabilities/oats-okf-maintenance/skills/okf-authoring/scripts/okf-validate.mjs +0 -123
  197. package/capabilities/oats-okf-maintenance/skills/okf-trigger-setup/SKILL.md +0 -146
  198. package/capabilities/oats-review/injects/review.md +0 -69
  199. package/capabilities/oats-review/oats.json +0 -10
  200. package/capabilities/oats-review/skills/code-review/SKILL.md +0 -44
  201. package/capabilities/oats-review/skills/security-review/SKILL.md +0 -59
  202. package/docs/conventions.md +0 -90
  203. package/docs/design/2026-09-07-architecture-reassessment.md +0 -131
  204. package/docs/design/2026-09-07-desktop-souls-capabilities.md +0 -50
  205. package/docs/design/2026-09-07-mobile-agent-management-proposal.md +0 -228
  206. package/docs/design/2026-09-08-expert-assisted-deployment-proposal.md +0 -558
  207. package/docs/design/2026-09-13-knowledge-and-memory-direction.md +0 -744
  208. package/docs/design/2026-09-13-knowledge-implementation.md +0 -127
  209. package/docs/design/2026-09-13-knowledge-location-contract.md +0 -340
  210. package/docs/design/2026-09-14-artifact-retention-contract.md +0 -190
  211. package/docs/design/2026-09-14-portable-souls-and-git-workspaces.md +0 -708
  212. package/docs/design/2026-09-14-portable-souls-contract-amendments.md +0 -85
  213. package/docs/design/2026-09-14-portable-souls-explainer.md +0 -750
  214. package/docs/design/2026-09-15-captured-dispatch.md +0 -127
  215. package/docs/design/2026-09-15-captured-resolution-records.md +0 -143
  216. package/docs/design/2026-09-15-package-preparation.md +0 -100
  217. package/docs/design/2026-09-15-portable-data-contract.md +0 -121
  218. package/docs/design/2026-09-15-portable-declarations.md +0 -189
  219. package/docs/design/2026-09-15-portable-souls-handoff.md +0 -150
  220. package/docs/design/2026-09-15-portable-souls-implementation.md +0 -417
  221. package/docs/design/2026-09-15-selection-lock-and-approval.md +0 -122
  222. package/docs/design/2026-09-15-source-observation.md +0 -119
  223. package/docs/design/2026-09-16-captured-admission.md +0 -77
  224. package/docs/design/2026-09-16-captured-helper-dispatch.md +0 -105
  225. package/docs/design/2026-09-16-captured-launch-inputs.md +0 -42
  226. package/docs/design/2026-09-16-command-profile-preparation.md +0 -86
  227. package/docs/design/2026-09-16-fresh-install-first-rollout.md +0 -47
  228. package/docs/design/2026-09-16-fresh-operator-walkthrough.md +0 -282
  229. package/docs/design/2026-09-16-messaging-capability-contract.md +0 -59
  230. package/docs/design/2026-09-16-portable-migration-evidence.md +0 -158
  231. package/docs/design/2026-09-16-portable-onboarding.md +0 -179
  232. package/docs/design/2026-09-16-prepare-request-transport.md +0 -26
  233. package/docs/design/2026-09-16-provider-binding-codecs.md +0 -98
  234. package/docs/design/2026-09-16-provider-binding-wire.md +0 -274
  235. package/docs/design/2026-09-17-capability-helper-input-contract.md +0 -95
  236. package/docs/design/2026-09-17-captured-backend-parity.md +0 -53
  237. package/docs/design/2026-09-17-captured-native-start.md +0 -58
  238. package/docs/design/2026-09-17-portable-boundary-hookup.md +0 -19
  239. package/docs/design/2026-09-17-portable-boundary-resources.md +0 -52
  240. package/docs/design/2026-09-17-public-captured-start.md +0 -108
  241. package/docs/design/2026-09-17-public-prepare-request.md +0 -90
  242. package/docs/design/2026-09-18-captured-pi-host.md +0 -205
  243. package/docs/design/2026-09-18-first-cut-release-checklist.md +0 -131
  244. package/docs/design/2026-09-18-herdr-protocol-compatibility.md +0 -60
  245. package/docs/design/2026-09-20-redesign-program-board.md +0 -142
  246. package/docs/design/2026-09-20-workspace-and-portable-adoption-plan.md +0 -289
  247. package/docs/design/2026-09-20-workspace-onboarding-public.md +0 -207
  248. package/docs/design/2026-09-22-desktop-parity-seams.md +0 -58
  249. package/docs/design/2026-09-23-simplified-workspace-model.md +0 -711
  250. package/docs/design/2026-09-23-workspace-v2-implementation-plan.md +0 -65
  251. package/docs/design/2026-09-24-desktop-phase-f-boundary.md +0 -242
  252. package/docs/design/2026-09-24-phase-d-plan.md +0 -305
  253. package/docs/design/2026-09-25-teams-contract.md +0 -258
  254. package/docs/design/2026-09-26-desktop-design-brief-architecture.md +0 -241
  255. package/docs/design/desktop-ux-plan.md +0 -362
  256. package/docs/design/launch-configurations.md +0 -168
  257. package/docs/design/okf-mirror-provenance.md +0 -105
  258. package/docs/design/operations-contract.md +0 -141
  259. package/docs/oats-member.schema.json +0 -38
  260. package/skills/integration-authoring/SKILL.md +0 -84
  261. package/skills/oats-support/SKILL.md +0 -79
  262. package/skills/skill-craft/SKILL.md +0 -109
  263. 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).