@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
|
@@ -4,174 +4,78 @@ One release built from one tag: `@awebai/oats@0.19.0`,
|
|
|
4
4
|
`@awebai/oats-pi@0.19.0`, and **OATS Desktop 0.19.0** in this GitHub Release.
|
|
5
5
|
|
|
6
6
|
This release introduces distribution packages, exact OATS-managed instance
|
|
7
|
-
curricula, canonical
|
|
8
|
-
setup flow needed for independently published official capabilities.
|
|
7
|
+
curricula, canonical instance homes, and package config profiles.
|
|
9
8
|
|
|
10
9
|
## Distribution packages
|
|
11
10
|
|
|
12
|
-
An OATS package is
|
|
13
|
-
independently targetable capabilities.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Git/catalog sources default to the contained oats-package/ directory.
|
|
19
|
-
oats install https://github.com/example/project.git@v1.0.0
|
|
20
|
-
|
|
21
|
-
# Select another contained directory, or the repository root explicitly.
|
|
22
|
-
oats install 'https://github.com/example/project.git@v1.0.0#dist/oats'
|
|
23
|
-
oats install 'https://github.com/example/root-package.git@v1.0.0#.'
|
|
24
|
-
|
|
25
|
-
# A local path always names the exact package root.
|
|
26
|
-
oats install ../project/oats-package
|
|
27
|
-
```
|
|
11
|
+
An OATS package is the acquisition, integrity, update, and review unit above
|
|
12
|
+
independently targetable capabilities. Git and catalog sources default to the
|
|
13
|
+
contained `oats-package/` directory; `#<path>` selects another directory (`#.`
|
|
14
|
+
for the repository root), and a local path names the exact package root.
|
|
28
15
|
|
|
29
16
|
Lock v2 records source, exact commit, selected path, integrity, dependency
|
|
30
17
|
closure, exported capabilities, and per-capability executable approvals. Bare
|
|
31
|
-
`oats install` restores the exact locked graph;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
oats update <package-id>
|
|
37
|
-
```
|
|
18
|
+
`oats install` restores the exact locked graph; updating is explicit
|
|
19
|
+
(`oats update <package-id>`). Acquisition installs and hashes only the selected
|
|
20
|
+
payload subtree; root `.git` metadata appearing later inside a managed artifact
|
|
21
|
+
is treated as source drift and invalidates trust. See
|
|
22
|
+
[Distribution packages](../packages.md).
|
|
38
23
|
|
|
39
|
-
|
|
40
|
-
CI, documentation, owner souls, sibling packages, and source-control metadata
|
|
41
|
-
are not installed. If root `.git` metadata later appears inside a managed
|
|
42
|
-
artifact, it is treated as source drift and invalidates trust rather than being
|
|
43
|
-
an approval-invisible exclusion.
|
|
24
|
+
## Package config profiles
|
|
44
25
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Packages may ship complete reference `oats-config.yaml` profiles. Adoption is
|
|
48
|
-
explicit and produces an editable local snapshot:
|
|
26
|
+
Packages may ship reference `oats-config.yaml` profiles. Adoption is explicit
|
|
27
|
+
and writes an editable local snapshot:
|
|
49
28
|
|
|
50
29
|
```bash
|
|
51
30
|
oats init --package <package-source> [--config <profile>] --dir <workspace>
|
|
52
31
|
oats install --dir <workspace>
|
|
53
32
|
```
|
|
54
33
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
settings, and closer repository overrides remain authoritative.
|
|
60
|
-
|
|
61
|
-
Missing host commands and runtime packages remain a separate consent decision.
|
|
62
|
-
Human and JSON plans show every ordered argv step before anything executes.
|
|
63
|
-
Spawn verifies required runtime packages but never installs them.
|
|
64
|
-
|
|
65
|
-
## Exact OATS-managed instance curriculum
|
|
66
|
-
|
|
67
|
-
For each soul, the scoped config cascade now determines the complete
|
|
68
|
-
OATS-managed skill and instruction set. Active capability resources are
|
|
69
|
-
enumerated before scaffolding, copied into the canonical instance tree, and
|
|
70
|
-
asserted against the expected composition. Missing, untrusted, duplicate, or
|
|
71
|
-
uncontained active resources fail closed instead of producing a half-configured
|
|
72
|
-
agent.
|
|
73
|
-
|
|
74
|
-
Canonical instance resources are:
|
|
75
|
-
|
|
76
|
-
```text
|
|
77
|
-
<instance-home>/.agents/skills/
|
|
78
|
-
<instance-home>/.claude/skills -> ../.agents/skills
|
|
79
|
-
<instance-home>/AGENTS.md
|
|
80
|
-
<instance-home>/CLAUDE.md -> AGENTS.md
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Runtime posture is deliberately provider-specific and recorded in
|
|
84
|
-
`instance.json`:
|
|
85
|
-
|
|
86
|
-
- **Pi** suppresses ambient skills, context files, and prompt templates while
|
|
87
|
-
preserving operator-configured extensions.
|
|
88
|
-
- **Claude Code** preserves the operator's native user/repository settings,
|
|
89
|
-
skills, plugins, MCP, hooks, and memory; OATS adds its canonical composed
|
|
90
|
-
resources without exclusion flags.
|
|
91
|
-
|
|
92
|
-
The guarantee is exact OATS-managed composition, not identical ambient behavior
|
|
93
|
-
across providers.
|
|
94
|
-
|
|
95
|
-
## Canonical instance homes and the home/work boundary
|
|
34
|
+
Package updates never rewrite an adopted config. Missing host commands and
|
|
35
|
+
runtime packages remain a separate consent decision; plans show every ordered
|
|
36
|
+
step before anything executes, and spawn verifies required runtime packages but
|
|
37
|
+
never installs them.
|
|
96
38
|
|
|
97
|
-
|
|
98
|
-
even when spawn is invoked from a linked worktree or from an agent's `work/`.
|
|
99
|
-
Unresolvable placement fails closed before creating anything.
|
|
39
|
+
## Exact instance curriculum and canonical homes
|
|
100
40
|
|
|
101
|
-
|
|
102
|
-
|
|
41
|
+
The scoped config cascade determines each soul's complete OATS-managed skill and
|
|
42
|
+
instruction set. Missing, untrusted, duplicate, or uncontained active resources
|
|
43
|
+
fail closed. Resources are composed into `<instance-home>/.agents/skills/`
|
|
44
|
+
(linked from `.claude/skills`) and `AGENTS.md` (linked from `CLAUDE.md`). Pi
|
|
45
|
+
suppresses ambient skills, context files, and prompt templates; Claude Code
|
|
46
|
+
keeps the operator's native settings, skills, plugins, MCP, hooks, and memory.
|
|
103
47
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
reading, editing, Git, builds, tests, and commits happen.
|
|
48
|
+
Instance homes live under the soul-owning repository's primary checkout, even
|
|
49
|
+
when spawn runs from a linked worktree. Every runtime and hook receives the
|
|
50
|
+
absolute `OATS_INSTANCE_HOME`; lifecycle commands run in the home, repository
|
|
51
|
+
work happens in `<instance-home>/work`.
|
|
109
52
|
|
|
110
|
-
|
|
111
|
-
before writing credentials or running hooks. The deployment agents directory
|
|
112
|
-
must still be operator-owned and not writable by untrusted local processes.
|
|
53
|
+
## Required hooks and runtime requirements
|
|
113
54
|
|
|
114
|
-
|
|
55
|
+
Capability spawn hooks may declare `required: true`; a failing required hook
|
|
56
|
+
fails the spawn. If compensation cannot finish, OATS keeps a quarantine that
|
|
57
|
+
`oats retire` retries before deleting the home (`--force` remains available).
|
|
58
|
+
Requirement consent supports runtime-scoped Pi packages and Claude plugins.
|
|
115
59
|
|
|
116
|
-
|
|
117
|
-
establish its contract fails the spawn. If compensation cannot finish, OATS
|
|
118
|
-
retains a versioned quarantine containing the credential and original cleanup
|
|
119
|
-
metadata; `oats retire` retries and verifies outstanding cleanup before deleting
|
|
120
|
-
the home. `--force` remains the explicit operator escape hatch.
|
|
60
|
+
## Compatibility with 0.18 installations
|
|
121
61
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
Upgrading the kernel does **not** force a capability migration. Existing valid
|
|
129
|
-
v1 locks, installed official capability artifacts, config activation, and trust
|
|
130
|
-
continue to work in 0.19.0.
|
|
131
|
-
|
|
132
|
-
The guided command is included:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
oats migrate --official --recursive --dry-run --dir <team-root>
|
|
136
|
-
oats migrate --official --recursive --dir <team-root>
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
It remains held until the official package catalog and immutable package tags
|
|
140
|
-
are published. That catalog/default redirect ships in the planned 0.19.1
|
|
141
|
-
follow-up. Until then, `oats doctor` explains that the legacy capabilities remain
|
|
142
|
-
supported. Migration preserves config files and capability IDs, leaves custom,
|
|
143
|
-
owned, and path capabilities untouched, and never transfers executable trust
|
|
144
|
-
silently.
|
|
145
|
-
|
|
146
|
-
Legacy kernel-marketplace capabilities may still reference framework-hoisted
|
|
147
|
-
resources. Those paths now anchor at the declaring capability's canonical
|
|
148
|
-
marketplace directory and remain contained by the installed kernel. Valid older
|
|
149
|
-
installed+locked capabilities continue working across a kernel upgrade.
|
|
62
|
+
Existing v1 locks, installed official capabilities, activation, and trust keep
|
|
63
|
+
working; no migration is forced. `oats migrate --official --recursive
|
|
64
|
+
[--dry-run] --dir <team-root>` is included but held in this release because the
|
|
65
|
+
official package catalog was not yet published; `oats doctor` explains that the
|
|
66
|
+
legacy capabilities remain supported.
|
|
150
67
|
|
|
151
68
|
## OATS Desktop
|
|
152
69
|
|
|
153
|
-
Desktop accepts
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
Desktop also includes the accumulated 0.18.x post-release work: cluster-aware
|
|
159
|
-
agent navigation, persistent editor-style terminal groups, Quick Open for souls,
|
|
160
|
-
runtime-scoped model suggestions, improved spawn readiness handoff, and the
|
|
161
|
-
existing editable shortcut system.
|
|
162
|
-
|
|
163
|
-
## Downloads
|
|
164
|
-
|
|
165
|
-
| Platform | Artifacts |
|
|
166
|
-
| --- | --- |
|
|
167
|
-
| macOS arm64 (Apple Silicon) | DMG + ZIP |
|
|
168
|
-
| macOS x64 (Intel) | DMG + ZIP |
|
|
169
|
-
| Linux x64 | AppImage + DEB |
|
|
70
|
+
Desktop accepts CLI versions `>=0.18.0 <0.20.0` (Desktop CLI API v1). It also
|
|
71
|
+
includes cluster-aware agent navigation, persistent terminal groups, Quick Open
|
|
72
|
+
for souls, runtime-scoped model suggestions, and improved spawn readiness
|
|
73
|
+
handoff.
|
|
170
74
|
|
|
171
|
-
macOS
|
|
172
|
-
|
|
173
|
-
Verify assets with `SHA256SUMS.txt` and the
|
|
174
|
-
Windows and Linux arm64 are not supported
|
|
75
|
+
Installers: macOS arm64 and x64 (DMG + ZIP), Linux x64 (AppImage + DEB). macOS
|
|
76
|
+
builds are ad-hoc signed, not notarized; first launch may need right-click →
|
|
77
|
+
**Open**. Verify assets with `SHA256SUMS.txt` and the build-provenance
|
|
78
|
+
attestations. Windows and Linux arm64 are not supported.
|
|
175
79
|
|
|
176
80
|
## Install or update
|
|
177
81
|
|
|
@@ -180,7 +84,4 @@ npm install -g @awebai/oats@0.19.0
|
|
|
180
84
|
pi install npm:@awebai/oats-pi@0.19.0
|
|
181
85
|
```
|
|
182
86
|
|
|
183
|
-
|
|
184
|
-
matching versions. Official OATS capability packages are published separately
|
|
185
|
-
after released-kernel consumer probes; this release does not claim that their
|
|
186
|
-
catalog entries are live yet.
|
|
87
|
+
Keep the kernel, Pi adapter, and Desktop on matching versions.
|
|
@@ -12,9 +12,8 @@ Corrective patch for the v0.19.0 marketplace compatibility bridge.
|
|
|
12
12
|
- Preserves framework-author `oats.authoring` skill composition from the
|
|
13
13
|
published kernel layout.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
packages complete their published-kernel probes.
|
|
15
|
+
This patch does not include the official package catalog or migration
|
|
16
|
+
redirects.
|
|
18
17
|
|
|
19
18
|
Install matching kernel and Pi adapter versions:
|
|
20
19
|
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
# OATS v0.19.3
|
|
1
|
+
# OATS v0.19.3
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
GitHub Release, and was removed. Its documentation refresh shipped in v0.19.4.
|
|
5
|
-
|
|
6
|
-
Documentation refresh after the official package and workspace rollout.
|
|
7
|
-
|
|
8
|
-
- Rewrites the README around OATS's central value: durable, provider-agnostic
|
|
9
|
-
specialist agents with exact OATS-managed curricula, compounding expertise,
|
|
10
|
-
mixed-provider teamwork, package/config sovereignty, and Desktop situational
|
|
11
|
-
awareness.
|
|
12
|
-
- Documents the now-published official package repositories, `oats-package/`
|
|
13
|
-
payload convention, `oats.dev` non-Git workspace setup, and guided migration
|
|
14
|
-
from 0.18 capability locks.
|
|
15
|
-
|
|
16
|
-
No runtime contract changes from v0.19.2.
|
|
3
|
+
Tagged, not published; its changes shipped in v0.19.4.
|
|
@@ -64,21 +64,6 @@ Desktop API remains version 1. Desktop 0.20 accepts released CLI versions in
|
|
|
64
64
|
`>=0.18.0 <0.21.0`. This range includes the matching 0.20 kernel.
|
|
65
65
|
Prerelease versions are not accepted.
|
|
66
66
|
|
|
67
|
-
## Required release order
|
|
68
|
-
|
|
69
|
-
The framework and package releases have a strict dependency order.
|
|
70
|
-
|
|
71
|
-
1. Release the v0.20.0 kernel, Pi adapter, and Desktop first.
|
|
72
|
-
2. After that consumer contract is available, revise and test all six official
|
|
73
|
-
package repositories. They are `oats-okf`, `oats-aweb`, `oats-jira`,
|
|
74
|
-
`oats-linear`, `oats-authoring`, and `oats-dev`. Tag immutable package revisions
|
|
75
|
-
in dependency order. Release leaf packages first and `oats.dev` last.
|
|
76
|
-
3. Only after all six immutable package tags exist, update the kernel catalog.
|
|
77
|
-
Cut a framework patch if the catalog change requires one.
|
|
78
|
-
|
|
79
|
-
Do not retag an existing package release. The revised package versions do not
|
|
80
|
-
become catalog defaults until the catalog follow-up ships.
|
|
81
|
-
|
|
82
67
|
## Install or update
|
|
83
68
|
|
|
84
69
|
```bash
|
|
@@ -4,170 +4,104 @@ OATS v0.22.0 is the first release under the OATS name. The framework release
|
|
|
4
4
|
includes `@awebai/oats@0.22.0`, `@awebai/oats-pi@0.22.0`, and OATS Desktop
|
|
5
5
|
0.22.0.
|
|
6
6
|
|
|
7
|
-
The version
|
|
8
|
-
0.21.2
|
|
9
|
-
|
|
10
|
-
corrections, ported with their original authorship preserved; it does not
|
|
11
|
-
include the OAS 0.21.0 remote catalog fetch (see "Not included" below).
|
|
7
|
+
The version sits above every release of the OAS line (`@oas-framework/oas`
|
|
8
|
+
0.21.2 was the latest). This release includes the OAS 0.20.1, 0.21.1, and
|
|
9
|
+
0.21.2 corrections; it does not include the OAS 0.21.0 remote catalog fetch.
|
|
12
10
|
|
|
13
11
|
## The rename: OAS is now OATS
|
|
14
12
|
|
|
15
13
|
Everything previously published as **OAS** (`@oas-framework/oas`,
|
|
16
|
-
`@oas-framework/pi`,
|
|
17
|
-
`@awebai/oats-pi`, OATS Desktop). The rename is a clean break:
|
|
14
|
+
`@oas-framework/pi`, OAS Desktop) continues as **OATS** (`@awebai/oats`,
|
|
15
|
+
`@awebai/oats-pi`, OATS Desktop). The rename is a clean break: the kernel
|
|
18
16
|
recognizes no `oas-*` file name, no `oas:` config key, and no `oas.*`
|
|
19
17
|
capability id.
|
|
20
18
|
|
|
21
|
-
Deployments created by OAS must migrate
|
|
19
|
+
Deployments created by OAS must migrate:
|
|
22
20
|
|
|
23
21
|
```bash
|
|
24
22
|
oats migrate --from-oas --dry-run --dir <scope> # full plan, touches nothing
|
|
25
23
|
oats migrate --from-oas --dir <scope> # convert this scope
|
|
26
24
|
```
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
engine annotations (`_capabilityLock`, `_soulDir`, `_origin`, ...) are
|
|
66
|
-
stripped from every manifest and soul reader before the kernel annotates
|
|
67
|
-
them, so an on-disk document cannot assert its own provenance or silence
|
|
68
|
-
doctor's orphan warning.
|
|
69
|
-
- **Config writes fail closed.** Text that would change the shape of a
|
|
70
|
-
written config is refused with `unsafe-config-value` or
|
|
71
|
-
`unsafe-config-key` instead of being written: line breaks (including
|
|
72
|
-
U+0085, U+2028, U+2029), embedded `" #"`, empty values, leading YAML
|
|
73
|
-
structure indicators, and `:` or `#` in keys. This includes the scaffolded
|
|
74
|
-
`name:` line: `oats init`, and the first `oats use` or `oats type add` in a
|
|
75
|
-
fresh scope, refuse to run in a directory whose basename cannot be stored
|
|
76
|
-
as one YAML scalar. Home directories containing `$&`-style sequences are
|
|
77
|
-
expanded literally on every write path.
|
|
78
|
-
- **Typed CLI failure boundary.** `unsafe-config-key`, `unsafe-config-value`,
|
|
79
|
-
and `E_NO_CONFIG` render as one `oats:` line or one `--json` envelope
|
|
80
|
-
instead of a raw stack. Configless `oats use` reports `E_NO_CONFIG` with
|
|
81
|
-
the `oats init --raw` remedy instead of a misleading `acquired: none`.
|
|
82
|
-
Spawn no longer re-badges these as `E_SPAWN_FAILED`.
|
|
83
|
-
- **Scope-exact doctor and trust.** `oats doctor` judges each installed
|
|
84
|
-
artifact against the lock of the scope that installed it, reading revised-v2
|
|
85
|
-
`capabilities` rows directly instead of the merged chain, so a chain that
|
|
86
|
-
holds one package id at two scopes with different source spellings is no
|
|
87
|
-
longer reported as `invalid-lock`, and v2-locked capabilities are no longer
|
|
88
|
-
reported as orphans. Trust evaluation reads the row from the artifact's own
|
|
89
|
-
scope.
|
|
90
|
-
- **Desktop parity.** The Desktop deployment reader reads revised-v2
|
|
91
|
-
capability locks, refuses every lock shape the kernel refuses, and its
|
|
92
|
-
legacy-v1 artifact digest counts `.git` and nested lock files exactly as the
|
|
93
|
-
kernel does.
|
|
94
|
-
- **Package payload is never a deployment scope.** Bare `oats install` at a
|
|
95
|
-
team scope no longer reconciles config templates that live under a package
|
|
96
|
-
manifest (`oats-package.json`) as if they were live deployments, so a
|
|
97
|
-
workspace that develops packages stops failing reconciliation for
|
|
98
|
-
directories no operator could act on. The same walk backs
|
|
99
|
-
`oats migrate --official --recursive`.
|
|
26
|
+
Each scope converts in one transaction (file names, the `oas:` key, capability
|
|
27
|
+
ids, then the guided package conversion to `lockfileVersion: 2`). Any failure
|
|
28
|
+
restores the original bytes; a second run is a no-op. Executable trust is
|
|
29
|
+
re-earned after conversion. See
|
|
30
|
+
[migration from OAS](https://github.com/awebai/oats/blob/v0.22.0/docs/migration-from-oas.md).
|
|
31
|
+
|
|
32
|
+
`oats doctor` names un-migrated OAS scopes with the remedy, and every
|
|
33
|
+
`oats migrate` form exits nonzero on them. Migration was verified against OAS
|
|
34
|
+
0.20.x; OAS 0.21.x scopes may lock the OAS v2.0.0 package line, which the OATS
|
|
35
|
+
catalog does not carry, so run the dry run first.
|
|
36
|
+
|
|
37
|
+
The 0.18 upgrade guarantee (existing v1 locks keep working) applies to
|
|
38
|
+
OATS-named scopes only, never to OAS-named deployments.
|
|
39
|
+
|
|
40
|
+
## Corrections ported from OAS
|
|
41
|
+
|
|
42
|
+
- **Own-property config handling.** Config parsing and diagnostics ignore
|
|
43
|
+
inherited `Object.prototype` properties; YAML keys named `__proto__` are
|
|
44
|
+
refused with `unsafe-config-key`.
|
|
45
|
+
- **Internal annotations cannot arrive from disk.** Underscore-prefixed engine
|
|
46
|
+
annotations are stripped from every manifest and soul read.
|
|
47
|
+
- **Config writes fail closed.** Values or keys that would change the shape of
|
|
48
|
+
a written config are refused with `unsafe-config-value` or
|
|
49
|
+
`unsafe-config-key`. `oats init` and the first `oats use` or `oats type add`
|
|
50
|
+
in a fresh scope refuse a directory basename that cannot be stored as one
|
|
51
|
+
YAML scalar.
|
|
52
|
+
- **Typed CLI failures.** `unsafe-config-key`, `unsafe-config-value`, and
|
|
53
|
+
`E_NO_CONFIG` render as one `oats:` line or one `--json` envelope.
|
|
54
|
+
Configless `oats use` reports `E_NO_CONFIG` with the `oats init --raw` remedy.
|
|
55
|
+
- **Scope-exact doctor and trust.** `oats doctor` and trust judge each artifact
|
|
56
|
+
against the lock of the scope that installed it, ending false `invalid-lock`
|
|
57
|
+
and orphan reports.
|
|
58
|
+
- **Desktop parity.** The Desktop deployment reader accepts and refuses the
|
|
59
|
+
same lock shapes as the kernel.
|
|
60
|
+
- **Package payloads are not deployment scopes.** Bare `oats install` and
|
|
61
|
+
`oats migrate --official --recursive` skip config templates under a package
|
|
62
|
+
manifest.
|
|
100
63
|
|
|
101
64
|
## The turn record: `oats capture | recall | setup`
|
|
102
65
|
|
|
103
|
-
The kernel
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
owner-write journals, searchable with exact provenance.
|
|
66
|
+
The kernel carries the turn record: Claude Code, Pi, and Codex sessions plus
|
|
67
|
+
aw mail and chat logs, captured as content-addressed turns in append-only
|
|
68
|
+
journals and searchable with provenance.
|
|
107
69
|
|
|
108
70
|
```bash
|
|
109
|
-
oats setup # install capture hooks
|
|
71
|
+
oats setup # install capture hooks and a background watcher
|
|
110
72
|
oats capture # one reconciliation pass (--watch, --status, --install-hint)
|
|
111
|
-
oats recall <query> # full-text search
|
|
73
|
+
oats recall <query> # full-text search with provenance
|
|
112
74
|
```
|
|
113
75
|
|
|
114
|
-
The
|
|
115
|
-
|
|
116
|
-
`packages/record/test/vectors/`).
|
|
117
|
-
|
|
118
|
-
`oats experimental <dress|spawn|segments|mind>` exists in the repo checkout
|
|
119
|
-
only, and deliberately never in this published package: the synthesis layer
|
|
120
|
-
above the record is unproven by design, and its absence from the tarball is
|
|
121
|
-
exactly its status.
|
|
76
|
+
The v1 format specification and conformance vectors ship in the package
|
|
77
|
+
(`packages/record/docs/`, `packages/record/test/vectors/`).
|
|
122
78
|
|
|
123
79
|
## Contract changes
|
|
124
80
|
|
|
125
|
-
- `oats migrate --dry-run --json` on a scope
|
|
126
|
-
`
|
|
127
|
-
`oas-scope-unmigrated` instead of `ok: true` with an empty plan. OATS-named
|
|
128
|
-
scopes see no change.
|
|
81
|
+
- `oats migrate --dry-run --json` on a scope with visible OAS files returns
|
|
82
|
+
`ok: false` with code `oas-scope-unmigrated`.
|
|
129
83
|
- `oats doctor --json` gains `oasScopes`, `oasRemedy`, and per-package
|
|
130
|
-
scope-exact rows
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
- New typed failures: `unsafe-config-key`, `unsafe-config-value`, and
|
|
137
|
-
`E_NO_CONFIG` from configless `oats use`. Scripts matching error text
|
|
138
|
-
should match the typed codes.
|
|
139
|
-
- `oats init` and first-write commands refuse directory basenames that
|
|
140
|
-
cannot be stored as one YAML scalar (see above). Earlier releases wrote
|
|
141
|
-
such names verbatim.
|
|
84
|
+
scope-exact rows; the exit code stays 0.
|
|
85
|
+
- Guided migration plan rows gain `migratesTo`, applied rows `migratedTo`;
|
|
86
|
+
all seven ids published by OAS 0.20 are mapped.
|
|
87
|
+
- New typed failures `unsafe-config-key`, `unsafe-config-value`, and
|
|
88
|
+
`E_NO_CONFIG`.
|
|
89
|
+
- `oats init` and first-write commands refuse unstorable directory basenames.
|
|
142
90
|
|
|
143
91
|
## Desktop
|
|
144
92
|
|
|
145
|
-
OATS Desktop 0.22.0 accepts a kernel with `desktopApi: 1` in
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
- Root `npm test` is correct on a checkout without the Desktop's own
|
|
158
|
-
dependencies: it runs the Desktop suites when they are installed and
|
|
159
|
-
otherwise prints an unmissable notice with the install command.
|
|
160
|
-
- A runnerless release lane (`scripts/release-lane.mjs`) mirrors the release
|
|
161
|
-
workflow off GitHub Actions, so registry publish and hosted assets never
|
|
162
|
-
depend permanently on a runner.
|
|
163
|
-
|
|
164
|
-
## Not included
|
|
165
|
-
|
|
166
|
-
- The OAS 0.21.0 **remote official catalog** (the kernel fetching
|
|
167
|
-
`package-catalog.json` from GitHub at resolution time). OATS resolves the
|
|
168
|
-
bundled catalog only. Held for a separate decision.
|
|
169
|
-
- The `@oas-framework/*` packages are **not deprecated** by this release;
|
|
170
|
-
that action belongs to their maintainer.
|
|
93
|
+
OATS Desktop 0.22.0 accepts a kernel with `desktopApi: 1` in
|
|
94
|
+
`>=0.22.0 <0.23.0`, probing `@awebai/oats`. The old OAS Desktop and this CLI
|
|
95
|
+
cannot see each other, so upgrade both together. macOS builds are ad-hoc
|
|
96
|
+
signed, not notarized; see [the Desktop guide](../desktop.md).
|
|
97
|
+
|
|
98
|
+
## Also
|
|
99
|
+
|
|
100
|
+
- The kernel ships a `LICENSE` file (MIT).
|
|
101
|
+
- Root `npm test` runs the Desktop suites when their dependencies are
|
|
102
|
+
installed and otherwise prints the install command.
|
|
103
|
+
- The OAS 0.21.0 remote official catalog is not included; OATS resolves the
|
|
104
|
+
bundled catalog only.
|
|
171
105
|
|
|
172
106
|
## Install
|
|
173
107
|
|
|
@@ -176,5 +110,4 @@ npm install -g @awebai/oats@latest
|
|
|
176
110
|
pi install npm:@awebai/oats-pi@latest
|
|
177
111
|
```
|
|
178
112
|
|
|
179
|
-
Install matching kernel
|
|
180
|
-
one tag.
|
|
113
|
+
Install matching kernel and adapter versions.
|