Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,30 +70,30 @@ Invariants:
- No job ids in spoken lines unless the user asked.
- Staff does not pixel-click. The operator takes control of the screen.
- Provider reasoning maps (`provider-maps.ts`) are verified-or-none; no capture, no map.
- Provider catalog (`docs/providers.md`, `src/runtime/providers.ts`) — mouths vs Jobs/PM vs cloud; one sanctioned auth each (OpenRouter keys / Codex auth for OpenAI-class Jobs / `CURSOR_API_KEY` for cloud); unknown provider = miss; no fake selectable that no-ops; package 0.15.0.
- Provider catalog (`docs/providers.md`, `src/runtime/providers.ts`) — mouths vs Jobs/PM vs cloud; one sanctioned auth each (OpenRouter keys / Codex auth for OpenAI-class Jobs / `CURSOR_API_KEY` for cloud); unknown provider = miss; no fake selectable that no-ops; package 0.16.0.
- Live world-state books analyze; claims are recall-only.
- Product routines (`docs/routines.md`) wake mouths on schedule/event with kickoff `routine`; they are not Grok Bot agent crons. MVP schedule ticks need the Staff app open.
- External channels (`docs/channels.md`) — Slack MVP: connect in Settings (never paste bot tokens in chat); inbound via `~/.automaton/inbox/slack` or future socket; `kickoff=channel` wakes Staff; outbound fail-closed as the user. Channel traffic is mouth/staff; Jobs still own coding.
- Multi-agent rooms (`docs/rooms.md`) — local SendToAgent-class + named rooms; sisters keep separate threads; mouth only (not Slack); `needsFanoutConfirm` for 3+; package 0.15.0.
- MCP catalog (`docs/mcp.md`) — Settings curated plugins; install registry under `~/.automaton/mcp`; auth via secret-request / Connect (never chat-paste); schema hints only until live MCP client; package 0.15.0.
- Secrets (`docs/secrets.md`) — in-app secret-request card with masked entry; vault via `writeConnectorSecret`; never persist secret values in session JSON / feed / Jobs / Slack / speech; package 0.15.0.
- Version / releases (`docs/version.md`) — Settings About + optional titlebar chip from `package.json` / Info.plist; GitHub Latest notify-only (never auto-upgrade); git tip/dirty modal stays; doctor WARNs on package≠plist; package 0.15.0.
- Skills library (`docs/skills.md`) — Settings list/author local skills; imported read-only body; pin via agent skillIds; offer-once widget on composer match; mouths stay Send; package 0.15.0.
- Idle CPU (`docs/idle-cpu.md`) — park inventory + Mac idle proof; doctor notes checklist (optional `AUTOMATON_IDLE_CPU=1` live sample); package 0.15.0.
- Living marks (`docs/marks.md`) — selected glance / soft melt / lid springs; Wave 3.1 mark-local 0.1px melt publish (gpuix px stays integer); sister-freeze parks idle rail; honesty on stubby life; package 0.15.0.
- `@gpuix/react` vendor (`docs/gpuix.md`) — stay on vendored 0.6.2 (native spring passthrough + matched native) until remorses/gpuix#34 merges **and** a park-bearing npm publish; never switch to registry 0.8.0 / 0.8.0; never ask NPM_TOKEN for `@gpuix`; package 0.15.0.
- Cloud agent / Origin (`docs/cloud-origin.md`) — optional public Cloud Agents API (`CURSOR_API_KEY`); Settings/Jobs parked when unavailable (no fake Launch); Origin browse only from explicit `origin.cursor.com` remotes; never guess Origin from GitHub; package 0.15.0.
- Mouth compaction (`docs/compaction.md`) — working set = compact summary + recent turns; auto when over char budget; Compact now in Settings; fail-soft Need; Jobs pane untouched (no above-composer strip); package 0.15.0.
- Home bind from clone URL — `git@` / `ssh://git@github.com` / `*.git` https clone URLs bind like page URLs; missing checkout still clones into `~/Projects/<repo>` (see `docs/staff.md`, `src/runtime/home.ts`); package 0.15.0.
- Multi-agent rooms (`docs/rooms.md`) — local SendToAgent-class + named rooms; sisters keep separate threads; mouth only (not Slack); `needsFanoutConfirm` for 3+; package 0.16.0.
- MCP catalog (`docs/mcp.md`) — Settings curated plugins; install registry under `~/.automaton/mcp`; auth via secret-request / Connect (never chat-paste); schema hints only until live MCP client; package 0.16.0.
- Secrets (`docs/secrets.md`) — in-app secret-request card with masked entry; vault via `writeConnectorSecret`; never persist secret values in session JSON / feed / Jobs / Slack / speech; package 0.16.0.
- Version / releases (`docs/version.md`) — Settings About + optional titlebar chip from `package.json` / Info.plist; GitHub Latest notify-only (never auto-upgrade); git tip/dirty modal stays; doctor WARNs on package≠plist; package 0.16.0.
- Skills library (`docs/skills.md`) — Settings list/author local skills; imported read-only body; pin via agent skillIds; offer-once widget on composer match; mouths stay Send; package 0.16.0.
- Idle CPU (`docs/idle-cpu.md`) — park inventory + Mac idle proof; doctor notes checklist (optional `AUTOMATON_IDLE_CPU=1` live sample); package 0.16.0.
- Living marks (`docs/marks.md`) — selected glance / soft melt / lid springs; Wave 3.1 mark-local 0.1px melt publish (gpuix px stays integer); sister-freeze parks idle rail; honesty on stubby life; package 0.16.0.
- `@gpuix/react` vendor (`docs/gpuix.md`) — stay on vendored 0.6.2 (native spring passthrough + matched native) until remorses/gpuix#34 merges **and** a park-bearing npm publish; never switch to registry 0.8.0 / 0.8.0; never ask NPM_TOKEN for `@gpuix`; package 0.16.0.
- Cloud agent / Origin (`docs/cloud-origin.md`) — optional public Cloud Agents API (`CURSOR_API_KEY`); Settings/Jobs parked when unavailable (no fake Launch); Origin browse only from explicit `origin.cursor.com` remotes; never guess Origin from GitHub; package 0.16.0.
- Mouth compaction (`docs/compaction.md`) — working set = compact summary + recent turns; auto when over char budget; Compact now in Settings; fail-soft Need; Jobs pane untouched (no above-composer strip); package 0.16.0.
- Home bind from clone URL — `git@` / `ssh://git@github.com` / `*.git` https clone URLs bind like page URLs; missing checkout still clones into `~/Projects/<repo>` (see `docs/staff.md`, `src/runtime/home.ts`); package 0.16.0.
- Bezel surface lift (Wave 2 P1) — TypeScript recipes only (`src/chrome/surface.ts`, step-row, activity takeover, composer `#` picker, titlebar clearance). No bezel crate, no `@gpuix/react@0.8.0`, no liquid glass. Settings/inspector read live tokens. Package 0.8.0.
- Mouth stream + initiator ledger (Wave 4 P0) — feed `mouth-stream` phases decide→act→done/refuse for side effects; action ledger `initiatorKind` from kickoff (`person`←user, routine/peer-hop/channel/webhook/deployment/unknown); computer/host/MCP share `recordSideEffect`; no `@ag-ui/*` / CopilotKit; sisters stay separate; no secrets in feed; package 0.15.0.
- Peer provenance + standing role (Wave 4 P1) — `sendToAgent` / `postToRoom` stamp `originUser` + `hopDepth` on peer-hop wakes; `standingRoleBlock` (name/title/rules) on every mouth system preamble; unattended = routine | peer-hop without interactive person; no CopilotKit; sisters stay separate; package 0.15.0.
- Session Activity strip (Wave 4 P2) — per-sister ephemeral commands/files next to feed from mouth-stream / action ledger (no second audit DB); writes show path·size only; `docs/activity.md`; no CopilotKit; package 0.15.0.
- Peer chase / head keep-alive (Wave 5 P0) — `offerSisterHop` / `sendToAgent` park `pendingHops` envelopes; head working while hops are out; assess injects `expecting` and may hop again if unmet; empty/fail sister auto-wakes a notice; `docs/peer-chase.md`; no CopilotKit / `@ag-ui/*`; sisters stay separate; package 0.15.0.
- GPUI polish P0 (Wave 6) — toast stack + level policy (`src/chrome/toast*.tsx` / toast-store); EmptyState icon/CTA; focus chords Cmd+L / Cmd+B / Cmd+, / Cmd+J (HID + gpuix); `docs/wave6-gpui-polish.md`; no CopilotKit / gpui-kit; idle parks intact; package 0.15.0.
- GPUI polish P1 (Wave 6) — Cmd+K command palette lite (sisters / rooms / settings sections / Jobs); visible steer-queue card (remove / send-now); shared `ListRow` density + hover end-slot; `Tip` microcopy on titlebar / rail / Jobs; opaque menuFill overlays; idle parks intact; package 0.15.0.
- Mouth stream + initiator ledger (Wave 4 P0) — feed `mouth-stream` phases decide→act→done/refuse for side effects; action ledger `initiatorKind` from kickoff (`person`←user, routine/peer-hop/channel/webhook/deployment/unknown); computer/host/MCP share `recordSideEffect`; no `@ag-ui/*` / CopilotKit; sisters stay separate; no secrets in feed; package 0.16.0.
- Peer provenance + standing role (Wave 4 P1) — `sendToAgent` / `postToRoom` stamp `originUser` + `hopDepth` on peer-hop wakes; `standingRoleBlock` (name/title/rules) on every mouth system preamble; unattended = routine | peer-hop without interactive person; no CopilotKit; sisters stay separate; package 0.16.0.
- Session Activity strip (Wave 4 P2) — per-sister ephemeral commands/files next to feed from mouth-stream / action ledger (no second audit DB); writes show path·size only; `docs/activity.md`; no CopilotKit; package 0.16.0.
- Peer chase / head keep-alive (Wave 5 P0) — `offerSisterHop` / `sendToAgent` park `pendingHops` envelopes; head working while hops are out; assess injects `expecting` and may hop again if unmet; empty/fail sister auto-wakes a notice; `docs/peer-chase.md`; no CopilotKit / `@ag-ui/*`; sisters stay separate; package 0.16.0.
- GPUI polish P0 (Wave 6) — toast stack + level policy (`src/chrome/toast*.tsx` / toast-store); EmptyState icon/CTA; focus chords Cmd+L / Cmd+B / Cmd+, / Cmd+J (HID + gpuix); `docs/wave6-gpui-polish.md`; no CopilotKit / gpui-kit; idle parks intact; package 0.16.0.
- GPUI polish P1 (Wave 6) — Cmd+K command palette lite (sisters / rooms / settings sections / Jobs); visible steer-queue card (remove / send-now); shared `ListRow` density + hover end-slot; `Tip` microcopy on titlebar / rail / Jobs; opaque menuFill overlays; idle parks intact; package 0.16.0.
- GPUI polish P2 (Wave 6) — optional Mac OS notify (background mouth complete / needs approval; Quiet + `AUTOMATON_DISABLE_NOTIFICATIONS`); pulse lease strides (MouthWait / Activity slow cadence on expensive surfaces); feed edge-fade spike; Shortcuts help from live `KEYMAP`; `docs/wave6-gpui-polish.md` + idle-cpu honesty; no CopilotKit / gpui-kit; no version cut in P2.
- Wave 7 P0 OpenBot parity — ToolLine mouth/hop feed cards; `ask_person` judgement exit; mouth silence watchdog + sticky stopped banner (`docs/wave7-p0-openbot-parity.md`); patterns only — no CopilotKit / `@ag-ui/*` / generative UI; package 0.15.0 (no tag in P0 PR).
- Wave 7 P0 OpenBot parity — ToolLine mouth/hop feed cards; `ask_person` judgement exit; mouth silence watchdog + sticky stopped banner (`docs/wave7-p0-openbot-parity.md`); patterns only — no CopilotKit / `@ag-ui/*` / generative UI; package 0.16.0.
- Bezel light appearance (Wave 2 P2) — designed light (Settings → Window → Appearance; not invert of graphite); Brand-complete Settings (remaining CARD/FIELD via useChrome; update modal scrim); ToggleGroup, EmptyState, Sheet extracted. Still vendored `@gpuix/react` (Wave 3.2 is 0.6.2 + matched native). Package 0.8.0.

## Safety
Expand Down
2 changes: 1 addition & 1 deletion docs/marks.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Living marks (Wave 3.2)

Rail marks are Automaton art (`SisterBlob` + baked `src/marks/` frames), not
Grok/Hermes assets. Package is **0.15.0** (Wave 3 living-mark gel checkpoint).
Grok/Hermes assets. Package is **0.16.0** (Wave 3 living-mark gel checkpoint).

Rolled back to first native gel (pre-3.2.1): full GELATIN, no mark-spring look hold, native hard-park 420ms, soft-wide/tall ±2px.

Expand Down
2 changes: 1 addition & 1 deletion docs/version.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Installed Automaton shows a real version — not an unversioned tip forever.

Current band is package (`0.15.0`). Version stays until the next band cut. This surface does
Current band is package (`0.16.0`). Version stays until the next band cut. This surface does
**not** bump the band and does **not** publish to PyPI.

## Sources of truth
Expand Down
4 changes: 2 additions & 2 deletions macos/Automaton.app/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.15.0</string>
<string>0.16.0</string>
<key>CFBundleVersion</key>
<string>0.15.0</string>
<string>0.16.0</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "automaton",
"version": "0.15.0",
"version": "0.16.0",
"private": true,
"license": "MIT",
"type": "module",
Expand Down
Loading