@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.
- package/README.md +12 -6
- package/bin/oats.mjs +194 -50
- 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 +77 -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 +83 -0
- package/docs/release-lane.md +82 -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/release-notes/v0.30.1.md +123 -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 +137 -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/packages.mjs +1 -1
- package/lib/resolve.mjs +30 -88
- 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 +10 -16
- package/package.json +1 -3
- package/skills/oats-getting-started/SKILL.md +25 -13
- package/capabilities/oats-authoring/LICENSE +0 -21
- package/capabilities/oats-authoring/oats-package.json +0 -11
- package/capabilities/oats-authoring/oats.json +0 -12
- package/capabilities/oats-authoring/skills/integration-authoring/SKILL.md +0 -84
- package/capabilities/oats-authoring/skills/skill-craft/SKILL.md +0 -109
- package/capabilities/oats-authoring/skills/soul-craft/SKILL.md +0 -116
- package/capabilities/oats-aweb/bin/oats-aweb-binding.mjs +0 -11
- package/capabilities/oats-aweb/bin/oats-aweb.mjs +0 -1338
- package/capabilities/oats-aweb/injects/aweb.md +0 -47
- package/capabilities/oats-aweb/lib/binding-wire.mjs +0 -356
- package/capabilities/oats-aweb/lib/captured-execution.mjs +0 -91
- package/capabilities/oats-aweb/lib/captured-native.mjs +0 -91
- package/capabilities/oats-aweb/lib/grant-custody.mjs +0 -38
- package/capabilities/oats-aweb/lib/invocation-shape.mjs +0 -135
- package/capabilities/oats-aweb/lib/portable-binding.mjs +0 -146
- package/capabilities/oats-aweb/lib/session-readiness.mjs +0 -56
- package/capabilities/oats-aweb/lib/wake-receive.mjs +0 -56
- package/capabilities/oats-aweb/oats.json +0 -208
- package/capabilities/oats-aweb/skills/LICENSE +0 -21
- package/capabilities/oats-aweb/skills/VENDORED.md +0 -31
- package/capabilities/oats-aweb/skills/aweb-identity/SKILL.md +0 -201
- package/capabilities/oats-aweb/skills/aweb-messaging/SKILL.md +0 -161
- package/capabilities/oats-aweb/skills/aweb-messaging/references/messaging-scenarios.md +0 -61
- package/capabilities/oats-aweb/skills/aweb-team-membership/SKILL.md +0 -116
- package/capabilities/oats-aweb/skills/aweb-team-membership/references/team-membership-reference.md +0 -74
- package/capabilities/oats-aweb/skills/oats-aweb/SKILL.md +0 -216
- package/capabilities/oats-jira/bin/oats-jira.mjs +0 -40
- package/capabilities/oats-jira/injects/jira.md +0 -10
- package/capabilities/oats-jira/oats.json +0 -22
- package/capabilities/oats-jira/skills/jira-tasks/SKILL.md +0 -179
- package/capabilities/oats-linear/bin/oats-linear-hook.mjs +0 -34
- package/capabilities/oats-linear/bin/oats-linear.mjs +0 -344
- package/capabilities/oats-linear/injects/linear.md +0 -8
- package/capabilities/oats-linear/oats.json +0 -24
- package/capabilities/oats-linear/skills/linear-tasks/SKILL.md +0 -223
- package/capabilities/oats-okf/bin/oats-okf-binding.mjs +0 -14
- package/capabilities/oats-okf/bin/oats-okf.mjs +0 -209
- package/capabilities/oats-okf/injects/okf.md +0 -42
- package/capabilities/oats-okf/lib/binding-wire.mjs +0 -348
- package/capabilities/oats-okf/lib/captured-worker.mjs +0 -109
- package/capabilities/oats-okf/lib/config.mjs +0 -124
- package/capabilities/oats-okf/lib/consult.mjs +0 -518
- package/capabilities/oats-okf/lib/harvest-status.mjs +0 -88
- package/capabilities/oats-okf/lib/harvest-switch.mjs +0 -94
- package/capabilities/oats-okf/lib/inspection.mjs +0 -119
- package/capabilities/oats-okf/lib/invocation-context.mjs +0 -111
- package/capabilities/oats-okf/lib/invocation-shape.mjs +0 -135
- package/capabilities/oats-okf/lib/io.mjs +0 -118
- package/capabilities/oats-okf/lib/migration.mjs +0 -137
- package/capabilities/oats-okf/lib/okf-validate.mjs +0 -123
- package/capabilities/oats-okf/lib/portable-binding.mjs +0 -199
- package/capabilities/oats-okf/lib/source-contract.mjs +0 -46
- package/capabilities/oats-okf/lib/sources.mjs +0 -424
- package/capabilities/oats-okf/lib/stores.mjs +0 -473
- package/capabilities/oats-okf/lib/worker.mjs +0 -497
- package/capabilities/oats-okf/oats.json +0 -148
- package/capabilities/oats-okf/schemas/okf-base.schema.json +0 -46
- package/capabilities/oats-okf/schemas/okf-bindings.schema.json +0 -112
- package/capabilities/oats-okf/schemas/okf-portable-declaration.schema.json +0 -87
- package/capabilities/oats-okf/schemas/okf-portable-payload.schema.json +0 -113
- package/capabilities/oats-okf/schemas/okf-soul.schema.json +0 -37
- package/capabilities/oats-okf/skills/okf-consultation/SKILL.md +0 -144
- package/capabilities/oats-okf/skills/okf-consultation/references/consult.md +0 -86
- package/capabilities/oats-okf/skills/okf-instance-knowledge/SKILL.md +0 -104
- package/capabilities/oats-okf-harvest/bin/okf-harvest.mjs +0 -140
- package/capabilities/oats-okf-harvest/injects/harvester.md +0 -12
- package/capabilities/oats-okf-harvest/oats.json +0 -26
- package/capabilities/oats-okf-harvest/skills/knowledge-harvest/SKILL.md +0 -168
- package/capabilities/oats-okf-harvest/skills/knowledge-theory/SKILL.md +0 -192
- package/capabilities/oats-okf-harvest/skills/okf-authoring/SKILL.md +0 -151
- package/capabilities/oats-okf-harvest/skills/okf-authoring/scripts/okf-validate.mjs +0 -123
- package/capabilities/oats-okf-maintenance/bin/okf-maintenance.mjs +0 -170
- package/capabilities/oats-okf-maintenance/injects/maintainer.md +0 -12
- package/capabilities/oats-okf-maintenance/lib/provenance.mjs +0 -50
- package/capabilities/oats-okf-maintenance/oats.json +0 -21
- package/capabilities/oats-okf-maintenance/skills/knowledge-review/SKILL.md +0 -159
- package/capabilities/oats-okf-maintenance/skills/knowledge-theory/SKILL.md +0 -192
- package/capabilities/oats-okf-maintenance/skills/okf-authoring/SKILL.md +0 -151
- package/capabilities/oats-okf-maintenance/skills/okf-authoring/scripts/okf-validate.mjs +0 -123
- package/capabilities/oats-okf-maintenance/skills/okf-trigger-setup/SKILL.md +0 -146
- 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
|
@@ -1,102 +1,54 @@
|
|
|
1
1
|
# OATS v0.22.1
|
|
2
2
|
|
|
3
|
-
A
|
|
4
|
-
|
|
5
|
-
either reproduced during that run or found by the independent review that
|
|
6
|
-
preceded it, plus the golden fixtures that guard the kernel's outputs and a
|
|
7
|
-
release-workflow correction (a release with nothing to bump finishes rather
|
|
8
|
-
than fails). The Desktop compatibility band (`>=0.22.0 <0.23.0`) already
|
|
9
|
-
covers this kernel; no Desktop rebuild is needed.
|
|
3
|
+
A reliability release. The Desktop compatibility band (`>=0.22.0 <0.23.0`)
|
|
4
|
+
already covers this kernel; no Desktop rebuild is needed.
|
|
10
5
|
|
|
11
6
|
## Fixes
|
|
12
7
|
|
|
13
|
-
- **`oats create` in a fresh scope no longer crashes.**
|
|
14
|
-
|
|
15
|
-
`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
credentials are touched, and unresolvable cleanup retains the home with
|
|
29
|
-
its receipt for a retryable `oats retire`. Six fault-injection tests cover
|
|
30
|
-
the paths.
|
|
31
|
-
- **The turn record's stream lock is ownership-safe and bounded.** A late
|
|
32
|
-
contender could judge a live holder's lock stale by age and enter the same
|
|
33
|
-
critical section, and the old holder then unlinked whatever lock was in
|
|
34
|
-
place. The lock now carries an owner token; staleness is proven from the
|
|
35
|
-
holder's liveness, with age only as the fallback for a foreign-host or
|
|
36
|
-
tokenless lock; release removes only a lock the releaser owns; and every
|
|
37
|
-
failed acquire iteration passes one deadline check, so an unreadable lock
|
|
38
|
-
or a lock that cannot be removed fails with the underlying code and path
|
|
39
|
-
instead of spinning forever. Known limit, documented: a pid reused after a
|
|
40
|
-
reboot makes an abandoned lock read as held until an operator removes it.
|
|
41
|
-
- **README claims match the implementation.** Native captured turns are
|
|
8
|
+
- **`oats create` in a fresh scope no longer crashes.** It bootstraps the
|
|
9
|
+
roster root at the enclosing repository and reports it (`agentsRoot` in
|
|
10
|
+
`--json`); the `mkdir agents` workaround is no longer needed.
|
|
11
|
+
- **Spawn preflights executables and compensates every failure.** The runtime
|
|
12
|
+
binary, tmux (when launching), and the task input are checked before any
|
|
13
|
+
mutation. After the spawn hooks, one compensation path runs retire hooks,
|
|
14
|
+
removes and verifies Git topology, stops any created window, and retains the
|
|
15
|
+
home with its receipt for a retryable `oats retire` when cleanup cannot
|
|
16
|
+
finish.
|
|
17
|
+
- **The turn record's stream lock is ownership-safe and bounded.** The lock
|
|
18
|
+
carries an owner token, staleness is judged from the holder's liveness, only
|
|
19
|
+
the owner releases it, and acquisition has a deadline. Known limit: a pid
|
|
20
|
+
reused after a reboot makes an abandoned lock read as held until an operator
|
|
21
|
+
removes it.
|
|
22
|
+
- **README claims match the implementation.** Captured turns are
|
|
42
23
|
content-addressed, not signed; projected aweb mail and chat keep their
|
|
43
|
-
original signatures
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
version numbers but differed from the published payloads; the bundled
|
|
50
|
-
`oats.okf` still imported kernel internals and shipped an older harvester
|
|
51
|
-
layout. All six are now byte-identical to the tagged payloads (`oats.okf`
|
|
52
|
-
1.4.1, `oats.aweb` 1.8.0, `oats.jira` 1.0.0, `oats.linear` 1.0.0,
|
|
53
|
-
`oats.authoring` 1.0.0, `oats.review` 1.2.0 from `oats.dev` 1.0.0). Two
|
|
54
|
-
new tests guard it: no file under `capabilities/` may name kernel internals
|
|
55
|
-
or shell out to `oats root`, and every bundled manifest must carry the
|
|
56
|
-
version the catalog pins. The clean-room smoke asserts the same pin before
|
|
57
|
-
wrapping the bundled package, so it now proves the released package and
|
|
58
|
-
kernel combination. The bundled `oats.linear` README and test moved with
|
|
59
|
-
their package.
|
|
24
|
+
original signatures.
|
|
25
|
+
- **Bundled capabilities match their published tags.** The bundled official
|
|
26
|
+
packages are byte-identical to the tagged payloads (`oats.okf` 1.4.1,
|
|
27
|
+
`oats.aweb` 1.8.0, `oats.jira` 1.0.0, `oats.linear` 1.0.0, `oats.authoring`
|
|
28
|
+
1.0.0, `oats.review` 1.2.0 from `oats.dev` 1.0.0), and tests enforce the pin.
|
|
29
|
+
- A release with nothing to bump now finishes instead of failing.
|
|
60
30
|
|
|
61
31
|
## Documentation
|
|
62
32
|
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- A Claude Code worker's first launch can stop on Claude's folder-trust
|
|
83
|
-
prompt and on the aweb channel plugin's development-channels
|
|
84
|
-
confirmation; attach to the tmux session and answer them. A created
|
|
85
|
-
window is not evidence that the agent has started.
|
|
86
|
-
- Retiring an instance reports its aweb identity deleted while the server
|
|
87
|
-
keeps the alias (aweb-aaum.6). Local cleanup is complete; the name cannot
|
|
88
|
-
be reused until an administrator removes the alias. Use a fresh
|
|
89
|
-
`--purpose` for successors.
|
|
90
|
-
- The OKF harvester's default model assumes the `github-copilot` provider;
|
|
91
|
-
set `harvest-model` under the knowledge layer settings to a model your Pi
|
|
92
|
-
can run. A package change is proposed.
|
|
93
|
-
- `oats spawn` resolves the roster root from the working directory, so from
|
|
94
|
-
a workspace root pass `--dir <repo>` even though `oats status --team`
|
|
95
|
-
lists the souls.
|
|
96
|
-
- `oats status` lists the retirement-baselines directory as a phantom
|
|
97
|
-
instance, retire leaves that baseline file behind, and `oats retire --json`
|
|
98
|
-
prints a bare object rather than the schema-v1 envelope. Tracked; each
|
|
99
|
-
changes a golden fixture deliberately.
|
|
33
|
+
- [Run your first OATS team](../first-team.md): the tested path from install
|
|
34
|
+
to a task, harvest, retirement, and a successor.
|
|
35
|
+
- [Migration from OAS](https://github.com/awebai/oats/blob/v0.22.1/docs/migration-from-oas.md)
|
|
36
|
+
is rewritten for the published packages and catalog aliases.
|
|
37
|
+
|
|
38
|
+
## Known limits in this release
|
|
39
|
+
|
|
40
|
+
- The `oats.okf` 1.4.1 harvester runs in Pi, so a Pi-runnable model is needed
|
|
41
|
+
even for Claude Code workers; its default model assumes the `github-copilot`
|
|
42
|
+
provider, so set `harvest-model` to a model your Pi can run.
|
|
43
|
+
- A Claude Code worker's first launch can stop on the folder-trust prompt and
|
|
44
|
+
on the aweb channel plugin's confirmation; attach to the tmux session and
|
|
45
|
+
answer them.
|
|
46
|
+
- Retiring an instance leaves its aweb alias reserved on the server; use a
|
|
47
|
+
fresh `--purpose` for successors.
|
|
48
|
+
- From a workspace root, `oats spawn` needs `--dir <repo>`.
|
|
49
|
+
- `oats status` lists the retirement-baselines directory as an instance,
|
|
50
|
+
retire leaves that baseline file behind, and `oats retire --json` prints a
|
|
51
|
+
bare object rather than the schema-v1 envelope.
|
|
100
52
|
|
|
101
53
|
## Install
|
|
102
54
|
|
|
@@ -1,49 +1,3 @@
|
|
|
1
1
|
# OATS v0.22.11
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
the CLI and from Desktop, including while the GUI is closed.
|
|
5
|
-
|
|
6
|
-
## Schedules (kernel)
|
|
7
|
-
|
|
8
|
-
`oats schedule` keeps a per-workspace `oats-schedules.json` of jobs of three
|
|
9
|
-
kinds: **spawn** launches a soul as a fresh disposable instance with a task,
|
|
10
|
-
**command** runs an `oats` command in a directory (a harvest, for example),
|
|
11
|
-
and **wake** starts a stopped instance if needed and sends it a message
|
|
12
|
-
through its terminal. Cron expressions are five-field with an IANA time
|
|
13
|
-
zone, evaluated by croner; missed minutes are skipped, never caught up.
|
|
14
|
-
|
|
15
|
-
One host timer (`oats schedule host install`: a launchd agent or a systemd
|
|
16
|
-
user timer) ticks every registered workspace once a minute under a shared
|
|
17
|
-
limit on concurrent scheduled launches. A remote workspace's schedules live
|
|
18
|
-
and run on that server; `--server` routes every subcommand there.
|
|
19
|
-
`oats spawn --wake-file <json>` binds a wake schedule to the new home.
|
|
20
|
-
|
|
21
|
-
Outcomes are what the kernel observed, not a claim that a task succeeded:
|
|
22
|
-
launched, active, ended, stopped, launch-failed, delivered, started,
|
|
23
|
-
skipped, and unknown. A launch whose effects the kernel cannot confirm (a
|
|
24
|
-
timed-out or envelope-less command, an incomplete rollback) keeps its slot
|
|
25
|
-
as unknown until `oats schedule reconcile <id>` adopts a named receipt or
|
|
26
|
-
the operator clears it with `--clear`. A wake's launch slot follows the
|
|
27
|
-
runtime through the session start receipt, so a persistent home whose
|
|
28
|
-
process exited frees the slot. Locks are never reclaimed automatically;
|
|
29
|
-
an unreadable or dead owner names the directory to remove.
|
|
30
|
-
`oats version --json` advertises feature `schedule` and `scheduleApi: 1`.
|
|
31
|
-
See docs/schedules.md.
|
|
32
|
-
|
|
33
|
-
## Schedules (Desktop)
|
|
34
|
-
|
|
35
|
-
A **Schedules** view per workspace: create, edit, pause, run now, check run
|
|
36
|
-
state and delete jobs through a single JSON spec; the Soul roster's
|
|
37
|
-
**Schedule…** preselects the soul; the spawn dialog offers a recurring wake
|
|
38
|
-
for the new agent, forwarded inline to a remote server. Mutations require
|
|
39
|
-
an explicit workspace. The reconcile result and its recovery instructions
|
|
40
|
-
stay visible across polling. **Enable host scheduler** installs the timer
|
|
41
|
-
and registers the workspace. See docs/desktop.md.
|
|
42
|
-
|
|
43
|
-
## Tests
|
|
44
|
-
|
|
45
|
-
The kernel adds `test/schedule.test.mjs` (fixture homes, injected
|
|
46
|
-
spawn/start/input, dummy commands, fixture-only host unit paths) and
|
|
47
|
-
`test/schedule-session.test.mjs`, which drives a real private tmux socket
|
|
48
|
-
to prove literal delivery, same-minute deduplication and slot release when
|
|
49
|
-
a runtime stops. Nothing in the suites touches a live timer.
|
|
3
|
+
Tagged, not published; its changes shipped in v0.22.12.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.12
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
are fixed here.
|
|
3
|
+
Ships the content of the unpublished v0.22.11 tag, with its failing test
|
|
4
|
+
fixtures fixed.
|
|
6
5
|
|
|
7
6
|
Schedules: cron-driven agent work that runs on the execution host, from
|
|
8
7
|
the CLI and from Desktop, including while the GUI is closed.
|
|
@@ -32,7 +31,7 @@ runtime through the session start receipt, so a persistent home whose
|
|
|
32
31
|
process exited frees the slot. Locks are never reclaimed automatically;
|
|
33
32
|
an unreadable or dead owner names the directory to remove.
|
|
34
33
|
`oats version --json` advertises feature `schedule` and `scheduleApi: 1`.
|
|
35
|
-
See
|
|
34
|
+
See [Schedules](../schedules.md).
|
|
36
35
|
|
|
37
36
|
## Schedules (Desktop)
|
|
38
37
|
|
|
@@ -42,12 +41,4 @@ state and delete jobs through a single JSON spec; the Soul roster's
|
|
|
42
41
|
for the new agent, forwarded inline to a remote server. Mutations require
|
|
43
42
|
an explicit workspace. The reconcile result and its recovery instructions
|
|
44
43
|
stay visible across polling. **Enable host scheduler** installs the timer
|
|
45
|
-
and registers the workspace. See
|
|
46
|
-
|
|
47
|
-
## Tests
|
|
48
|
-
|
|
49
|
-
The kernel adds `test/schedule.test.mjs` (fixture homes, injected
|
|
50
|
-
spawn/start/input, dummy commands, fixture-only host unit paths) and
|
|
51
|
-
`test/schedule-session.test.mjs`, which drives a real private tmux socket
|
|
52
|
-
to prove literal delivery, same-minute deduplication and slot release when
|
|
53
|
-
a runtime stops. Nothing in the suites touches a live timer.
|
|
44
|
+
and registers the workspace. See [the Desktop guide](../desktop.md).
|
|
@@ -1,44 +1,3 @@
|
|
|
1
1
|
# OATS v0.22.13
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
attachments reach the agent as a path, never as typed input.
|
|
5
|
-
|
|
6
|
-
## Attachments (kernel)
|
|
7
|
-
|
|
8
|
-
`oats session upload --file <local> --home <abs>` copies a file into the
|
|
9
|
-
instance home's private `.oats-attachments/` directory (0700, file 0600,
|
|
10
|
-
`name-2` when the name is taken) and answers `{path, bytes, sha256}`. With
|
|
11
|
-
`--server <id> --instance <name>` (or `--home`), the same saved route as
|
|
12
|
-
`session attach` is resolved, the remote must advertise the new
|
|
13
|
-
`session-upload` feature, and the bytes travel on ssh stdin into
|
|
14
|
-
`oats session receive --home <abs> --name <file>` on the execution host,
|
|
15
|
-
which reads stdin event-driven, enforces the 64 MiB kernel bound before
|
|
16
|
-
writing anything, allocates the destination exclusively so simultaneous
|
|
17
|
-
uploads never overwrite each other, refuses a symlinked or redirected
|
|
18
|
-
attachments directory, and reports the path only after the bytes are
|
|
19
|
-
synced. The local side refuses the answer unless size and sha256 equal the
|
|
20
|
-
local file's. Each side buffers the whole file up to the bound; a remote
|
|
21
|
-
file is never a local path over SSH. Upload never sends terminal input.
|
|
22
|
-
`oats version --json` lists `session-upload` in `remote` and `features`.
|
|
23
|
-
The CLI's temporary tmux viewer session hides its status line; the agents'
|
|
24
|
-
session and the operator's tmux settings are untouched.
|
|
25
|
-
|
|
26
|
-
## Desktop
|
|
27
|
-
|
|
28
|
-
Drop files or paste clipboard images onto an agent terminal: the paths are
|
|
29
|
-
inserted into the draft with bracketed paste and no Enter, local files in
|
|
30
|
-
place, clipboard images saved privately under the app's data directory, and
|
|
31
|
-
remote terminals uploaded through the installed CLI first (both CLIs must
|
|
32
|
-
advertise `session-upload`; a failed transfer leaves the draft unchanged and
|
|
33
|
-
never inserts a local path). Up to 16 files and 25 MB per drop. The viewer's
|
|
34
|
-
tmux status bar is hidden. Ctrl+Tab stays tab navigation inside terminals
|
|
35
|
-
on macOS while other Ctrl chords stay with the program. An already-open
|
|
36
|
-
terminal fills an empty split without a second attach; separators resize by
|
|
37
|
-
pointer or keyboard. Guide: docs/desktop.md, "Attach files and screenshots".
|
|
38
|
-
|
|
39
|
-
## Design
|
|
40
|
-
|
|
41
|
-
docs/design/2026-09-07-architecture-reassessment.md records the direction:
|
|
42
|
-
keep the package and capability-layer machinery, fix the places where the
|
|
43
|
-
CLI and GUI bypass it, one session contract with both tmux and Herdr
|
|
44
|
-
adapters until Herdr is qualified, and the Desktop correction sequence.
|
|
3
|
+
Tagged, not published; its changes shipped in v0.22.14.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.14
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
test now checks the behaviour instead of the source text.
|
|
3
|
+
Ships the content of the unpublished v0.22.13 tag, with its failing Desktop
|
|
4
|
+
test fixed.
|
|
6
5
|
|
|
7
6
|
Terminal essentials for the Desktop and one kernel operation behind them:
|
|
8
7
|
attachments reach the agent as a path, never as typed input.
|
|
@@ -38,11 +37,4 @@ never inserts a local path). Up to 16 files and 25 MB per drop. The viewer's
|
|
|
38
37
|
tmux status bar is hidden. Ctrl+Tab stays tab navigation inside terminals
|
|
39
38
|
on macOS while other Ctrl chords stay with the program. An already-open
|
|
40
39
|
terminal fills an empty split without a second attach; separators resize by
|
|
41
|
-
pointer or keyboard.
|
|
42
|
-
|
|
43
|
-
## Design
|
|
44
|
-
|
|
45
|
-
docs/design/2026-09-07-architecture-reassessment.md records the direction:
|
|
46
|
-
keep the package and capability-layer machinery, fix the places where the
|
|
47
|
-
CLI and GUI bypass it, one session contract with both tmux and Herdr
|
|
48
|
-
adapters until Herdr is qualified, and the Desktop correction sequence.
|
|
40
|
+
pointer or keyboard. See [Attach files and screenshots](../desktop.md#attach-files-and-screenshots).
|
|
@@ -1,48 +1,3 @@
|
|
|
1
1
|
# OATS v0.22.15
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
one kernel contract, and knowledge providers declare what they can do.
|
|
5
|
-
|
|
6
|
-
## Provider operations and inspection (kernel)
|
|
7
|
-
|
|
8
|
-
`oats inspect --json` answers everything a GUI needs in one envelope for a
|
|
9
|
-
scope, a selected soul or a running home: souls with runtime defaults,
|
|
10
|
-
editability and instructions; installed capabilities with health from the
|
|
11
|
-
package engine, separately from their effective activation, provenance and
|
|
12
|
-
settings; effective layer bindings; and the operations each provider
|
|
13
|
-
declares, with availability and the reason when unavailable. For a home the
|
|
14
|
-
answer is its captured bindings (with current manifests and trust), the live
|
|
15
|
-
config beside it, and the drift between them. Same-named souls in member
|
|
16
|
-
repositories are addressed by name plus agents root; a home selects its own
|
|
17
|
-
soul under its own root.
|
|
18
|
-
|
|
19
|
-
`oats operation run <layer>:<name>` resolves the provider that fills a layer
|
|
20
|
-
for a home or a soul, checks declaration, trust and host requirements, runs
|
|
21
|
-
the provider's own command in the right place with the right identity, and
|
|
22
|
-
relays its receipt; a view answers labeled documents. Unconfirmed outcomes
|
|
23
|
-
carry what was observed and a scheduled operation keeps its slot until
|
|
24
|
-
reconciled. Manifests declare `operations`. Schedules gain kind
|
|
25
|
-
`operation`. `oats use --json` answers receipts and `--inherit` returns a
|
|
26
|
-
level to inheritance; `oats soul set` edits an editable soul's defaults and
|
|
27
|
-
instructions in place. All four route to a registered server through the
|
|
28
|
-
saved route; the probe advertises `operations` and `operationsApi: 1`. The
|
|
29
|
-
retire receipt no longer implies a harvest. See
|
|
30
|
-
docs/design/operations-contract.md.
|
|
31
|
-
|
|
32
|
-
## oats.okf 1.6.0
|
|
33
|
-
|
|
34
|
-
The official knowledge provider declares `inspect` (a view of STATE.md,
|
|
35
|
-
log.md and pending notes) and `harvest` (the existing action); the catalog
|
|
36
|
-
pins v1.6.0. Existing scopes keep their locked 1.5.2 until their owners
|
|
37
|
-
update them; the GUI then shows no operations for those providers, which is
|
|
38
|
-
the truthful state.
|
|
39
|
-
|
|
40
|
-
## Desktop
|
|
41
|
-
|
|
42
|
-
Souls & capabilities replaces the launch-centric roster: select a soul to
|
|
43
|
-
inspect it, Launch and Schedule are explicit, defaults and instructions are
|
|
44
|
-
editable where the kernel says so, installed capabilities are shown apart
|
|
45
|
-
from activation with enable, disable and inherit at an exact scope, an
|
|
46
|
-
instance's menu opens Knowledge & capabilities, provider views render as
|
|
47
|
-
text, and schedules run declared provider operations. See
|
|
48
|
-
docs/design/2026-09-07-desktop-souls-capabilities.md.
|
|
3
|
+
Tagged, not published; its changes shipped in v0.22.16.
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.16
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
removed `harvested` field, and a Desktop harvest fixture predating the
|
|
6
|
-
operations gate) before anything was published; only tests changed.
|
|
3
|
+
Ships the content of the unpublished v0.22.15 tag, with its failing test
|
|
4
|
+
data fixed.
|
|
7
5
|
|
|
8
6
|
Souls and capabilities become something you inspect and manage, through
|
|
9
7
|
one kernel contract, and knowledge providers declare what they can do.
|
|
@@ -31,8 +29,8 @@ reconciled. Manifests declare `operations`. Schedules gain kind
|
|
|
31
29
|
level to inheritance; `oats soul set` edits an editable soul's defaults and
|
|
32
30
|
instructions in place. All four route to a registered server through the
|
|
33
31
|
saved route; the probe advertises `operations` and `operationsApi: 1`. The
|
|
34
|
-
retire receipt no longer implies a harvest. See
|
|
35
|
-
docs/design/operations-contract.md.
|
|
32
|
+
retire receipt no longer implies a harvest. See the
|
|
33
|
+
[operations contract](https://github.com/awebai/oats/blob/7838d3ca70772f63854b198601fbc45437c2e999/docs/design/operations-contract.md).
|
|
36
34
|
|
|
37
35
|
## oats.okf 1.6.0
|
|
38
36
|
|
|
@@ -49,5 +47,5 @@ inspect it, Launch and Schedule are explicit, defaults and instructions are
|
|
|
49
47
|
editable where the kernel says so, installed capabilities are shown apart
|
|
50
48
|
from activation with enable, disable and inherit at an exact scope, an
|
|
51
49
|
instance's menu opens Knowledge & capabilities, provider views render as
|
|
52
|
-
text, and schedules run declared provider operations. See
|
|
53
|
-
docs/design/2026-09-07-desktop-souls-capabilities.md.
|
|
50
|
+
text, and schedules run declared provider operations. See the
|
|
51
|
+
[design note](https://github.com/awebai/oats/blob/7838d3ca70772f63854b198601fbc45437c2e999/docs/design/2026-09-07-desktop-souls-capabilities.md).
|
|
@@ -1,101 +1,3 @@
|
|
|
1
1
|
# OATS v0.22.18
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
**Start…** for stopped instances and **Restart with…** for running
|
|
5
|
-
instances, with harness, model, permissions and named launch
|
|
6
|
-
configurations. The kernel records what each home was started with and
|
|
7
|
-
starts it again the same way.
|
|
8
|
-
|
|
9
|
-
## Named launch configurations
|
|
10
|
-
|
|
11
|
-
Define a reusable configuration in a scope's `oats-config.yaml`, or use
|
|
12
|
-
**Manage launch configurations** in Desktop. A configuration chooses `pi`,
|
|
13
|
-
`claude` or `codex`, an optional executable or wrapper, literal arguments,
|
|
14
|
-
environment values or references, a default model and the shared `yolo`
|
|
15
|
-
setting.
|
|
16
|
-
|
|
17
|
-
```yaml
|
|
18
|
-
launch-configs:
|
|
19
|
-
codex-personal:
|
|
20
|
-
runtime: codex
|
|
21
|
-
args: ["--profile", "personal"]
|
|
22
|
-
yolo: true
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Arguments are passed literally; native configuration files and account
|
|
26
|
-
settings stay under the harness's control. For environment credentials use
|
|
27
|
-
a reference such as `API_KEY: {fromEnv: PERSONAL_KEY}`: the execution host
|
|
28
|
-
resolves it each time the agent starts. The recorded recipe, receipts,
|
|
29
|
-
previews, roster answers and spawn answers do not expose the value (the
|
|
30
|
-
launch itself and its transport necessarily use it). A configuration cannot name the kernel's own launch
|
|
31
|
-
environment or override environment a capability owns.
|
|
32
|
-
|
|
33
|
-
An existing instance keeps its recorded launch configuration even if the
|
|
34
|
-
scope's definition changes or disappears. Select a named configuration
|
|
35
|
-
explicitly to apply its current definition. Changing only the model or
|
|
36
|
-
permissions keeps the rest of the recorded invocation; choosing a harness
|
|
37
|
-
without a configuration starts that harness's defaults, with no model
|
|
38
|
-
carried across harnesses.
|
|
39
|
-
|
|
40
|
-
`oats launch-config list | set | remove | preview` author and inspect
|
|
41
|
-
configurations; `oats spawn --launch-config` starts a new instance under
|
|
42
|
-
one; a soul may name a default (`launch-config:` in soul.yaml,
|
|
43
|
-
`oats soul set --launch-config`).
|
|
44
|
-
|
|
45
|
-
## Restart in place
|
|
46
|
-
|
|
47
|
-
`oats session start` with a selection validates the requested launch
|
|
48
|
-
(recipe, executable, references, capability preparation, runtime packages)
|
|
49
|
-
and starts a stopped instance; it never stops a running harness. Only
|
|
50
|
-
`oats session restart` does: it runs the same checks first, then sends
|
|
51
|
-
SIGTERM to the harness under the pane's launcher and waits a bounded time
|
|
52
|
-
for it to end; it does not escalate to a forced kill and refuses to launch
|
|
53
|
-
a second harness if it cannot confirm the first has stopped, reporting what
|
|
54
|
-
was signalled and observed. The instance keeps its home, identity, work and
|
|
55
|
-
notes; OATS does not transfer a native conversation between harnesses.
|
|
56
|
-
Save work before restarting.
|
|
57
|
-
|
|
58
|
-
Capabilities take part through what was captured for the home: a capability
|
|
59
|
-
may declare a `launch` hook to prepare another harness (under the settings
|
|
60
|
-
captured at spawn, with the scope's current manifest and trust); a
|
|
61
|
-
capability that contributed harness-specific arguments and cannot prepare
|
|
62
|
-
the new one refuses the switch. Homes that predate launch recipes are
|
|
63
|
-
converted narrowly from their recorded command when a selection asks for
|
|
64
|
-
it; unrecognized arguments are refused by name.
|
|
65
|
-
|
|
66
|
-
One limitation, stated rather than hidden: a runtime-package requirement is
|
|
67
|
-
verified with the package manager's controlled list command under the
|
|
68
|
-
launch's environment and executable, which cannot carry a configuration's
|
|
69
|
-
arguments. When such a requirement applies and the configuration passes
|
|
70
|
-
arguments, the launch is not reported verified (`E_LAUNCH_PROBE_UNSUPPORTED`):
|
|
71
|
-
put native configuration a required package must see in a wrapper
|
|
72
|
-
executable or the environment.
|
|
73
|
-
|
|
74
|
-
```sh
|
|
75
|
-
oats launch-config list --dir /path/to/team
|
|
76
|
-
oats launch-config preview --home /path/to/instance --runtime codex --json
|
|
77
|
-
oats session restart --home /path/to/instance --launch-config codex-personal
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Local tmux and Herdr sessions use the same lifecycle operations. Registered
|
|
81
|
-
servers support configuration management and start/restart choices through
|
|
82
|
-
their installed OATS CLI (probe tokens `launch-config`, `session-restart`);
|
|
83
|
-
existing remote homes keep their saved route, and an older kernel is
|
|
84
|
-
refused after the compatibility probe, before any mutation or stop.
|
|
85
|
-
|
|
86
|
-
## Desktop fixes
|
|
87
|
-
|
|
88
|
-
Tabs from other workspaces stay hidden. Instance action menus are positioned
|
|
89
|
-
correctly when opened and remain stable through roster refreshes. Failed
|
|
90
|
-
launch preflight checks are shown in the invocation preview, and an accepted
|
|
91
|
-
launch is not presented as a running agent until the terminal is observed.
|
|
92
|
-
|
|
93
|
-
## Also in this release
|
|
94
|
-
|
|
95
|
-
- Capture lock (source only; the installed capture service is unchanged):
|
|
96
|
-
nonce-checked ownership, cleanup of a failed initialization that respects
|
|
97
|
-
a replacement, release outcomes reported as observed, and the privacy
|
|
98
|
-
loader's exit no longer leaves a lock behind.
|
|
99
|
-
- A design proposal for managing agents from an iPhone over Tailscale
|
|
100
|
-
(docs/design/2026-09-07-mobile-agent-management-proposal.md); no
|
|
101
|
-
implementation ships.
|
|
3
|
+
Tagged, not published; its changes shipped in v0.22.19.
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.19
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
the kernel directly resolved the real harness binary on the test process
|
|
6
|
-
PATH, one launch test spawned zsh, which the runner does not install, and
|
|
7
|
-
one capture-lock test where Linux reused the inode of an unlinked
|
|
8
|
-
directory). The tag stays fixed and unpublished. This release carries the
|
|
9
|
-
same content with the corrections below.
|
|
3
|
+
Ships the content of the unpublished v0.22.18 tag, with fixes for tests that
|
|
4
|
+
failed on Linux.
|
|
10
5
|
|
|
11
6
|
Choose how an agent runs without replacing its home. Desktop offers
|
|
12
7
|
**Start…** for stopped instances and **Restart with…** for running
|
|
@@ -71,7 +66,7 @@ the new one refuses the switch. Homes that predate launch recipes are
|
|
|
71
66
|
converted narrowly from their recorded command when a selection asks for
|
|
72
67
|
it; unrecognized arguments are refused by name.
|
|
73
68
|
|
|
74
|
-
|
|
69
|
+
Known limit: a runtime-package requirement is
|
|
75
70
|
verified with the package manager's controlled list command under the
|
|
76
71
|
launch's environment and executable, which cannot carry a configuration's
|
|
77
72
|
arguments. When such a requirement applies and the configuration passes
|
|
@@ -107,9 +102,3 @@ launch is not presented as a running agent until the terminal is observed.
|
|
|
107
102
|
is held open until its owner record is written or its cleanup finishes,
|
|
108
103
|
preventing its inode from being reused during cleanup; a replacement
|
|
109
104
|
directory is left alone.
|
|
110
|
-
- Test fixtures: the launch tests resolve their fake harness binaries on the
|
|
111
|
-
test process PATH and exercise only the shells the host installs; no
|
|
112
|
-
kernel change.
|
|
113
|
-
- A design proposal for managing agents from an iPhone over Tailscale
|
|
114
|
-
(docs/design/2026-09-07-mobile-agent-management-proposal.md); no
|
|
115
|
-
implementation ships.
|
|
@@ -30,14 +30,9 @@ Register an existing SSH host with `oats server add`, then use `--server`
|
|
|
30
30
|
on spawn, status, retire and session inspect/attach. Saved routes keep
|
|
31
31
|
retirement and attachment available if a registration changes. SSH retains
|
|
32
32
|
responsibility for keys and host verification. Desktop includes a server
|
|
33
|
-
selector and the remote terminal adapter; remote
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Live checks covered native Codex launch and subsequent terminal input on
|
|
37
|
-
both local backends. A real remote Claude session accepted input through
|
|
38
|
-
the Desktop terminal helper, survived viewer closure, and ended its viewer
|
|
39
|
-
on retirement. Herdr roster checks include public IDs beyond the ninth
|
|
40
|
-
workspace. These checks do not establish reboot recovery.
|
|
33
|
+
selector and the remote terminal adapter; it does not show remote rosters in
|
|
34
|
+
this release, so use the CLI to attach to a remote instance. Recovery after a
|
|
35
|
+
host reboot is not supported.
|
|
41
36
|
|
|
42
37
|
## Learning and retirement
|
|
43
38
|
|
|
@@ -56,14 +51,10 @@ as instances. Retiring an instance whose work tree is large no longer fails with
|
|
|
56
51
|
now runs with a buffer far above Node's 1 MiB default (found on a real
|
|
57
52
|
~9,500-file tree).
|
|
58
53
|
|
|
59
|
-
## Package versions and
|
|
54
|
+
## Package versions and known limits
|
|
60
55
|
|
|
61
56
|
The catalog pins `oats.okf` v1.5.0 and `oats.aweb` v1.9.0. The latter updates
|
|
62
57
|
native Codex's messaging instructions; its Pi and Claude channel delivery
|
|
63
58
|
is unchanged. Native Codex has no automatic aweb delivery in this release.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
handover and supported standing-seat reboot recovery are still being
|
|
67
|
-
completed. Hosted temporary aliases also remain non-reusable until aweb's
|
|
68
|
-
certificate-retirement fix ships; use fresh purpose names. A configured
|
|
69
|
-
team or successful spawn does not mean its standing agents have migrated.
|
|
59
|
+
Hosted temporary aliases are not reusable after retirement; use fresh purpose
|
|
60
|
+
names.
|
|
@@ -73,7 +73,6 @@ reusable yet.
|
|
|
73
73
|
`features` list carries `retire-home`.
|
|
74
74
|
- `oats retire --json` keeps stdout to the envelope (the cross-repo note goes
|
|
75
75
|
to stderr).
|
|
76
|
-
- Goldens carry `environmentNamespaces` in the resolved capability projection.
|
|
77
76
|
- Viewers for remote instances resolve by home: `session inspect|attach
|
|
78
77
|
--server <id> --home <remote home>` uses the saved route that owns the home
|
|
79
78
|
and refuses a name paired with a different one.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.4
|
|
2
2
|
|
|
3
3
|
Two fixes found by running the wake broker and the record-fed harvester as
|
|
4
|
-
|
|
4
|
+
host services, and the oats.aweb 1.10.1 floor.
|
|
5
5
|
|
|
6
6
|
## Session commands under a service locale
|
|
7
7
|
|
|
@@ -25,16 +25,3 @@ Session-mode delivery now requires an installed Claude Code channel plugin
|
|
|
25
25
|
to be `aweb-channel` 1.7.9 or later (as it already required `@awebai/pi`
|
|
26
26
|
0.3.10): an older plugin starts its own channel server beside the wake
|
|
27
27
|
broker and can fetch a message before the broker delivers it.
|
|
28
|
-
|
|
29
|
-
## Managed operating-lead soul
|
|
30
|
-
|
|
31
|
-
`agents/lead/soul` is tracked: the operating lead's role instructions and
|
|
32
|
-
two knowledge notes (runtime and messaging ownership; where rollout state
|
|
33
|
-
lives), ready for a retained-identity binding at its cutover.
|
|
34
|
-
|
|
35
|
-
## Also
|
|
36
|
-
|
|
37
|
-
- `docs/operating-team-migration.md` records the published 0.22.3 rollout and
|
|
38
|
-
the live wake-broker acceptance on Claude, Codex and Pi.
|
|
39
|
-
- oats.okf 1.5.1 (harvest-runtime, promotion exclusions, replan detector) is
|
|
40
|
-
not in this release; it ships when its independent review completes.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# OATS v0.22.5
|
|
2
2
|
|
|
3
|
-
A small release: the knowledge package 1.5.1 pin
|
|
4
|
-
package lock from the CLI
|
|
5
|
-
rollouts.
|
|
3
|
+
A small release: the knowledge package 1.5.1 pin and a way to move a pinned
|
|
4
|
+
package lock from the CLI.
|
|
6
5
|
|
|
7
6
|
## Bundled: oats.okf 1.5.1
|
|
8
7
|
|
|
@@ -25,12 +24,3 @@ invalidated, then `oats trust`). A plain `oats update <package>` keeps an
|
|
|
25
24
|
explicit selector, as before, and `--to` without a package is refused rather
|
|
26
25
|
than falling through to the kernel self-update (`oats update` with no
|
|
27
26
|
package).
|
|
28
|
-
|
|
29
|
-
## Also
|
|
30
|
-
|
|
31
|
-
- The managed oats coordinator soul (`agents/oats-coordinator/soul`) is
|
|
32
|
-
tracked, with playbooks for the release lane, payload publication and
|
|
33
|
-
review routing.
|
|
34
|
-
- `docs/operating-team-migration.md` records the installed 0.22.4 rollout,
|
|
35
|
-
the completed record-fed and note-fed harvest cycles, and the standing
|
|
36
|
-
seats prepared for cutover.
|
|
@@ -48,6 +48,3 @@ leaving a bound alias behind, retirement reads the alias from the home's
|
|
|
48
48
|
## Also
|
|
49
49
|
|
|
50
50
|
- `oats use` from no binding writes a targeted binding with `global: false`.
|
|
51
|
-
- `docs/operating-team-migration.md` records the live rollout, the memory
|
|
52
|
-
incident and its mitigation, the serial launch constraint and the TSM
|
|
53
|
-
deployment hold.
|