Skip to content

Releases: feci/parley-deck-cli

v1.26.0 — TUI /run command

13 Jun 13:01
c099bea

Choose a tag to compare

  • New TUI /run command. Advance the protocol on demand from inside the live
    TUI — it kicks the auto-driver (cross-review → consensus → finalize → opted-in
    implementation) for the current run. Most useful with --no-auto runs; under
    the default auto-drive it is a no-op once driving has started (idempotent). The
    command appears in /help and slash autocomplete.

v1.25.0 — auto-drive on by default

13 Jun 12:52
85eeb2b

Choose a tag to compare

Auto-drive is now the default.

  • parley run auto-drives by default. After round-01 the protocol now
    advances automatically — cross-review rounds, consensus draft, signoff
    requests, and finalize — without you running the next step. Pass --no-auto
    to opt out (stop after round-01 and advance manually). The flipped flag also
    governs the launch prompt: a default run launches and drives unattended, while
    --no-auto (without --yes) restores the pre-launch confirmation.
  • Auto-drive now runs inside the TUI. Previously the driver only ran on the
    --no-tui path, so a TUI run stalled at round-01. The driver now runs in the
    background while the live TUI shows it advancing (its output is discarded so it
    never corrupts the render; quitting the TUI stops it).
  • Code-mutation stays gated. The implementation/fix-up phases (Phase 5–8) are
    still only auto-driven when the idea opts in via auto_implement; flipping the
    auto default does not auto-write code. --no-implement still stops the driver
    at FINAL.md.
  • parley continue is unchanged: it still prints the next action by default and
    executes it only with --auto.

v1.24.1 — embedded default protocol resync + drift guard

13 Jun 11:58
56e01ec

Choose a tag to compare

Maintenance (idea embedded-default-protocol-resync, PR #47):

  • Embedded default protocol resynced with the live deck. The parley init
    bootstrap template (internal/protocol/defaults/COOPERATION.md) gained the
    missing ## 12. Pipeline blocks & action stages section (byte-identical to the
    live deck) and was genericized: header Workspace/Created are now
    placeholders and both §2 tables ship empty bodies, so a freshly parley init-ed
    project no longer inherits this repo's roster/workspace.
  • Anti-drift guard: a fail-closed Go test (TestEmbeddedDefaultMatchesLiveDeck)
    asserts the embedded default stays in sync with parley-deck/COOPERATION.md
    (modulo five documented, anchored project-specific zones) and that the embedded
    bootstrap shape holds — so a protocol edit landing in only one copy now breaks
    the build. Plus TestDefaultCooperationForInit for the init output.
  • Synced the project deck to parley-deck-skill 1.3.1 (§12 was already present).

v1.24.0 — runner hardening + review-gate honesty (kindly adoption)

12 Jun 16:36
d05168b

Choose a tag to compare

Adopted from the MIT-licensed "kindly" skill (ideas runner-hardening-kindly +
meta-protocol-change-review-gate-honesty):

  • Agent supervision: first-output watchdog (120s, one retry), stall guard
    (30m, output-growth based), persisted agent.heartbeat events (60s; excluded
    from transcripts/triggers); counting writers — zero healthy-path I/O; typed
    agent.no_first_output/agent.stalled events appended BEFORE the kill.
    Config: first_event_timeout_ms, stall_timeout_ms, heartbeat_ms.
  • Failure classification: agent.failed now carries failure_class +
    recovery_hint (rate-limit/auth/billing/overloaded/…); surfaced in the TUI
    narrator and agent headers.
  • Artifact beats exit code: a validated artifact with an ordinary nonzero
    exit finishes with agent_exit instead of failing (removes the agy
    wrote-then-exit-1 flake); ACP validation now respects the run phase; fix-ups
    validate IMPLEMENTATION.md instead of trusting exit 0; Result.Success().
  • Review snapshots: Phase 6 reviewers read a disposable shared-clone
    checkout on local tmp (dirty trees become temp-index snapshot commits);
    artifacts move back via copy+fsync+rename; loud fallback events.
  • parley consult + parley consults list: advisory cross-agent questions
    with durable artifacts under parley-deck/consults/ (never quorum evidence).
  • Hardening: claude participants shed nested host markers; read-only git probes
    set GIT_OPTIONAL_LOCKS=0; fsutil.AppendLine; docs/agent-cli-mechanics.md.
  • Protocol: Phase 6 "Review briefs and dispositions" (no-suppression),
    Phase 8 opt-in strict_gate + "Stopping judgment", §8 "Consults" standing;
    mirrored to the embedded default protocol.

v1.23.0 — protocol visibility in the live TUI

11 Jun 22:51
ba94719

Choose a tag to compare

Highlights

  • Protocol ribbon on every tab (Ctrl+P): ◆ Ph 2: Cross-Review (R02) · Delivered 1/3 · Waiting: agy, hermes · Next: consensus — with [STALE]/disk-fallback/reconciled-age honesty markers and a 3-line expanded view (Pipeline / Delivery / System).
  • Tab activity glyphs: braille spinner (output flowing), · (running silent), ✓ delivered, ✗ failed, x killed, - skipped, ! STALE — fed by tail-cursor growth plus a 2s stat cache for unvisited tabs.
  • Narrator lines woven into every transcript (── 12:43:51 codex wrote round-02/codex.md ──) with a bounded replay ring; /narrate cycles protocol → verbose → off.
  • Buffered-agent placeholder: a silent agy tab now shows declared buffering, liveness, byte counters, and its own recent activity instead of a blank pane (new buffers_stdout agent flag, TOML-configurable).
  • Protocol tab (/protocol or /status): PIPELINE 0-8, DELIVERY matrix, SIGNOFFS, NEXT; /refresh forces a reconcile.
  • Home: per-idea phase chip + attention badge.
  • Status line: ph=2:xrev-r02 wait=agy,hermes replaces round=….
  • Driver: new run.phase event after every phase-changing cursor commit; cursor-save errors are no longer discarded; driver.RebuildDetail exports phase evidence in one disk pass.

All disk reconciliation is event-driven + 15s/60s timers — nothing runs on the 250ms tick; phase never regresses without two agreeing reconciles (virtio-fs discipline).

Designed and reviewed via Parley Deck (parley-deck/ideas/tui-protocol-visibility/, PR #45).

v1.22.0 — never orphan a run on a manifest hiccup

07 Jun 21:35
2536827

Choose a tag to compare

Fix: launch failed: mkdir …/runs/<id> could still orphan a run (follow-up to 1.21.0)

1.21.0's MkdirAllResilient (75ms) didn't fully stop it: the run is created but run.json is missing → the deterministic failure is runmanifest.Write, whose mkdir on the already-existing run dir fails under a virtio-fs stale cache that outlasts 75ms.

Two-part hardening:

  1. Longer retry windowMkdirAllResilient 75ms → ~1.9s (8 attempts) to outlast a virtio-fs ~1s cache timeout. Healthy path unchanged; permission fails fast.
  2. Best-effort manifestruncontrol.Create no longer aborts the launch if the manifest write hiccups; it records run.manifest_deferred and continues. Orphaning is now deterministically impossible (the run is defined by events.jsonl; run.json is optional metadata).

Reviewed via Parley Deck (codex/agy/hermes — all ACCEPT).

Upgrade (macOS): brew update && brew upgrade parley-deck-cli — then fully quit any open parley TUI and start a fresh one (an already-running TUI is still the old binary).
Windows: x64 / arm64 .exe below.

v1.21.0 — resilient MkdirAll for virtio-fs launch failures

07 Jun 20:00
7f7b572

Choose a tag to compare

Fix: spurious launch failed: mkdir … on virtio-fs shared mounts

parley tuiN (new idea) could fail with launch failed: mkdir .../runs/<id>: <errno> even though the run dir was created and the run ran in the background (orphaned). Root cause: an AppleVirtIOFS (virtio-fs) shared mount with weak cross-process cache coherence makes os.MkdirAll return a transient ENOENT/ENOTDIR from a stale dentry/attribute cache while the dir is (or becomes) present.

Fix: new internal/fsutil.MkdirAllResilient — healthy path is exactly one os.MkdirAll (zero overhead); on error it returns nil when a fresh Stat shows the directory, fails fast on fs.ErrPermission, otherwise retries [0,5,20,50]ms and returns the last mkdir error. fs.ErrExist is never trusted blindly. Applied on the new-idea launch path (CreateIdea, Store.Append, runmanifest) and the live run path (runner/steer/phase58/handoff dirs, hitl questions).

Designed + reviewed via Parley Deck (claude/codex/agy/hermes) — all participants ACCEPT. 8 internal/fsutil tests; full suite green.

Install/upgrade (macOS): brew update && brew upgrade parley-deck-cli
Windows: download the x64 or arm64 .exe below.

parley-deck-cli 1.20.0 — live agent transcript

07 Jun 12:38
0b210c2

Choose a tag to compare

Live, scrollable, Codex-CLI-style agent transcript

Fixes blank agent tabs during a run. The tab is now a live conversation:

  • Streams in place — a streaming line rewrites itself via \r (the Codex-CLI "potom sa to prepíše"); the TUI used to strip \r.
  • Shows stderr (merged + dimmed [err]) where the otherwise-silent one-shot agents narrate; /stderr toggles it. codex exec shows live.
  • Always-on status header (● working / ✓ finished · wrote <artifact> / ✗ failed / killed / stale) — never blank.
  • Woven steers — typing to an agent appends ❯ you: … and the reply streams into the same scrollable history (no more panel that replaces the view); /artifact views the produced file.

No agent-flag changes (artifact capture untouched), no new deps; the transcript imports neither runner nor app. Reviewed via the full Parley Deck protocol (Phase 6 found 4 MAJOR → fixed → all three reviewers ✅ ACCEPT).

Upgrade

brew update && brew upgrade parley-deck-cli

Windows binaries attached.

parley-deck-cli 1.19.0 — durable agent kill + liveness

06 Jun 22:51
680f5dc

Choose a tag to compare

Durable, cross-restart agent kill (+ truthful liveness)

Fixes "an agent shows running for days and can't be killed after a parley restart."

  • Kill survives a restart — each agent's process identity is persisted; a restarted or opened/resumed run can kill it from the TUI (these runs previously had no kill at all). ctrl+k works there now.
  • Reaps the whole tree — agents spawn in their own process group, so a kill takes out orphaned grandchildren (the real cause of "running for days"); timeouts group-kill too.
  • Never kills the wrong process — a strict fail-closed check (boot-id + microsecond start-time + process-group + session-leader + command) means a reused PID is never signaled; parley never signals its own group.
  • RUN vs STALE badge — see whether an agent is genuinely alive; ctrl+k on a stale one clears the hanging badge, and Home shows a stale-agent banner.

No new dependencies. macOS/Linux/Windows build-tagged (Windows durable kill refuses; live kill works). Verified with real-process tests on macOS (group kill, grandchild reap, tampered-identity refusal, live end-to-end durable kill).

Designed + reviewed via the full Parley Deck protocol (claude/codex/agy/hermes): Phase 6 found 2 CRITICAL + 4 MAJOR → fixed → all three reviewers ✅ ACCEPT.

Upgrade

brew update && brew upgrade parley-deck-cli

Windows binaries attached.

parley-deck-cli 1.18.0 — TUI live steering, kill, autocomplete

06 Jun 19:58
8b06a44

Choose a tag to compare

TUI: live steering, per-agent kill, slash autocomplete

parley tui is now an active console:

  • Steer round-trip — type a message to an agent (agy/hermes/codex) and it actually runs: a fresh single-agent attempt whose reply streams into that agent's tab (cyan steer <agent> › prefix, " is replying…"). Previously steers were silently recorded with no reply.
  • Kill an agentctrl+k on a running agent tab → kill <agent>? (y/N) terminates just that agent (the rest of the run continues); it shows a KILLED badge.
  • Slash autocomplete — type / + a letter for a command menu; Tab completes, ↑/↓+Enter pick. Tab still switches tabs when you're not typing a command.

Steer attempts are isolated (own dir, no clobber of the round transcript/artifacts), depth-1 queue per agent; per-agent kill never tears down the whole run. Pure TUI/runner change; --no-tui untouched.

Built and reviewed via the full Parley Deck protocol (claude/codex/agy/hermes): design → FINAL → implement → review (4 MAJOR) → fix-up → re-review × 2; codex + hermes ✅ ACCEPT.

Install / upgrade (Homebrew)

brew update && brew upgrade parley-deck-cli

Windows binaries are attached below.