@awebai/oats 0.29.4 → 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.
- package/README.md +12 -6
- package/bin/oats.mjs +194 -50
- package/capabilities/oats-aweb/bin/oats-aweb.mjs +538 -204
- package/capabilities/oats-aweb/injects/aweb.md +1 -1
- package/capabilities/oats-aweb/lib/binding-wire.mjs +31 -22
- package/capabilities/oats-aweb/oats.json +5 -12
- package/capabilities/oats-aweb/skills/VENDORED.md +4 -4
- package/capabilities/oats-aweb/skills/aweb-team-membership/SKILL.md +1 -1
- package/capabilities/oats-aweb/skills/oats-aweb/SKILL.md +83 -13
- package/capabilities/oats-code-review/injects/reviewer.md +26 -0
- package/capabilities/oats-code-review/oats.json +16 -0
- package/capabilities/oats-code-review/skills/adversarial-review/SKILL.md +66 -0
- package/capabilities/oats-code-review/skills/review-dev-docs/SKILL.md +30 -0
- package/capabilities/oats-code-review/skills/security-review/SKILL.md +56 -0
- package/capabilities/oats-code-review/skills/simplification-review/SKILL.md +34 -0
- package/capabilities/oats-developer/injects/developer.md +38 -0
- package/capabilities/oats-developer/oats.json +17 -0
- package/capabilities/oats-developer/skills/execution-strategy/SKILL.md +43 -0
- package/capabilities/oats-developer/skills/maintain-dev-docs/SKILL.md +47 -0
- package/capabilities/oats-developer/skills/run-the-review-loop/SKILL.md +65 -0
- package/capabilities/oats-developer/skills/understand-the-spec/SKILL.md +37 -0
- package/capabilities/oats-developer/skills/worktrees/SKILL.md +36 -0
- package/capabilities/oats-engineering-expert/injects/expert.md +37 -0
- package/capabilities/oats-engineering-expert/oats.json +17 -0
- package/capabilities/oats-engineering-expert/skills/coordinate-developers/SKILL.md +37 -0
- package/capabilities/oats-engineering-expert/skills/coordinate-experts/SKILL.md +52 -0
- package/capabilities/oats-engineering-expert/skills/land-your-prs/SKILL.md +50 -0
- package/capabilities/oats-engineering-expert/skills/plan-and-spec/SKILL.md +53 -0
- package/capabilities/oats-engineering-expert/skills/verify-developer-work/SKILL.md +49 -0
- package/capabilities/oats-okf/bin/oats-okf.mjs +8 -4
- package/capabilities/oats-okf/lib/binding-wire.mjs +47 -15
- package/capabilities/oats-okf/lib/inspection.mjs +26 -7
- package/capabilities/oats-okf/lib/sources.mjs +16 -2
- package/capabilities/oats-okf/lib/worker.mjs +5 -16
- package/capabilities/oats-okf/oats.json +6 -3
- package/capabilities/oats-okf-harvest/bin/okf-harvest.mjs +2 -2
- package/capabilities/oats-okf-harvest/oats.json +3 -3
- package/capabilities/oats-okf-harvest/skills/knowledge-harvest/SKILL.md +6 -6
- package/capabilities/oats-okf-maintenance/bin/okf-maintenance.mjs +2 -2
- package/capabilities/oats-okf-maintenance/injects/maintainer.md +1 -1
- package/capabilities/oats-okf-maintenance/oats.json +2 -2
- package/capabilities/oats-okf-maintenance/skills/knowledge-review/SKILL.md +1 -1
- package/capabilities/oats-okf-maintenance/skills/okf-trigger-setup/SKILL.md +11 -23
- package/capabilities/oats-workspace-experts/injects/oats-experts.md +26 -0
- package/capabilities/oats-workspace-experts/oats.json +9 -0
- package/docs/capabilities.md +160 -171
- package/docs/capability-manifest.schema.json +6 -11
- package/docs/configuration.md +213 -64
- package/docs/design/2026-09-16-knowledge-capability-contract.md +36 -50
- package/docs/design/2026-09-23-workspace-module-contracts.md +377 -544
- package/docs/design/2026-09-26-okf-knowledge-operations.md +132 -357
- package/docs/design/2026-09-27-team-model-v2.md +97 -117
- package/docs/design/2026-09-28-automations-trust.md +38 -0
- package/docs/design/2026-09-28-soul-launch-preference.md +63 -0
- package/docs/design/HISTORY.md +65 -0
- package/docs/design/README.md +23 -54
- package/docs/desktop-cli-api.md +1787 -1777
- package/docs/desktop.md +30 -91
- package/docs/execution-targets.md +146 -292
- package/docs/first-team.md +31 -17
- package/docs/implementation.md +76 -288
- package/docs/integrations.md +118 -320
- package/docs/knowledge-capability-authoring.md +25 -52
- package/docs/knowledge-reference/acceptance.md +3 -3
- package/docs/knowledge-reference/adoption.md +1 -1
- package/docs/knowledge-reference/harvester.md +2 -2
- package/docs/knowledge-reference/package-craft.md +3 -3
- package/docs/knowledge-reference/provider-mapping.md +3 -6
- package/docs/knowledge-reference/reader-capture.md +3 -3
- package/docs/knowledge-theory.md +62 -166
- package/docs/knowledge.md +225 -404
- package/docs/layers.md +42 -97
- package/docs/oats-local.schema.json +58 -5
- package/docs/oats-membership.schema.json +1 -8
- package/docs/oats-package.schema.json +5 -5
- package/docs/oats-workspace.schema.json +8 -22
- package/docs/official-catalog.md +25 -28
- package/docs/packages.md +45 -63
- package/docs/plans/0.30-close-out.md +61 -0
- package/docs/release-lane.md +77 -0
- package/docs/release-notes/oats-framework-v1.1.3.md +10 -8
- package/docs/release-notes/v0.19.0.md +48 -147
- package/docs/release-notes/v0.19.1.md +2 -3
- package/docs/release-notes/v0.19.3.md +2 -15
- package/docs/release-notes/v0.20.0.md +0 -15
- package/docs/release-notes/v0.22.0.md +71 -138
- package/docs/release-notes/v0.22.1.md +42 -90
- package/docs/release-notes/v0.22.10.md +1 -1
- package/docs/release-notes/v0.22.11.md +1 -47
- package/docs/release-notes/v0.22.12.md +4 -13
- package/docs/release-notes/v0.22.13.md +1 -42
- package/docs/release-notes/v0.22.14.md +3 -11
- package/docs/release-notes/v0.22.15.md +1 -46
- package/docs/release-notes/v0.22.16.md +6 -8
- package/docs/release-notes/v0.22.18.md +1 -99
- package/docs/release-notes/v0.22.19.md +3 -14
- package/docs/release-notes/v0.22.2.md +6 -15
- package/docs/release-notes/v0.22.3.md +0 -1
- package/docs/release-notes/v0.22.4.md +1 -14
- package/docs/release-notes/v0.22.5.md +2 -12
- package/docs/release-notes/v0.22.6.md +0 -3
- package/docs/release-notes/v0.23.0.md +9 -25
- package/docs/release-notes/v0.23.1.md +9 -25
- package/docs/release-notes/v0.23.2.md +2 -4
- package/docs/release-notes/v0.24.0.md +56 -97
- package/docs/release-notes/v0.24.1.md +7 -11
- package/docs/release-notes/v0.24.10.md +34 -45
- package/docs/release-notes/v0.24.11.md +12 -20
- package/docs/release-notes/v0.24.12.md +35 -48
- package/docs/release-notes/v0.24.13.md +34 -41
- package/docs/release-notes/v0.24.2.md +9 -13
- package/docs/release-notes/v0.24.3.md +7 -11
- package/docs/release-notes/v0.24.4.md +6 -6
- package/docs/release-notes/v0.24.5.md +6 -10
- package/docs/release-notes/v0.24.6.md +2 -5
- package/docs/release-notes/v0.24.7.md +46 -75
- package/docs/release-notes/v0.24.8.md +58 -96
- package/docs/release-notes/v0.24.9.md +38 -54
- package/docs/release-notes/v0.25.0.md +59 -76
- package/docs/release-notes/v0.25.1.md +57 -81
- package/docs/release-notes/v0.25.2.md +51 -70
- package/docs/release-notes/v0.25.3.md +11 -13
- package/docs/release-notes/v0.25.4.md +9 -13
- package/docs/release-notes/v0.25.5.md +3 -5
- package/docs/release-notes/v0.25.6.md +20 -29
- package/docs/release-notes/v0.25.7.md +5 -7
- package/docs/release-notes/v0.25.8.md +26 -39
- package/docs/release-notes/v0.26.0.md +175 -646
- package/docs/release-notes/v0.27.0.md +4 -5
- package/docs/release-notes/v0.27.1.md +4 -6
- package/docs/release-notes/v0.27.2.md +1 -1
- package/docs/release-notes/v0.28.0.md +57 -124
- package/docs/release-notes/v0.29.0.md +89 -208
- package/docs/release-notes/v0.29.1.md +1 -1
- package/docs/release-notes/v0.29.2.md +3 -4
- package/docs/release-notes/v0.30.0.md +205 -0
- package/docs/schedules.md +280 -363
- package/docs/servers.md +99 -117
- package/docs/soul.schema.json +2 -9
- package/docs/souls-and-instances.md +145 -158
- package/docs/workspaces.md +132 -215
- package/lib/automations.mjs +21 -6
- package/lib/core.mjs +226 -74
- package/lib/instance-events.mjs +1 -1
- package/lib/instance-inspect.mjs +109 -34
- package/lib/instance-lifecycle.mjs +14 -1
- package/lib/instance-resolution.mjs +26 -27
- package/lib/launch-preference.mjs +87 -0
- package/lib/materialize.mjs +3 -3
- package/lib/resolve.mjs +29 -87
- package/lib/schedule.mjs +1 -1
- package/lib/teams-verbs.mjs +195 -0
- package/lib/teams.mjs +190 -0
- package/lib/triggers.mjs +2 -2
- package/lib/workspace.mjs +54 -147
- package/package-catalog.json +9 -15
- package/package.json +1 -1
- package/skills/oats-getting-started/SKILL.md +25 -13
- package/capabilities/oats-review/injects/review.md +0 -69
- package/capabilities/oats-review/oats.json +0 -10
- package/capabilities/oats-review/skills/code-review/SKILL.md +0 -44
- package/capabilities/oats-review/skills/security-review/SKILL.md +0 -59
- package/docs/conventions.md +0 -90
- package/docs/design/2026-09-07-architecture-reassessment.md +0 -131
- package/docs/design/2026-09-07-desktop-souls-capabilities.md +0 -50
- package/docs/design/2026-09-07-mobile-agent-management-proposal.md +0 -228
- package/docs/design/2026-09-08-expert-assisted-deployment-proposal.md +0 -558
- package/docs/design/2026-09-13-knowledge-and-memory-direction.md +0 -744
- package/docs/design/2026-09-13-knowledge-implementation.md +0 -127
- package/docs/design/2026-09-13-knowledge-location-contract.md +0 -340
- package/docs/design/2026-09-14-artifact-retention-contract.md +0 -190
- package/docs/design/2026-09-14-portable-souls-and-git-workspaces.md +0 -708
- package/docs/design/2026-09-14-portable-souls-contract-amendments.md +0 -85
- package/docs/design/2026-09-14-portable-souls-explainer.md +0 -750
- package/docs/design/2026-09-15-captured-dispatch.md +0 -127
- package/docs/design/2026-09-15-captured-resolution-records.md +0 -143
- package/docs/design/2026-09-15-package-preparation.md +0 -100
- package/docs/design/2026-09-15-portable-data-contract.md +0 -121
- package/docs/design/2026-09-15-portable-declarations.md +0 -189
- package/docs/design/2026-09-15-portable-souls-handoff.md +0 -150
- package/docs/design/2026-09-15-portable-souls-implementation.md +0 -417
- package/docs/design/2026-09-15-selection-lock-and-approval.md +0 -122
- package/docs/design/2026-09-15-source-observation.md +0 -119
- package/docs/design/2026-09-16-captured-admission.md +0 -77
- package/docs/design/2026-09-16-captured-helper-dispatch.md +0 -105
- package/docs/design/2026-09-16-captured-launch-inputs.md +0 -42
- package/docs/design/2026-09-16-command-profile-preparation.md +0 -86
- package/docs/design/2026-09-16-fresh-install-first-rollout.md +0 -47
- package/docs/design/2026-09-16-fresh-operator-walkthrough.md +0 -282
- package/docs/design/2026-09-16-messaging-capability-contract.md +0 -59
- package/docs/design/2026-09-16-portable-migration-evidence.md +0 -158
- package/docs/design/2026-09-16-portable-onboarding.md +0 -179
- package/docs/design/2026-09-16-prepare-request-transport.md +0 -26
- package/docs/design/2026-09-16-provider-binding-codecs.md +0 -98
- package/docs/design/2026-09-16-provider-binding-wire.md +0 -274
- package/docs/design/2026-09-17-capability-helper-input-contract.md +0 -95
- package/docs/design/2026-09-17-captured-backend-parity.md +0 -53
- package/docs/design/2026-09-17-captured-native-start.md +0 -58
- package/docs/design/2026-09-17-portable-boundary-hookup.md +0 -19
- package/docs/design/2026-09-17-portable-boundary-resources.md +0 -52
- package/docs/design/2026-09-17-public-captured-start.md +0 -108
- package/docs/design/2026-09-17-public-prepare-request.md +0 -90
- package/docs/design/2026-09-18-captured-pi-host.md +0 -205
- package/docs/design/2026-09-18-first-cut-release-checklist.md +0 -131
- package/docs/design/2026-09-18-herdr-protocol-compatibility.md +0 -60
- package/docs/design/2026-09-20-redesign-program-board.md +0 -142
- package/docs/design/2026-09-20-workspace-and-portable-adoption-plan.md +0 -289
- package/docs/design/2026-09-20-workspace-onboarding-public.md +0 -207
- package/docs/design/2026-09-22-desktop-parity-seams.md +0 -58
- package/docs/design/2026-09-23-simplified-workspace-model.md +0 -711
- package/docs/design/2026-09-23-workspace-v2-implementation-plan.md +0 -65
- package/docs/design/2026-09-24-desktop-phase-f-boundary.md +0 -242
- package/docs/design/2026-09-24-phase-d-plan.md +0 -305
- package/docs/design/2026-09-25-teams-contract.md +0 -258
- package/docs/design/2026-09-26-desktop-design-brief-architecture.md +0 -241
- package/docs/design/desktop-ux-plan.md +0 -362
- package/docs/design/launch-configurations.md +0 -168
- package/docs/design/okf-mirror-provenance.md +0 -105
- package/docs/design/operations-contract.md +0 -141
- package/docs/oats-member.schema.json +0 -38
- package/skills/integration-authoring/SKILL.md +0 -84
- package/skills/oats-support/SKILL.md +0 -79
- package/skills/skill-craft/SKILL.md +0 -109
- package/skills/soul-craft/SKILL.md +0 -116
|
@@ -24,16 +24,15 @@ bundled `capabilities/oats-aweb` is the tag's tree.
|
|
|
24
24
|
- **An agent playbook.** The new `oats-aweb` skill carries the playbook, and
|
|
25
25
|
the inject is shorter and points to it. `oats aweb roster --label <label>`
|
|
26
26
|
is new.
|
|
27
|
-
- **
|
|
28
|
-
per-deployment login and a recorded owner. 1.15 makes no `aw auth` or
|
|
27
|
+
- **No per-workspace personal-team enrollment.** 1.15 makes no `aw auth` or
|
|
29
28
|
`aw team ensure` call, and the primary team resolves as in 1.14.2. A
|
|
30
29
|
host-set `settings.oats.aweb.roots.personal` is ignored with the readiness
|
|
31
30
|
warning `personal-root-deferred`.
|
|
32
31
|
|
|
33
32
|
## Desktop
|
|
34
33
|
|
|
35
|
-
- **Line counts on the Changes rows** (#245, #246). The server passes kernel
|
|
36
|
-
|
|
34
|
+
- **Line counts on the Changes rows** (#245, #246). The server passes the kernel's
|
|
35
|
+
per-file counts (#238) through, and each Git & GitHub Changes row ends with "+84 −3",
|
|
37
36
|
or "binary". An unknown count (untracked, submodule) and older kernels show
|
|
38
37
|
nothing, never "+0".
|
|
39
38
|
- **The Git & GitHub tab counts unresolved review threads** (#247). The tab and
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# OATS 0.30.0
|
|
2
|
+
|
|
3
|
+
## Upgrade
|
|
4
|
+
|
|
5
|
+
> **BREAKING: 0.30.0, oats.aweb 1.17 and oats.framework 1.4.0 move in
|
|
6
|
+
> lockstep.** oats.aweb 1.17 and oats.core / oats.setup 2.2.0 require
|
|
7
|
+
> `oats >=0.30.0` (`E_CAPABILITY_INCOMPATIBLE` on an older kernel), and 0.30
|
|
8
|
+
> refuses the 0.29 team keys.
|
|
9
|
+
|
|
10
|
+
**The workspace** (by PR). 0.30 refuses these keys with `E_WORKSPACE_SCHEMA`
|
|
11
|
+
(reason `removed-key`, naming the replacement): `messaging.byTeam`,
|
|
12
|
+
`defaults.byTeam`, `external[].team`, `soul.yaml` `team:` and
|
|
13
|
+
`oats-membership.yaml` `team`. 0.29.4 accepts their removal, so remove them
|
|
14
|
+
first. Then move the pins to `oats.framework: v1.4.0`, `oats.aweb: v1.17.1`,
|
|
15
|
+
`oats.okf: v4.0.4`, and replace `oats.dev` with `oats.engineering: v1.1.0`.
|
|
16
|
+
|
|
17
|
+
**Each deployment:**
|
|
18
|
+
|
|
19
|
+
1. **Upgrade the CLI**: the npm package `@awebai/oats`, the pi adapter and the
|
|
20
|
+
Desktop, all 0.30.0. Then run `oats sync`.
|
|
21
|
+
2. **Remove `settings.oats.aweb.team`** from `oats-local.yaml`: teams are
|
|
22
|
+
now `oats teams` and `oats soul teams`, and oats.aweb 1.17 refuses the
|
|
23
|
+
setting.
|
|
24
|
+
3. **Run setup** from the deployment: `oats aweb setup --soul <soul>`, with
|
|
25
|
+
any soul that has messaging. Plain `oats aweb setup` outside an instance
|
|
26
|
+
home is refused. With an existing messaging root, setup names the team the
|
|
27
|
+
root is in: record it with `oats teams add <label> --team <id>` (the first
|
|
28
|
+
team becomes `defaultTeam`). With no account:
|
|
29
|
+
`oats aweb setup --soul <soul> --username <u>`.
|
|
30
|
+
4. **Join the teams you share**: ask the owner for an invite, then
|
|
31
|
+
`oats aweb setup --soul <soul> --join <label> --invite <token>
|
|
32
|
+
[--service <url>] [--name <alias>]`. A half-finished join resumes with
|
|
33
|
+
`--join <label> --service <url>` and no new invite. Until the flag day,
|
|
34
|
+
declare the team here as a local team: `oats teams add <label> --team <id>`.
|
|
35
|
+
5. **Put souls in teams here**, in place of the removed `team:`:
|
|
36
|
+
`oats soul teams '*' --add <label>` or `oats soul teams <soul> --add <label>`.
|
|
37
|
+
6. **Trust the workspace automations this host runs** (a host that runs
|
|
38
|
+
workspace triggers or schedules): add them to `oats-local.yaml`
|
|
39
|
+
`automations.trust` (`<member>/<id>` entries, or `"*"`). Until then they
|
|
40
|
+
do not run; `oats workspace status` names each missing line.
|
|
41
|
+
7. **Check**: `oats teams`, and `oats readiness --soul <soul>` shows no team
|
|
42
|
+
problem in `checks.configured`.
|
|
43
|
+
|
|
44
|
+
**The flag day.** Commit a shared team's id in `oats-workspace.yaml`, and add
|
|
45
|
+
`launch:` to a committed soul, only once every deployment of the workspace
|
|
46
|
+
runs 0.30. 0.29.4 refuses both: members are read at their latest commit, and
|
|
47
|
+
its schemas reject the unknown keys.
|
|
48
|
+
|
|
49
|
+
**A deployment still on 0.29.4** has a bundled catalog that does not know
|
|
50
|
+
`oats.engineering`, so its bare-version pin is `E_PACKAGE_MISSING`. Until it
|
|
51
|
+
upgrades, set `OATS_PACKAGE_CATALOG` to a catalog file that lists it, such as
|
|
52
|
+
0.30.0's `package-catalog.json`.
|
|
53
|
+
|
|
54
|
+
## Team model v2
|
|
55
|
+
|
|
56
|
+
- **Teams are local to each deployment.** `oats-local.yaml` holds the local
|
|
57
|
+
teams (`teams.<label>: { team, description? }`), `defaultTeam`, and which
|
|
58
|
+
teams each soul may join here (`souls.teams`, `"*"` for every soul, plus an
|
|
59
|
+
optional `souls.default` per soul). Nothing committed says who is in a team.
|
|
60
|
+
- **A shared team is committed** in `oats-workspace.yaml` `teams:` **with its
|
|
61
|
+
provider id**. One declared without an id is `team-unmapped`: its owner
|
|
62
|
+
creates it and commits the id. A label in both files is
|
|
63
|
+
`team-label-collision`, a warning, and the shared definition wins.
|
|
64
|
+
- **A spawn joins the default team only.** Every other eligible team is opt-in
|
|
65
|
+
per instance: `--provider oats.aweb join=<labels>` at spawn, the Desktop's
|
|
66
|
+
checkboxes, or the provider's join and leave verbs later.
|
|
67
|
+
- **A leave is never silent.** A joined team that is no longer eligible is
|
|
68
|
+
left on the next live read; a newly eligible team is offered, never joined.
|
|
69
|
+
A team a soul no longer lists is left automatically on hosted teams. On a
|
|
70
|
+
team you control (BYOT, namespace-controlled), aw cannot release the member
|
|
71
|
+
from the instance, so the leave is reported (a launch warning and an
|
|
72
|
+
`aweb-team-leave-failed` instance event) and the team's owner removes the
|
|
73
|
+
member.
|
|
74
|
+
- **`oats teams`** lists this deployment's teams, ids, default and problems;
|
|
75
|
+
`add <label> --team <id>`, `remove <label>` and `default <label>` edit
|
|
76
|
+
`oats-local.yaml` only. `remove` refuses a referenced label
|
|
77
|
+
(`E_TEAM_IN_USE`) or a shared one (`E_TEAM_SHARED`).
|
|
78
|
+
**`oats soul teams <soul>|'*'`** takes `--add`, `--remove`, `--default` and
|
|
79
|
+
`--clear-default`. Neither verb calls the provider.
|
|
80
|
+
- **`oats aweb setup`** creates and joins provider teams:
|
|
81
|
+
`--soul <soul> --create <label> --namespace <domain>` creates a team you
|
|
82
|
+
control and records it as a local team; `--soul <soul> --join <label>
|
|
83
|
+
--invite <token>` joins an existing one. Each team gets its own messaging
|
|
84
|
+
root (`settings.oats.aweb.roots.<team id>`).
|
|
85
|
+
- **Readiness** reports team problems in `checks.configured`:
|
|
86
|
+
`E_TEAM_UNCONFIGURED`, `team-unmapped`, `team-label-collision`, and
|
|
87
|
+
`default-team-changed` for a running instance. An undeclared label is
|
|
88
|
+
`E_TEAM_UNKNOWN`.
|
|
89
|
+
- **Providers** receive `OATS_DEFAULT_TEAM`, `OATS_DEFAULT_TEAM_ID`,
|
|
90
|
+
`OATS_DEFAULT_TEAM_FROM`, `OATS_TEAMS` and `OATS_TEAMS_SOURCE`. The 0.29
|
|
91
|
+
names `OATS_TEAM_LABEL`, `OATS_TEAM_LABELS` and `OATS_TEAM_ID` are unset.
|
|
92
|
+
|
|
93
|
+
## Soul launch preferences
|
|
94
|
+
|
|
95
|
+
- **A soul may declare `launch: { harness, model? }`** in `soul.yaml`
|
|
96
|
+
(`pi`, `claude` or `codex`); only a harness and a model.
|
|
97
|
+
- **`oats-local.yaml` `souls.launch` overrides it on this machine**: `"*"` for
|
|
98
|
+
every soul or one soul's entry, each a launch configuration's name or an
|
|
99
|
+
inline `{ harness, model? }`.
|
|
100
|
+
- **Precedence for a new launch:** `--launch-config` or `--harness`, then
|
|
101
|
+
`souls.launch.<soul>`, then `souls.launch."*"`, then the soul's `launch:`,
|
|
102
|
+
then `pi` with its defaults. `--model` alone keeps the deciding layer's
|
|
103
|
+
harness. A missing harness is `E_HARNESS_UNAVAILABLE`, naming the layer
|
|
104
|
+
and the fix; there is no fallback.
|
|
105
|
+
- **A home's recorded launch stays frozen.** A changed preference reaches it
|
|
106
|
+
only with `oats session start|restart --reselect-launch` or a respawn;
|
|
107
|
+
`oats readiness --home` warns `launch-changed`. `session start|restart
|
|
108
|
+
--model` keeps the recorded harness and replaces only the model (#294).
|
|
109
|
+
- `oats souls`, `oats inspect --soul` and `oats spawn … --preview` show each
|
|
110
|
+
soul's `launch` and which layer decided it.
|
|
111
|
+
|
|
112
|
+
## Changed
|
|
113
|
+
|
|
114
|
+
- **A host runs a workspace trigger or schedule only when its
|
|
115
|
+
`oats-local.yaml` trusts it** (`automations.trust: [<member>/<id>]` or
|
|
116
|
+
`"*"`). Hosts that ran workspace automations must add their trust lines;
|
|
117
|
+
`oats workspace status` names each missing line (#300).
|
|
118
|
+
- **`key` on `oats souls` rows and `oats status` agent rows**: the soul's name
|
|
119
|
+
as `souls.teams` and `souls.launch` take it (`<package>/<soul>` for a
|
|
120
|
+
package soul).
|
|
121
|
+
- **A team id must be safe**: no leading `-`, no whitespace or control
|
|
122
|
+
characters, at most 256 characters.
|
|
123
|
+
- **The teams verbs edit only their own entries** in `oats-local.yaml`;
|
|
124
|
+
comments survive.
|
|
125
|
+
|
|
126
|
+
## Fixed
|
|
127
|
+
|
|
128
|
+
- **An opted-in second team (`join=`) now yields a connected, usable
|
|
129
|
+
identity** (oats.aweb 1.17.1). It never did against a real aw before.
|
|
130
|
+
- **A newcomer can join a shared team** (oats.aweb 1.17.1): `oats aweb setup
|
|
131
|
+
--join <label> --invite <token>` takes `--service <url>` and `--name <alias>`,
|
|
132
|
+
and a half-finished join resumes without a new invite.
|
|
133
|
+
- **A lost team, or a retire, on a team you control hands the owner the exact
|
|
134
|
+
cleanup command** (oats.aweb 1.17.1), in place of a silent leftover member.
|
|
135
|
+
- **Knowledge readiness is answered.** oats.okf 4.0.4 answers the kernel's
|
|
136
|
+
documented readiness check; on 0.29.x it was `unknown`.
|
|
137
|
+
- **`oats session start` and `restart` show the launch hooks' warnings**, as
|
|
138
|
+
spawn does (#295): JSON `warnings`, always present, and each is kept as a
|
|
139
|
+
`launch-warning` instance event.
|
|
140
|
+
- **`oats readiness --soul` and `oats inspect --soul` materialise the soul's
|
|
141
|
+
copy at the resolved commit first**, as spawn does, so a soul not yet
|
|
142
|
+
spawned at this commit no longer reads as a missing declaration (#298).
|
|
143
|
+
- **`oats retire` can retire a home from before 0.25.9 whose session is
|
|
144
|
+
gone**: only when the recorded window or server is gone AND no live process
|
|
145
|
+
works in the home; anything live or unclear still refuses, `--force`
|
|
146
|
+
included (#299).
|
|
147
|
+
|
|
148
|
+
## Known in 0.30.0
|
|
149
|
+
|
|
150
|
+
The first two are fixed in 0.30.1; the last is how aw works on a team you
|
|
151
|
+
control.
|
|
152
|
+
|
|
153
|
+
- With no teams configured, a spawn is refused by the provider
|
|
154
|
+
(`E_SPAWN_FAILED`, relaying "no teams configured: run `oats aweb setup`"),
|
|
155
|
+
not by the kernel's `E_TEAM_UNCONFIGURED`.
|
|
156
|
+
- A capability operator command run from a deployment needs `--soul <soul>`.
|
|
157
|
+
- On a team you control (BYOT, namespace-controlled), retiring an instance, or
|
|
158
|
+
a spawn that rolls back, deletes its workspace but cannot revoke its
|
|
159
|
+
membership; its alias stays on the team, and the retire prints the owner's
|
|
160
|
+
exact `aw id team remove-member` command (and records it as
|
|
161
|
+
`pendingControllerCleanup`). Hosted teams release automatically.
|
|
162
|
+
|
|
163
|
+
## Packages
|
|
164
|
+
|
|
165
|
+
- **oats.framework `oats-framework/v1.4.0`**: oats.core 2.2.0 and oats.setup
|
|
166
|
+
2.2.0 require `>=0.30.0` and teach the team model v2 and onboarding through
|
|
167
|
+
`oats aweb setup`.
|
|
168
|
+
- **oats.aweb `v1.17.1`** (from 1.16.0): one aw floor, `>=1.36.13` (1.16.1);
|
|
169
|
+
the kernel's teams, with no provider `team` setting (a stale one is refused)
|
|
170
|
+
and one root per team; setup's `--create` and `--join`; the teams
|
|
171
|
+
document's shared/local `from`, `warnings[]` and recently left teams; the
|
|
172
|
+
newcomer's first `--join`, `--soul` on operator commands, the
|
|
173
|
+
`aweb-team-leave-failed` event and the second-team fix (1.17.1); in 1.17.1
|
|
174
|
+
also the resumable `--join` with `--service`/`--name`, the owner's cleanup
|
|
175
|
+
command on a team you control, and a stale `team` setting refused only
|
|
176
|
+
where teams are chosen, so retire still cleans up.
|
|
177
|
+
- **oats.okf `v4.0.4`** (from 4.0.1): the harvester and maintainer live in the
|
|
178
|
+
default team, with no `okf` team (4.0.2); consultation works with harvest
|
|
179
|
+
off (4.0.3); readiness is answered (4.0.4).
|
|
180
|
+
- **oats.engineering `v1.1.0` replaces oats.dev**, which is retired along with
|
|
181
|
+
its catalog aliases (`oats.review`). It ships `oats.engineering-expert`,
|
|
182
|
+
`oats.developer`, `oats.code-review` and the `code-reviewer` package soul.
|
|
183
|
+
|
|
184
|
+
## Desktop
|
|
185
|
+
|
|
186
|
+
- **A Workspace Teams tab** (#270), before Souls: this computer's teams and
|
|
187
|
+
default, with add, remove and default. A soul page has Teams here (#277),
|
|
188
|
+
the spawn dialog shows the fixed default team and unchecked opt-in boxes,
|
|
189
|
+
and an unmapped default team blocks the spawn with its fix.
|
|
190
|
+
- **The teams panel** shows each team as shared or local, the provider's
|
|
191
|
+
warnings (#286), recently left teams (#270), and a join or leave warning
|
|
192
|
+
under its row (#282). Readiness team items say where the team is declared.
|
|
193
|
+
- **The Spawn view groups souls by their default team** and chips their
|
|
194
|
+
teams, the default first (#285).
|
|
195
|
+
- **Each soul's harness and model again**, with what chose them (#289), and
|
|
196
|
+
a session card says where a model set on this computer came from (#293).
|
|
197
|
+
- **Readiness shows `launch-changed`** for a home whose launch preference
|
|
198
|
+
moved, and the Desktop's readers accept any team id the kernel accepts
|
|
199
|
+
(#292).
|
|
200
|
+
- **One Automations item** with Schedules and Triggers subtabs (#267).
|
|
201
|
+
- **Untrusted workspace automations** need attention: the row reads "Not
|
|
202
|
+
trusted here" and shows the kernel's line to add, and Setup shows each
|
|
203
|
+
trust warning with its remedy (#301).
|
|
204
|
+
- **The spawn dialog says the kernel's missing-harness fix once** (#302).
|
|
205
|
+
- The Desktop accepts OATS CLIs `>=0.25.8 <0.31.0`.
|