@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
package/docs/desktop.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# OATS Desktop
|
|
2
2
|
|
|
3
|
-
The OATS Desktop app is the control panel for OATS
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
The OATS Desktop app is the control panel for an OATS deployment: the
|
|
4
|
+
workspace and its souls, the agent roster and hierarchy, each instance's
|
|
5
|
+
files, state and knowledge, and real terminals attached to running agents'
|
|
6
|
+
sessions. With a compatible `oats` CLI installed it also spawns, starts,
|
|
7
|
+
retires and schedules agents.
|
|
7
8
|
|
|
8
9
|
## Install
|
|
9
10
|
|
|
@@ -16,7 +17,7 @@ Download the installer for your platform from the
|
|
|
16
17
|
| macOS x64 (Intel) | DMG + ZIP | ad-hoc signed — see below |
|
|
17
18
|
| Linux x64 | AppImage + DEB | requires `tmux` |
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Windows and Linux arm64 are not supported.
|
|
20
21
|
|
|
21
22
|
Verify downloads against the release's `SHA256SUMS.txt`. GitHub
|
|
22
23
|
build-provenance attestations are published for every asset
|
|
@@ -44,11 +45,10 @@ it, but opening a terminal will fail until tmux is installed. The DEB
|
|
|
44
45
|
declares the dependency; for the AppImage install it yourself
|
|
45
46
|
(`apt install tmux`, `dnf install tmux`, …) and verify with `tmux -V`.
|
|
46
47
|
|
|
47
|
-
### The `oats` CLI
|
|
48
|
+
### The `oats` CLI
|
|
48
49
|
|
|
49
|
-
Reads
|
|
50
|
-
|
|
51
|
-
v1:
|
|
50
|
+
Reads (roster, hierarchy, files, terminals) work with no CLI at all.
|
|
51
|
+
Everything else runs through an installed `oats` CLI:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
npm install -g @awebai/oats
|
|
@@ -59,26 +59,16 @@ the one with **this Desktop's own version** — the app's degradation card
|
|
|
59
59
|
shows that exact `npm install -g @awebai/oats@<version>` command, and
|
|
60
60
|
copying it from the card is the reliable route.
|
|
61
61
|
|
|
62
|
-
Each Desktop accepts a band of released CLI versions around its own
|
|
63
|
-
prereleases
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
shows the accepted range and the exact install command, and the relation note
|
|
67
|
-
names its floor. This guide deliberately does not repeat those numbers — it is
|
|
68
|
-
rolling documentation and would go stale against the app; the versioned
|
|
69
|
-
[release notes](release-notes/) record the band for each release, and
|
|
70
|
-
[docs/desktop-cli-api.md](desktop-cli-api.md) is the contract of record beside
|
|
71
|
-
the code that enforces it. The app discovers the CLI automatically
|
|
62
|
+
Each Desktop accepts a band of released CLI versions around its own
|
|
63
|
+
(prereleases never), and a feature may need a higher floor; the app states
|
|
64
|
+
both, so this guide does not repeat the numbers. The contract is
|
|
65
|
+
[desktop-cli-api.md](desktop-cli-api.md). The app discovers the CLI automatically
|
|
72
66
|
(your PATH, the npm global prefix, a login shell) and re-probes on launch,
|
|
73
67
|
app focus, and Retry. Until a compatible CLI is verified, the Soul roster's
|
|
74
68
|
**Spawn** buttons are disabled behind one card showing what was detected,
|
|
75
69
|
what is required, **Choose oats…** (pick the binary yourself — the choice
|
|
76
70
|
persists), **Retry**, a docs link, and the copyable install command. The
|
|
77
|
-
app never installs the CLI itself.
|
|
78
|
-
CLI boundary and is available from an instance's action menu.
|
|
79
|
-
|
|
80
|
-
The probe/mutation contract is specified in
|
|
81
|
-
[desktop-cli-api.md](desktop-cli-api.md).
|
|
71
|
+
app never installs the CLI itself.
|
|
82
72
|
|
|
83
73
|
## Opening a workspace
|
|
84
74
|
|
|
@@ -89,7 +79,7 @@ the directory (the operator's choice) holding `oats-local.yaml` and `agents/`.
|
|
|
89
79
|
A picked folder without `oats-local.yaml` is offered onboarding instead. The
|
|
90
80
|
Desktop never parses the deployment: its members, lock state and header come
|
|
91
81
|
from `oats workspace status`, and its instances from the deployment's one
|
|
92
|
-
`agents/` root.
|
|
82
|
+
`agents/` root.
|
|
93
83
|
Added workspaces are remembered and offered as suggestions next time.
|
|
94
84
|
|
|
95
85
|
Launch flags for scripted use: `--dir <workspace>` and `OATS_DESKTOP_PORT`.
|
|
@@ -99,7 +89,7 @@ Launch flags for scripted use: `--dir <workspace>` and `OATS_DESKTOP_PORT`.
|
|
|
99
89
|
Open **Schedules** in the selected workspace to launch a new agent on a cron,
|
|
100
90
|
wake an existing agent with a message, or harvest its knowledge. **Schedule…**
|
|
101
91
|
on a Soul roster card preselects that soul. Choose the task or message, repeat
|
|
102
|
-
pattern and time zone; new agent jobs also offer
|
|
92
|
+
pattern and time zone; new agent jobs also offer harness, model, permissions
|
|
103
93
|
and session backend. The list shows the next run, last observed outcome and
|
|
104
94
|
whether the host scheduler is enabled. Pause, edit, run now and delete operate
|
|
105
95
|
on that workspace's saved jobs. Launching an agent is reported separately from
|
|
@@ -120,19 +110,21 @@ registered remote workspace the timer and definitions live on that server, so
|
|
|
120
110
|
they do not depend on the Mac staying awake. See [Schedules](schedules.md) for
|
|
121
111
|
the CLI, cron semantics, observed outcomes and recovery commands.
|
|
122
112
|
|
|
123
|
-
##
|
|
124
|
-
|
|
125
|
-
0.18.2 removes the legacy `oats.web` browser panel, `oats pane`, and the
|
|
126
|
-
`@awebai/oats/control-pane` export. The Desktop app replaces all
|
|
127
|
-
three. Migration:
|
|
113
|
+
## Attach files and screenshots
|
|
128
114
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
115
|
+
Drop a file onto an agent terminal to insert its path into that agent's draft.
|
|
116
|
+
Pasting an image from the clipboard uses the same attachment path. Neither
|
|
117
|
+
operation presses Enter. Text paste continues to use the terminal's normal
|
|
118
|
+
paste behavior. A drop targets the pane under the pointer, including a visible
|
|
119
|
+
pane in a split.
|
|
133
120
|
|
|
134
|
-
|
|
135
|
-
|
|
121
|
+
Local files are referenced in place. Clipboard images are saved privately in
|
|
122
|
+
Desktop's application-data `attachments` directory and retained so an agent can
|
|
123
|
+
read them later. For remote terminals, Desktop calls the installed CLI's
|
|
124
|
+
`session upload` operation; it inserts the returned path only after the file
|
|
125
|
+
has reached the execution host. Both CLI installations must advertise
|
|
126
|
+
`session-upload`. A failed transfer leaves the draft unchanged and shows an
|
|
127
|
+
error in the terminal. Each drop/paste accepts up to 16 files totaling 25 MB.
|
|
136
128
|
|
|
137
129
|
## Security posture
|
|
138
130
|
|
|
@@ -158,48 +150,11 @@ The full breaking-change list is in the
|
|
|
158
150
|
| Terminals fail to open ("could not attach") | tmux missing, or no live session for that instance. Install tmux (`tmux -V`); check `tmux ls`. |
|
|
159
151
|
| Can't select/copy text in a terminal tab | The terminal runs with tmux mouse handling, so a plain drag scrolls/passes through. Hold **Option** (macOS) or **Shift** while dragging to make a local selection, then copy (Cmd+C / right-click → Copy). |
|
|
160
152
|
| macOS "app is damaged / can't be opened" | Ad-hoc-signed (not notarized) build + quarantine. Right-click → Open, or clear the quarantine attribute (above). If it persists, verify the bundle: `codesign --verify --deep --strict --verbose=2 "/Applications/OATS Desktop.app"` — a non-zero exit means a broken artifact, report it. |
|
|
161
|
-
| Roster empty | The opened directory isn't an OATS
|
|
153
|
+
| Roster empty | The opened directory isn't an OATS deployment (it needs `oats-local.yaml` and `agents/`). Use the workspace switcher → Add workspace to select the right folder. |
|
|
162
154
|
|
|
163
155
|
For bugs, attach the terminal output of the app (`OATS Desktop` prints
|
|
164
156
|
server and CLI-discovery logs to stdout) and your platform/arch.
|
|
165
157
|
|
|
166
|
-
## Release verification ownership
|
|
167
|
-
|
|
168
|
-
Installer CI gates what headless runners can prove reliably for every
|
|
169
|
-
published platform/architecture: electron-builder completes, the expected
|
|
170
|
-
DMG/ZIP/AppImage/DEB artifacts exist, both packaged macOS `.app` bundles
|
|
171
|
-
pass strict deep codesign verification of their complete ad-hoc signatures
|
|
172
|
-
(`codesign --verify --deep --strict`), node-pty's packaged `spawn-helper` is
|
|
173
|
-
executable, and node-pty loads and spawns under the packaged Electron ABI.
|
|
174
|
-
The macOS x64 leg cross-builds on macos-14 and installs Rosetta 2 so that its
|
|
175
|
-
x64 Electron + node-pty ABI probe really executes; a wrong-architecture
|
|
176
|
-
native module fails that leg.
|
|
177
|
-
|
|
178
|
-
CI does **not** gate the packaged GUI launch: ad-hoc-signed, non-notarized
|
|
179
|
-
Electron apps do not
|
|
180
|
-
have a reliable interactive windowserver in headless CI. Post-publish launch
|
|
181
|
-
acceptance is therefore owned by the operator/maintainer, using the actual
|
|
182
|
-
released installers (not a source checkout):
|
|
183
|
-
|
|
184
|
-
1. Verify the asset checksum/attestation, install it outside the source tree,
|
|
185
|
-
and on macOS use right-click → **Open** for the Gatekeeper step (ad-hoc
|
|
186
|
-
signatures carry no identified-developer identity).
|
|
187
|
-
2. Launch OATS Desktop and open a real deployment; verify roster, brain and
|
|
188
|
-
Markdown reads.
|
|
189
|
-
3. Attach an existing tmux terminal, confirm input/output, and close the tab
|
|
190
|
-
(the durable tmux window must survive).
|
|
191
|
-
4. Verify the released global CLI is detected and Spawn is enabled; hide or
|
|
192
|
-
mismatch the CLI and confirm reads/terminal still work while Spawn disables
|
|
193
|
-
with recovery guidance.
|
|
194
|
-
5. Repeat per published architecture where hardware is available. In
|
|
195
|
-
particular, launch-check macOS x64 on an Intel Mac if one is available;
|
|
196
|
-
CI's Rosetta ABI probe is the native-module proof, while this is the actual
|
|
197
|
-
shipped-installer/user-launch proof.
|
|
198
|
-
|
|
199
|
-
Record the installed version, platform/architecture and outcome in the
|
|
200
|
-
release verification notes. This post-publish check is acceptance — it does
|
|
201
|
-
not weaken the pre-publish build/inventory/ABI gates.
|
|
202
|
-
|
|
203
158
|
## Building from source
|
|
204
159
|
|
|
205
160
|
Developer docs live in [`packages/desktop/README.md`](../packages/desktop/README.md)
|
|
@@ -210,19 +165,3 @@ certificate auto-discovery disabled) and
|
|
|
210
165
|
marked build-verify mode (inventory + strict codesign verification +
|
|
211
166
|
node-pty ABI, no GUI launch); a local
|
|
212
167
|
interactive run may also exercise the launch phase.
|
|
213
|
-
|
|
214
|
-
### Attach files and screenshots
|
|
215
|
-
|
|
216
|
-
Drop a file onto an agent terminal to insert its path into that agent's draft.
|
|
217
|
-
Pasting an image from the clipboard uses the same attachment path. Neither
|
|
218
|
-
operation presses Enter. Text paste continues to use the terminal's normal
|
|
219
|
-
paste behavior. A drop targets the pane under the pointer, including a visible
|
|
220
|
-
pane in a split.
|
|
221
|
-
|
|
222
|
-
Local files are referenced in place. Clipboard images are saved privately in
|
|
223
|
-
Desktop's application-data `attachments` directory and retained so an agent can
|
|
224
|
-
read them later. For remote terminals, Desktop calls the installed CLI's
|
|
225
|
-
`session upload` operation; it inserts the returned path only after the file
|
|
226
|
-
has reached the execution host. Both CLI installations must advertise
|
|
227
|
-
`session-upload`. A failed transfer leaves the draft unchanged and shows an
|
|
228
|
-
error in the terminal. Each drop/paste accepts up to 16 files totaling 25 MB.
|