@awebai/oats 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +380 -0
  3. package/bin/oats.mjs +3294 -0
  4. package/capabilities/oats-authoring/oats.json +12 -0
  5. package/capabilities/oats-aweb/bin/oats-aweb.mjs +297 -0
  6. package/capabilities/oats-aweb/injects/aweb.md +55 -0
  7. package/capabilities/oats-aweb/oats.json +47 -0
  8. package/capabilities/oats-aweb/package.json +20 -0
  9. package/capabilities/oats-jira/bin/oats-jira.mjs +40 -0
  10. package/capabilities/oats-jira/injects/jira.md +10 -0
  11. package/capabilities/oats-jira/oats.json +22 -0
  12. package/capabilities/oats-jira/package.json +25 -0
  13. package/capabilities/oats-jira/skills/jira-tasks/SKILL.md +176 -0
  14. package/capabilities/oats-linear/README.md +234 -0
  15. package/capabilities/oats-linear/bin/oats-linear-hook.mjs +32 -0
  16. package/capabilities/oats-linear/bin/oats-linear.mjs +344 -0
  17. package/capabilities/oats-linear/injects/linear.md +8 -0
  18. package/capabilities/oats-linear/oats.json +24 -0
  19. package/capabilities/oats-linear/package.json +29 -0
  20. package/capabilities/oats-linear/skills/linear-tasks/SKILL.md +217 -0
  21. package/capabilities/oats-linear/test/oats-linear.test.mjs +168 -0
  22. package/capabilities/oats-okf/agents/memory-harvest.md +25 -0
  23. package/capabilities/oats-okf/bin/oats-okf.mjs +283 -0
  24. package/capabilities/oats-okf/injects/okf.md +62 -0
  25. package/capabilities/oats-okf/oats.json +20 -0
  26. package/capabilities/oats-okf/package.json +22 -0
  27. package/capabilities/oats-okf/skills/memory-harvest/SKILL.md +100 -0
  28. package/capabilities/oats-okf/skills/okf/SKILL.md +107 -0
  29. package/capabilities/oats-okf/skills/okf/scripts/okf-validate.mjs +123 -0
  30. package/capabilities/oats-review/agents/reviewer/AGENTS.md +53 -0
  31. package/capabilities/oats-review/agents/reviewer/soul.yaml +6 -0
  32. package/capabilities/oats-review/injects/review.md +68 -0
  33. package/capabilities/oats-review/oats.json +10 -0
  34. package/capabilities/oats-review/skills/code-review/SKILL.md +44 -0
  35. package/capabilities/oats-review/skills/security-review/SKILL.md +59 -0
  36. package/docs/capabilities.md +505 -0
  37. package/docs/capability-manifest.schema.json +223 -0
  38. package/docs/configuration.md +482 -0
  39. package/docs/conventions.md +73 -0
  40. package/docs/design/desktop-ux-plan.md +362 -0
  41. package/docs/design/package-engine-contract.md +813 -0
  42. package/docs/design/package-runtime-api.md +414 -0
  43. package/docs/desktop-cli-api.md +89 -0
  44. package/docs/desktop-succession.md +51 -0
  45. package/docs/desktop.md +187 -0
  46. package/docs/implementation.md +282 -0
  47. package/docs/integrations.md +123 -0
  48. package/docs/knowledge-theory.md +97 -0
  49. package/docs/knowledge.md +139 -0
  50. package/docs/layers.md +110 -0
  51. package/docs/migration-from-oas.md +122 -0
  52. package/docs/oats-config.schema.json +140 -0
  53. package/docs/oats-lock.schema.json +175 -0
  54. package/docs/oats-package.schema.json +129 -0
  55. package/docs/packages.md +442 -0
  56. package/docs/release-lane.md +132 -0
  57. package/docs/release-notes/v0.18.2.md +79 -0
  58. package/docs/release-notes/v0.18.3.md +63 -0
  59. package/docs/release-notes/v0.18.4.md +65 -0
  60. package/docs/release-notes/v0.18.5.md +66 -0
  61. package/docs/release-notes/v0.18.6.md +87 -0
  62. package/docs/release-notes/v0.19.0.md +186 -0
  63. package/docs/release-notes/v0.19.1.md +24 -0
  64. package/docs/release-notes/v0.19.2.md +32 -0
  65. package/docs/release-notes/v0.19.3.md +16 -0
  66. package/docs/release-notes/v0.19.4.md +12 -0
  67. package/docs/release-notes/v0.20.0.md +89 -0
  68. package/docs/release-notes/v0.22.0.md +180 -0
  69. package/docs/souls-and-instances.md +344 -0
  70. package/injects/framework-workspace.md +7 -0
  71. package/injects/instance-boundary.md +43 -0
  72. package/injects/local-soul.md +19 -0
  73. package/injects/oats.md +11 -0
  74. package/injects/work-attached.md +16 -0
  75. package/injects/work-checkout.md +12 -0
  76. package/injects/work-workspace.md +22 -0
  77. package/injects/work-worktree.md +13 -0
  78. package/lib/core.mjs +6792 -0
  79. package/lib/packages.mjs +1375 -0
  80. package/lib/tmux-config.mjs +35 -0
  81. package/package-catalog.json +44 -0
  82. package/package.json +55 -0
  83. package/packages/record/README.md +151 -0
  84. package/packages/record/bin/capture.mjs +256 -0
  85. package/packages/record/bin/recall.mjs +102 -0
  86. package/packages/record/bin/setup.mjs +281 -0
  87. package/packages/record/bin/turn-record.mjs +47 -0
  88. package/packages/record/docs/turn-record-sot.md +350 -0
  89. package/packages/record/lib/canonical.mjs +151 -0
  90. package/packages/record/lib/capture-aw.mjs +179 -0
  91. package/packages/record/lib/capture-cc.mjs +322 -0
  92. package/packages/record/lib/formats.mjs +296 -0
  93. package/packages/record/lib/ignore.mjs +155 -0
  94. package/packages/record/lib/index-db.mjs +524 -0
  95. package/packages/record/lib/project-aweb.mjs +251 -0
  96. package/packages/record/lib/segments.mjs +186 -0
  97. package/packages/record/lib/store.mjs +447 -0
  98. package/packages/record/lib/tags.mjs +114 -0
  99. package/packages/record/package.json +45 -0
  100. package/packages/record/test/vectors/README.md +34 -0
  101. package/packages/record/test/vectors/aweb-projection-v1.json +231 -0
  102. package/packages/record/test/vectors/journal-merge-v1.json +261 -0
  103. package/packages/record/test/vectors/turn-id-v1.json +152 -0
  104. package/packages/record/test/vectors/validate.mjs +391 -0
  105. package/skills/integration-authoring/SKILL.md +76 -0
  106. package/skills/oats/SKILL.md +151 -0
  107. package/skills/oats-config/SKILL.md +162 -0
  108. package/skills/oats-getting-started/SKILL.md +159 -0
  109. package/skills/oats-packages/SKILL.md +180 -0
  110. package/skills/oats-support/SKILL.md +79 -0
  111. package/skills/skill-craft/SKILL.md +109 -0
  112. package/skills/soul-craft/SKILL.md +109 -0
@@ -0,0 +1,63 @@
1
+ # OATS v0.18.3
2
+
3
+ One public release, built from one tag: `@awebai/oats@0.18.3`,
4
+ `@awebai/oats-pi@0.18.3`, and **OATS Desktop 0.18.3** (attached to this
5
+ GitHub Release).
6
+
7
+ This is a patch release: corrected macOS installers. There are no CLI or
8
+ kernel behavior changes; CLI compatibility is unchanged
9
+ (Desktop API v1, `>=0.18.0 <0.19.0`).
10
+
11
+ ## Fixed: macOS installers (arm64 and x64)
12
+
13
+ The v0.18.2 macOS artifacts were defective: the arm64 app carried an
14
+ incomplete linker-generated ad-hoc signature that failed strict bundle
15
+ verification (`code has no resources but signature indicates they must be
16
+ present`), which made macOS falsely report the app as **"damaged"**; the
17
+ x64 app was unsigned.
18
+
19
+ Both macOS `.app` bundles now receive **complete, valid ad-hoc signatures**,
20
+ covering nested Electron helpers and frameworks, and pass strict deep
21
+ verification:
22
+
23
+ ```bash
24
+ codesign --verify --deep --strict --verbose=2 "OATS Desktop.app"
25
+ ```
26
+
27
+ CI gates this exact strict deep codesign / sealed-resource verification on
28
+ both mac architectures before any artifact is uploaded or published — a
29
+ regression of this signature class cannot ship again.
30
+
31
+ ### What this is (and is not)
32
+
33
+ The installers are **ad-hoc signed — not Developer ID signed and not
34
+ notarized**. Ad-hoc signatures carry no identified-developer identity, so
35
+ Gatekeeper may still require the first launch via right-click → **Open**
36
+ (or **Open Anyway** in System Settings → Privacy & Security). The false
37
+ "damaged" error is fixed; normal identified-developer behavior is not
38
+ claimed.
39
+
40
+ Existing v0.18.2 release assets, checksums, and provenance are unchanged.
41
+
42
+ ## Downloads
43
+
44
+ | Platform | Artifacts |
45
+ | --- | --- |
46
+ | macOS arm64 (Apple Silicon) | DMG + ZIP |
47
+ | macOS x64 (Intel) | DMG + ZIP |
48
+ | Linux x64 | AppImage + DEB |
49
+
50
+ Verify with `SHA256SUMS.txt`; GitHub build-provenance attestations are
51
+ published for all assets.
52
+
53
+ **Windows and Linux arm64 are not supported in 0.18.x.**
54
+
55
+ ## Install / update
56
+
57
+ ```bash
58
+ npm install -g @awebai/oats@0.18.3
59
+ ```
60
+
61
+ The pi bridge `@awebai/oats-pi` publishes in lockstep. Desktop downloads
62
+ are the assets on this release; the full install/support guide is
63
+ [docs/desktop.md](https://github.com/awebai/oats/blob/main/docs/desktop.md).
@@ -0,0 +1,65 @@
1
+ # OATS v0.18.4
2
+
3
+ One public release, built from one tag: `@awebai/oats@0.18.4`,
4
+ `@awebai/oats-pi@0.18.4`, and **OATS Desktop 0.18.4** (attached to this
5
+ GitHub Release).
6
+
7
+ This patch release improves the Desktop experience. There are no CLI or
8
+ kernel behavior changes; CLI compatibility remains Desktop API v1
9
+ (`>=0.18.0 <0.19.0`).
10
+
11
+ ## Desktop UX fixes
12
+
13
+ ### Spawn status is responsive and truthful
14
+
15
+ The Spawn view now retries the CLI capability probe when startup catches the
16
+ backend before that probe has settled. While capability is still unknown, the
17
+ button reports a pending check instead of appearing silently dead; an actual
18
+ missing or incompatible CLI still produces actionable guidance.
19
+
20
+ ### Better chat editing and copying
21
+
22
+ - **Shift+Enter** inserts a newline in chat input.
23
+ - Chat transcripts remain selectable and copyable across renderer updates.
24
+ - The application Edit menu is installed only on macOS, preserving expected
25
+ terminal Ctrl chords on Linux and Windows.
26
+
27
+ ### Instances is a first-class workspace view
28
+
29
+ Instances now appears directly in the navigation and command palette. The
30
+ roster groups instances by repository and agent family, supports collapsible
31
+ group headers, and provides ordering controls. The selected ordering is stored
32
+ per canonical workspace, so switching workspaces does not leak one workspace's
33
+ preference into another.
34
+
35
+ ### Terminal tabs restore per workspace
36
+
37
+ The active terminal tab is remembered independently for each workspace and is
38
+ restored when switching back.
39
+
40
+ ## Downloads
41
+
42
+ | Platform | Artifacts |
43
+ | --- | --- |
44
+ | macOS arm64 (Apple Silicon) | DMG + ZIP |
45
+ | macOS x64 (Intel) | DMG + ZIP |
46
+ | Linux x64 | AppImage + DEB |
47
+
48
+ The macOS artifacts are ad-hoc signed — not Developer ID signed and not
49
+ notarized. First launch may still require right-click → **Open** (or **Open
50
+ Anyway** in System Settings → Privacy & Security).
51
+
52
+ Verify downloads with `SHA256SUMS.txt`; GitHub build-provenance attestations
53
+ are published for all assets.
54
+
55
+ **Windows and Linux arm64 are not supported in 0.18.x.**
56
+
57
+ ## Install / update
58
+
59
+ ```bash
60
+ npm install -g @awebai/oats@0.18.4
61
+ ```
62
+
63
+ The pi bridge `@awebai/oats-pi` publishes in lockstep. Desktop downloads are
64
+ the assets on this release; the full install/support guide is
65
+ [docs/desktop.md](https://github.com/awebai/oats/blob/main/docs/desktop.md).
@@ -0,0 +1,66 @@
1
+ # OATS v0.18.5
2
+
3
+ One public release, built from one tag: `@awebai/oats@0.18.5`,
4
+ `@awebai/oats-pi@0.18.5`, and **OATS Desktop 0.18.5** (attached to this
5
+ GitHub Release).
6
+
7
+ This corrective patch removes an out-of-scope navigation surface introduced
8
+ in v0.18.4 and fixes two terminal interaction failures. There are no CLI or
9
+ kernel behavior changes; CLI compatibility remains Desktop API v1
10
+ (`>=0.18.0 <0.19.0`).
11
+
12
+ ## Corrected: no separate Instances stage
13
+
14
+ v0.18.4 incorrectly added an **Instances** navigation-rail destination with a
15
+ second roster sidebar. That surface was not part of the requested Desktop UX.
16
+ It has been removed: Active overview and Soul roster are again the only main
17
+ stages, while the existing permanent sidebar remains the place for instance
18
+ navigation.
19
+
20
+ The v0.18.4 spawn-status improvements and per-workspace terminal-tab restore
21
+ remain. The repo/family grouping helpers remain available for the separately
22
+ owned existing-sidebar work, but this release does not move the removed
23
+ stage's grouping/sort UI into another surface.
24
+
25
+ ## Fixed: Shift+Enter in terminal input
26
+
27
+ A physical Shift+Enter press can produce keydown, keypress, and keyup events in
28
+ xterm.js. v0.18.4 handled only keydown, so the later keypress could still emit
29
+ Return and immediately submit after inserting a newline. Desktop now suppresses
30
+ the entire chord and writes exactly one newline on keydown.
31
+
32
+ ## Fixed: copying from terminal tabs
33
+
34
+ With tmux mouse mode enabled, a plain drag belongs to tmux rather than xterm's
35
+ local selection. Desktop now enables the platform modifier that forces local
36
+ selection:
37
+
38
+ - macOS: **Option+drag**, then Cmd+C or right-click → Copy
39
+ - Linux/Windows: **Shift+drag**, then the platform copy command
40
+
41
+ ## Downloads
42
+
43
+ | Platform | Artifacts |
44
+ | --- | --- |
45
+ | macOS arm64 (Apple Silicon) | DMG + ZIP |
46
+ | macOS x64 (Intel) | DMG + ZIP |
47
+ | Linux x64 | AppImage + DEB |
48
+
49
+ The macOS artifacts are ad-hoc signed — not Developer ID signed and not
50
+ notarized. First launch may still require right-click → **Open** (or **Open
51
+ Anyway** in System Settings → Privacy & Security).
52
+
53
+ Verify downloads with `SHA256SUMS.txt`; GitHub build-provenance attestations
54
+ are published for all assets.
55
+
56
+ **Windows and Linux arm64 are not supported in 0.18.x.**
57
+
58
+ ## Install / update
59
+
60
+ ```bash
61
+ npm install -g @awebai/oats@0.18.5
62
+ ```
63
+
64
+ The pi bridge `@awebai/oats-pi` publishes in lockstep. Desktop downloads are
65
+ the assets on this release; the full install/support guide is
66
+ [docs/desktop.md](https://github.com/awebai/oats/blob/main/docs/desktop.md).
@@ -0,0 +1,87 @@
1
+ # OATS v0.18.6
2
+
3
+ One public release, built from one tag: `@awebai/oats@0.18.6`,
4
+ `@awebai/oats-pi@0.18.6`, and **OATS Desktop 0.18.6** (attached to this
5
+ GitHub Release).
6
+
7
+ This release adds explicit spawn-time agent relations, cluster-first Desktop
8
+ navigation, and user-editable Desktop keyboard shortcuts. Desktop CLI API v1
9
+ remains the compatibility boundary (`>=0.18.0 <0.19.0`), but related spawns
10
+ require the new 0.18.6 CLI.
11
+
12
+ ## New: explicit agent relations
13
+
14
+ A new instance can declare what it is to an existing instance:
15
+
16
+ ```bash
17
+ oats spawn <agent> --relation child|sibling|parent --relative-to <instance>
18
+ ```
19
+
20
+ - **child** works for and nests under the anchor;
21
+ - **sibling** joins the anchor as a peer;
22
+ - **parent** oversees the anchor and takes its previous lineage position;
23
+ - no relation flags means **unrelated** and top-level.
24
+
25
+ `--parent <instance>` remains supported as child-relation shorthand.
26
+ Same-named instances can exist in different agent roots, so
27
+ `--relative-root <agents-root>` can qualify an anchor. Ambiguous or shadowed
28
+ lineage fails closed with `E_RELATIVE_AMBIGUOUS` rather than linking or acting
29
+ on the wrong instance. Attached agents remain children of the verified owner
30
+ of their shared work tree.
31
+
32
+ Retiring an instance repairs ordinary parent and sibling links that point to
33
+ it. OATS intentionally keeps this as sparse current-state metadata rather than
34
+ a lineage database: concurrent parent spawns against one anchor are
35
+ last-writer-wins, and a multi-instance retirement repair is sequential rather
36
+ than a crash-atomic transaction.
37
+
38
+ ## Desktop: cluster-first agent surfaces
39
+
40
+ The Active overview and permanent instance sidebar now group related agents as
41
+ clusters built from parent and sibling links. Independent instances remain in
42
+ a quieter separate strip. Duplicate instance names across repositories remain
43
+ distinct throughout grouping, filtering, collapse state, terminal routing,
44
+ Brain actions, and privileged instance-addressed API calls.
45
+
46
+ The Spawn surface now uses one accessible modal with purpose, task, relation,
47
+ anchor, runtime, and model controls. Relation controls stay visible but fail
48
+ closed when the installed CLI predates 0.18.6; unrelated spawning remains
49
+ available across the existing Desktop API v1 compatibility range.
50
+
51
+ ## Desktop: editable keyboard shortcuts
52
+
53
+ Desktop actions now use a central keybinding engine with persisted user
54
+ overrides and explicit unbinding. Open the shortcuts editor with **Mod+,**.
55
+ The editor covers app, stage, tab, sidebar, terminal typography, and
56
+ view-local actions, with live shortcut labels and conflict warnings.
57
+
58
+ Terminal shortcut interception happens before PTY writes for an explicit
59
+ action allowlist. View-local shortcuts remain confined to their focused
60
+ surface, and spawn-modal controls keep ownership of their keys.
61
+
62
+ ## Downloads
63
+
64
+ | Platform | Artifacts |
65
+ | --- | --- |
66
+ | macOS arm64 (Apple Silicon) | DMG + ZIP |
67
+ | macOS x64 (Intel) | DMG + ZIP |
68
+ | Linux x64 | AppImage + DEB |
69
+
70
+ The macOS artifacts are ad-hoc signed — not Developer ID signed and not
71
+ notarized. First launch may still require right-click → **Open** (or **Open
72
+ Anyway** in System Settings → Privacy & Security).
73
+
74
+ Verify downloads with `SHA256SUMS.txt`; GitHub build-provenance attestations
75
+ are published for all assets.
76
+
77
+ **Windows and Linux arm64 are not supported in 0.18.x.**
78
+
79
+ ## Install / update
80
+
81
+ ```bash
82
+ npm install -g @awebai/oats@0.18.6
83
+ ```
84
+
85
+ The pi bridge `@awebai/oats-pi` publishes in lockstep. Desktop downloads are
86
+ the assets on this release; the full install/support guide is
87
+ [docs/desktop.md](https://github.com/awebai/oats/blob/main/docs/desktop.md).
@@ -0,0 +1,186 @@
1
+ # OATS v0.19.0
2
+
3
+ One release built from one tag: `@awebai/oats@0.19.0`,
4
+ `@awebai/oats-pi@0.19.0`, and **OATS Desktop 0.19.0** in this GitHub Release.
5
+
6
+ This release introduces distribution packages, exact OATS-managed instance
7
+ curricula, canonical primary-checkout instance homes, and the package/profile
8
+ setup flow needed for independently published official capabilities.
9
+
10
+ ## Distribution packages
11
+
12
+ An OATS package is now the acquisition, integrity, update, and review unit above
13
+ independently targetable capabilities. A Git repository may contain ordinary
14
+ development content and one or more package payloads; the selected payload path
15
+ is part of the source and lock contract.
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
+ ```
28
+
29
+ Lock v2 records source, exact commit, selected path, integrity, dependency
30
+ closure, exported capabilities, and per-capability executable approvals. Bare
31
+ `oats install` restores the exact locked graph; it never advances a branch,
32
+ catalog selector, package path, or dependency closure. Updating remains
33
+ explicit:
34
+
35
+ ```bash
36
+ oats update <package-id>
37
+ ```
38
+
39
+ Acquisition installs and hashes only the selected payload subtree. Repository
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.
44
+
45
+ ## Package config profiles and workspace setup
46
+
47
+ Packages may ship complete reference `oats-config.yaml` profiles. Adoption is
48
+ explicit and produces an editable local snapshot:
49
+
50
+ ```bash
51
+ oats init --package <package-source> [--config <profile>] --dir <workspace>
52
+ oats install --dir <workspace>
53
+ ```
54
+
55
+ The first command acquires and exact-locks the full package closure, validates
56
+ the selected profile against its capability providers, and writes the snapshot.
57
+ The second command reconciles the team boundary and nested repository locks.
58
+ Package updates never rewrite an adopted config; normal targeting, exclusions,
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
96
+
97
+ Instance homes now live under the soul-owning repository's primary checkout,
98
+ even when spawn is invoked from a linked worktree or from an agent's `work/`.
99
+ Unresolvable placement fails closed before creating anything.
100
+
101
+ Every runtime and lifecycle hook receives the absolute `OATS_INSTANCE_HOME`.
102
+ Generated instructions distinguish the two operational surfaces:
103
+
104
+ - instance home contains instructions, task, soul reference, provenance,
105
+ selected skills, and episodic state; OATS lifecycle and active-capability
106
+ commands run there;
107
+ - `<instance-home>/work` is the repository or workspace view where permitted
108
+ reading, editing, Git, builds, tests, and commits happen.
109
+
110
+ OATS performs resolved-path containment checks and rechecks the created home
111
+ before writing credentials or running hooks. The deployment agents directory
112
+ must still be operator-owned and not writable by untrusted local processes.
113
+
114
+ ## Required hooks, runtime requirements, and safe rollback
115
+
116
+ Capability spawn hooks may declare `required: true`. A required hook that cannot
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.
121
+
122
+ Requirement consent now supports runtime-scoped Pi packages and Claude plugins,
123
+ including multi-step marketplace registration plans. JSON and human output show
124
+ the same exact ordered steps.
125
+
126
+ ## Existing 0.18 capability installations
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.
150
+
151
+ ## OATS Desktop
152
+
153
+ Desktop accepts the matching 0.19 CLI through Desktop CLI API v1
154
+ (`>=0.18.0 <0.20.0`) instead of rejecting its own release and degrading to
155
+ observation-only mode. Compatibility and recovery copy are derived from one
156
+ runtime contract rather than repeated literals.
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 |
170
+
171
+ macOS artifacts are ad-hoc signed, not Developer ID signed or notarized. First
172
+ launch may require right-click → **Open**, or **Open Anyway** in System Settings.
173
+ Verify assets with `SHA256SUMS.txt` and the GitHub build-provenance attestations.
174
+ Windows and Linux arm64 are not supported in this release.
175
+
176
+ ## Install or update
177
+
178
+ ```bash
179
+ npm install -g @awebai/oats@0.19.0
180
+ pi install npm:@awebai/oats-pi@0.19.0
181
+ ```
182
+
183
+ The kernel, Pi adapter, and Desktop publish from the same tag and should stay on
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.
@@ -0,0 +1,24 @@
1
+ # OATS v0.19.1
2
+
3
+ Corrective patch for the v0.19.0 marketplace compatibility bridge.
4
+
5
+ - Restores npm-hoisted aweb skills for existing v1 `oats.aweb` installations.
6
+ Marketplace declarations still anchor at their declaring capability first;
7
+ when npm hoists a declared dependency, OATS resolves the equivalent path under
8
+ the installed kernel root with the same realpath containment checks.
9
+ - Keeps valid older installed+locked marketplace capabilities usable across a
10
+ kernel upgrade while still failing closed when the installed copy and lock
11
+ disagree.
12
+ - Preserves framework-author `oats.authoring` skill composition from the
13
+ published kernel layout.
14
+
15
+ The official package catalog and default migration redirects are not included
16
+ in this corrective patch; they follow after the independently tagged official
17
+ packages complete their published-kernel probes.
18
+
19
+ Install matching kernel and Pi adapter versions:
20
+
21
+ ```bash
22
+ npm install -g @awebai/oats@0.19.1
23
+ pi install npm:@awebai/oats-pi@0.19.1
24
+ ```
@@ -0,0 +1,32 @@
1
+ # OATS v0.19.2
2
+
3
+ Official package catalog and migration activation patch.
4
+
5
+ The kernel now bundles immutable catalog entries for:
6
+
7
+ - `oats.okf@v1.4.1`
8
+ - `oats.aweb@v1.8.0`
9
+ - `oats.authoring@v1.0.0`
10
+ - `oats.jira@v1.0.0`
11
+ - `oats.linear@v1.0.0`
12
+ - `oats.dev@v1.0.0`, which exports `oats.review@1.2.0`
13
+
14
+ Each catalog entry selects the repository's contained `oats-package/` payload.
15
+ Short-id installs now prefer these distribution packages over the legacy bundled
16
+ capability marketplace. Existing v1 locks and installed artifacts remain
17
+ supported until the user explicitly runs the guided migration:
18
+
19
+ ```bash
20
+ oats migrate --official --recursive --dry-run --dir <team-root>
21
+ oats migrate --official --recursive --dir <team-root>
22
+ ```
23
+
24
+ This patch also preserves the v0.19.1 marketplace compatibility bridge for
25
+ npm-hoisted aweb skills.
26
+
27
+ Install matching versions:
28
+
29
+ ```bash
30
+ npm install -g @awebai/oats@0.19.2
31
+ pi install npm:@awebai/oats-pi@0.19.2
32
+ ```
@@ -0,0 +1,16 @@
1
+ # OATS v0.19.3 (unpublished)
2
+
3
+ The v0.19.3 pre-publish tag failed its test gate, produced no npm package or
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.
@@ -0,0 +1,12 @@
1
+ # OATS v0.19.4
2
+
3
+ Release-pipeline follow-up for the documentation refresh.
4
+
5
+ - Makes Desktop server tests independent of a repository-owned deployment lock
6
+ by constructing their capability-agent deployment explicitly.
7
+ - Allocates ephemeral loopback ports instead of choosing a collision-prone
8
+ pseudo-random development port.
9
+ - Keeps live-checkout parity diagnostics tolerant of deployment-local package
10
+ skew while retaining the unconditional isolated parity proof.
11
+
12
+ No runtime contract changes from v0.19.2.
@@ -0,0 +1,89 @@
1
+ # OATS v0.20.0
2
+
3
+ OATS v0.20.0 is a breaking pre-1.0 release. The framework release includes
4
+ `@awebai/oats@0.20.0`, `@awebai/oats-pi@0.20.0`, and OATS Desktop
5
+ 0.20.0.
6
+
7
+ This release finalizes capability materialization and config templates. It
8
+ replaces the earlier, unadopted transitional v2 package shape without changing
9
+ `lockfileVersion: 2`.
10
+
11
+ ## Revised lockfile v2
12
+
13
+ The final v2 lock separates package provenance from installed capability
14
+ identity.
15
+
16
+ - `packages` records the source, exact commit, selected package root, payload
17
+ integrity, and package dependencies.
18
+ - `capabilities` records each materialized artifact, its provider package,
19
+ source path, artifact integrity, and executable trust.
20
+
21
+ A package is now a transport and update unit. Each exported capability is an
22
+ installed, activatable, and trustable unit. OATS materializes it under
23
+ `.agents/capabilities/installed/<capability-id>/`.
24
+
25
+ Every newly authored package must give each capability a dedicated,
26
+ self-contained root. Declared resources and symlinks must stay inside that
27
+ root. The package root is not kept as an installed package store.
28
+
29
+ ## Config templates remain local policy
30
+
31
+ Canonical package manifests use `configTemplates`. Their template files live
32
+ under `config-templates/`.
33
+
34
+ `oats install` does not apply a template. Adoption is explicit through
35
+ `oats init --package` or `oats config adopt`. The adopted file is an ordinary,
36
+ editable `oats-config.yaml`.
37
+
38
+ Each scope has at most one active config and one adopted base. OATS records the
39
+ base under `.agents/config-templates/adopted/`. The `oats config diff`, `sync`,
40
+ `sync --reset`, and `adopt` commands use that base for three-way plans. Package
41
+ updates do not overwrite local config edits.
42
+
43
+ ## Migration and trust
44
+
45
+ Existing valid v1 locks from 0.18 remain supported. Migration is explicit and
46
+ converts a scope directly to the final revised v2 shape.
47
+
48
+ Migration is atomic for each scope. If a mixed scope contains entries that must
49
+ be retained, OATS holds the whole scope unchanged. It does not partly rewrite
50
+ the lock. Executable trust never transfers silently to a materialized
51
+ capability.
52
+
53
+ The earlier transitional `lockfileVersion: 2` shape is unsupported. It was not
54
+ adopted as a release contract, so this release provides no migration for it.
55
+ Back up the scope and reacquire its package state through supported CLI paths.
56
+ Do not hand-edit the lock.
57
+
58
+ See [Distribution packages](../packages.md) for the lock, adoption, and
59
+ migration details.
60
+
61
+ ## Desktop compatibility
62
+
63
+ Desktop API remains version 1. Desktop 0.20 accepts released CLI versions in
64
+ `>=0.18.0 <0.21.0`. This range includes the matching 0.20 kernel.
65
+ Prerelease versions are not accepted.
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
+ ## Install or update
83
+
84
+ ```bash
85
+ npm install -g @awebai/oats@0.20.0
86
+ pi install npm:@awebai/oats-pi@0.20.0
87
+ ```
88
+
89
+ Keep the kernel, Pi adapter, and Desktop on matching release versions.