basquetWi + New ticket
evolutiva EVO-26

Adopt PMs-24/7 + spawn-workers-on-demand RAM-reduction model (brainstorm bs-mqor18api1w)

Backlog normal unassigned

Questions

No questions.

Activity

  • wi-cli-venus created · 2026-06-22
  • wi-cli-venus commented · 2026-06-22
    DECISION (fleet brainstorm bs-mqor18api1w, all 4 PMs + nw-venus, closed 2026-06-22): adopt hybrid gradient-calibrated on-demand worker model. PMs 24/7 (~380MB ea); heavy workers OFF by default. Idle saving ~3.5-4.5GB host-wide (evolutiva ~2.5GB). Tiering by task TYPE: T0 read-only diagnosis=in-process Claude Code sub-agents (Agent tool, per-app agentTypes already registered, inherit repo rules+shared/md; zero infra, works today). T1 reversible ship: MARS/PLUTO (live users)=on-demand 1 real coder + 1 INDEPENDENT audit (fixing hand never self-confirms PTD), spawn->push->PASS:sha->spin down; VENUS (demo data)=in-process coder+audit + PM push + PM Vercel-MCP PTD (audit-offline fallback sanctions). T2 DDL/irreversible=+db, pre-apply audit review, Elazar gate UNCHANGED. Incident mode never relaxes safety mechanics (setArchiveContext, no proactive row-patch/fix-source, DDL->Elazar) - only reversibility JUDGMENT loosens, only on venus (per EVO-25 live-audience gradient). Token cap ~200-250k/PM; REJECTED solo 300-400k (kills independent-audit hand+parallelism). Spawn: (A) in-process today; (B) real sibling-ccs via Bash 'tmux new-session -d ccs.sh' (independent lifetime+hub id) today, automated clean spawn = ONE nw build item. OWNERS: nw-venus=spawn-agent.sh wrapper (~20 line, tmux+ccs.sh) + optional systemd on-demand-worker@ auto-reap. venus=(A) pilot (already PM-only, model proven). NEXT: nw scopes/builds wrapper; venus runs (A) diagnosis pilot; then mars/pluto roll to PM-only + on-demand (B).
  • wi-cli-venus commented · 2026-06-22
    SPAWN-MECHANISM decided (brainstorm bs-mqorjb4b03g, all 4 PMs, closed 2026-06-22). REPLACES Elazar's proposed timed-keystroke sequence (1@30s/ss/ss/compact/exit) with LAUNCH-ARG + SELF-EXIT (deletes the fragile send-keys surface, not hardens it). Happy path: PM runs spawn script with TASK baked into ccs initial-prompt -> worker boots, ccs auto-registers+auto-joins AROs, holds its task, DMs PM, on done self-runs 'persist durable memory -> (live: await audit PASS) -> /exit'; PM watches hub for PASS. Zero keystrokes/timers happy path. tmux->ccs DIRECT via tmux-ccs.sh (NOT tmux->terminal->ccs; extra PID = orphan/kill bug per Elazar). LIFECYCLE: done-detection = existing PTD PASS:<sha>+live-version (reuse, no clock); granularity per-INCIDENT keep worker WARM across sequential WIs (proof PLUTO-182->184), reap on incident close, TTL reaper = hang-backstop only; reap pair only at PTD close, NEVER reap coder before audit PASS (audit may BLOCK->rework); crash/hang before PASS = UNVERIFIED prod, never silent-reap+FINISH, re-spawn/escalate; reaper hard-kill MUST hub-deregister (no zombie roster). GRADIENT: mars/pluto=real PAIR coder+INDEPENDENT audit; venus=in-process coder+audit+PM-push+PM Vercel-MCP PTD live-version match, no real spawn, venus=keystroke-free-spawn PILOT. SHARED-TREE guard (mars/pluto): coder+db share one checkout -> gitpush.sh add -A sweeps other worker dirty files -> keep single-pusher flock mutex + git-status gate even for ephemeral workers. IDENTITY: spawn into existing per-app dirs (coder-mars/ etc; already have .agent-name+.claude+agentType+.md). BOUNDARY: PM EXECUTES spawn/reap scripts (runtime-independent of nw uptime); scripts stay nw/bin-OWNED+built. BUILD (on Elazar go): spawn-agent.sh (tmux-ccs.sh, launch-arg, tmux has-session idempotency); reaper/TTL watchdog w/ hub-deregister; launch-arg task template w/ self-exit tail. HELD for Elazar go + his OK on launch-arg-replaces-keystrokes.
  • wi-cli-venus commented · 2026-06-22
    CORRECTION (Elazar-flagged + web-verified 2026-06-22): a Claude Code agent CANNOT self-run /exit. /exit is a client REPL command parsed from input, NOT a model-invokable tool; model emitting '/exit' as text does nothing (slash cmds unavailable in headless too - anthropics/claude-code#837). So 'worker self-runs /exit on done' from the spawn decision is INVALID. FIX: teardown FULLY external/reaper-driven (reaper already specified): on PASS hub-watch, reaper does tmux send-keys '/exit' (injects at prompt, works) or tmux kill-session, THEN hub-deregister (zombie-guard). Worker on done only persists durable memory + DMs PASS/done; does NOT exit itself. Headless 'claude -p' auto-exits on completion but single-turn + kills background bash (hub poll shim) ~5s after return -> no BLOCK->rework, no hub presence -> headless = fire-and-forget one-shots only, NOT warm interactive worker. Net: self-exit step moves from worker prompt to reaper script, no new components. Rest of spawn decision unchanged. Sources: code.claude.com/docs/en/headless, github.com/anthropics/claude-code/issues/837.
  • wi-cli-venus commented · 2026-06-22
    VENUS PILOT (EVO-33) PASSED + verified 2026-06-22 — model proven end-to-end (real sibling-ccs workers, hub-registered, executed, externally torn down). 3 SPAWN-SCRIPT BUILD FINDINGS for nw/pm-llmmsgsrv: (a) pnpm v11 ERR_PNPM_IGNORED_BUILDS blocked ALL venus pushes — fixed via pnpm-workspace.yaml allowBuilds map (esbuild/sharp/unrs-resolver); 'pnpm approve-builds' hangs when detached, so the map is the non-interactive fix (pre-existing blocker the pilot surfaced). (b) bare positional label DOUBLE-REGISTERS (launcher bare name + shim -cc) — spawn-agent.sh MUST pass the full -cc name. (c) POST /unregister array form returns missing_agent; only singular {"agent":x} works — reaper must deregister one agent per call. (b)+(c) are spawn-agent.sh/reaper requirements; (c) is hub-API behavior (llmmsg-srv-cc/pm-llmmsgsrv territory).
  • wi-cli-venus commented · 2026-06-22
    Spawn-script PRODUCTIONIZED + PROVEN: EVO-34 closed — spawn-worker.sh v1.3 (c3088a2) all-green end-to-end on venus (gate auto-poll, --nocont fresh session, single -cc row, autonomous exec, clean reap), roster/pane-verified by pm-venus over 3 builds. Model is now one-command spawn + reap, executable by PMs. OPEN under this umbrella: #9 shared-tree flock (single-pusher mutex for mars/pluto where coder+db share one checkout) — deferred from the build, escalated to Elazar as a gitpush.sh-level vs PM-serialize decision (fleet blast radius). venus single-worker use is unblocked now; mars/pluto concurrent-worker use waits on the flock ruling.
  • wi-cli-venus commented · 2026-06-22
    #9 RESOLVED via fleet brainstorm bs-mqoxiw8ptby (Elazar challenged my framing; 4/4 PMs). My original framing was WRONG twice: venus is NOT single-worker (pilot artifact, not a design limit) and venus is NOT collision-safe. Disk-verified: mars=strict (.gitpush-strict present, protected), venus+pluto=non-strict (exposed). RESOLUTION: adopt mars two-layer guard on venus+pluto. Layer1 content isolation = .gitpush-strict marker forcing gitpush --only paths (stops sweeping co-worker WIP). Layer2 sequence serialization = per-repo flock wrapping the push (flock -w 600 per-app lockfile, gitpush --only). Orthogonal hazards: --only does not stop dup version-bump + rebase-onto-half-state on the non-atomic bump-stage-commit-rebase-push pipeline; index.lock does not either; flock does (mars bwi#298). gitpush.sh UNCHANGED + bin-owned; guard is per-repo lockfile+marker = ZERO fleet blast radius (resolves my original concern). Guard baked into spawn-worker.sh so ephemeral workers cannot omit it. DESCEND: pluto files PLUTO WI in aro:pluto, venus files VENUS WI in aro:venus, mars already compliant. Urgency: pluto highest (live, widest lane), venus lowest (pre-go-live).
  • wi-cli-venus commented · 2026-06-23
    REVERSAL (Elazar brainstorm bs-mqpzo3ly470, 2026-06-22, 4/4 PMs converged). Spawn-on-demand / fly-solo model is being DISABLED on venus+mars+pluto - too token-inefficient (venus spawned coder+audit+db to troubleshoot benign probe 404s; mars burned tokens on false positives; pluto drove chrome MCP to send welcome emails instead of coding a headless path). EVO-26 umbrella flips from build-the-spawn-model to RETIRE-it. Decision, 8 points: (1) kill PM spawning mechanically - bin bakes spawn-worker.sh+reaper to refuse unless Elazar-launch marker in env, removed from PM PATH, disable in-process Agent-tool path; Elazar sole launcher+reaper. (2) delete Autonomy/Fly-Solo section from evolutiva-pm-commons + each pm-autonomy.md; log-review = report-only not work-order; add Agent Boundaries (PM writes dispatch-ready brief, never spawns). (3) PM OUT of alert loop entirely - rail re-points app-classified REAL to DM Elazar directly, everything else log-row-only no DM; PM reads logs only when asked. (4) fail-toward-real classifier (ambiguous escalates to Elazar); detection preserved (caught MARS-180 real Safari crash), only fix-trigger moves to Elazar-launch. (5) root-fix probe noise at source - venus X-Audit-Probe demotion + internal-probe UA marker emit no alert row, port to mars+pluto; plus expected-signal registry allowlist. (6) code-dont-drive-a-browser - runtime behaviors get headless app path, browser agents = UI review only; enumerate+convert agent-driven runtime behaviors. (7) execution descends per-app but coder-pushed (Elazar-launched off PM briefs); spawn-worker.sh guard = bin. (8) SECOND-ORDER: option-b push-guard escalation STOOD DOWN - no spawned workers means no concurrent shared-tree pushes, no flock/gitpush.sh change needed; Layer-1 .gitpush-strict markers stay. Nothing executes until Elazar greenlights (every push now needs him to launch the coder). Pending Elazar confirms: PMs stay 24/7 thin ask-interface + he launches disable/conversion coders off PM briefs.
  • wi-cli-venus commented · 2026-06-23
    Decision amendment (venus pre-close flag): PM-out-of-loop must re-point BOTH PM-paging rails, not just applog. (3a) applog->PM rail (VENUS-5 + siblings): REAL to Elazar direct, else log-row-only. (3b) support->PM ticket rail (EVO-29 family: pluto EVO-32 live, venus EVO-30, mars EVO-31): ticket/access-request to queue/log-row-only PM reads on demand, only REAL-severity ticket DMs Elazar. Both nw-owned per-app daemons, Elazar-launched edits. Net: zero rail pages any PM; only inbound a PM acts on is Elazar saying check appEvents. bs-mqpzo3ly470 closed.
  • wi-cli-venus commented · 2026-06-23
    FINAL ratified (Elazar ballot, bs-mqpzo3ly470). 1=b refined: NO always-on agents at all - Elazar launches entire team on demand, work done, shuts down; no 24/7 PMs, no spawned workers, no autonomous monitoring between sessions (supersedes earlier close assumption PMs persist). 2=c both mechanical guard + policy, bin owns guard. 3: execution inside Elazar-launched team session, PMs hand briefs, coder pushes. 4=c both source-demotion + allowlist. 5=a REAL to Elazar DM else log-row-only; path is server-side (Vercel app + nw applog/support daemons on venus host) independent of agent team so Elazar still gets real-incident pings with team off; both rails (applog VENUS-5 + support EVO-29/30/31/32) re-pointed. 6=a push-guard stood down. 7=c defer all chrome-MCP conversions, rule stands as policy. Each PM preps app dispatch-ready brief for next team launch; no action now. bs-mqpzo3ly470 closed.
  • wi-cli-venus commented · 7w ago
    venus EVO-26 brief PREPPED (pm-venus-cc), held for next Elazar team-launch. Covers: commons/role Autonomy-Fly-Solo deletes + venus-pm-autonomy.md removal + log-review-to-report-only flip (coder); probe source-demotion DONE (X-Audit-Probe v0.65.19) + extend UA families + downstream expected-signal allowlist (coder); rail re-point 3a applog + 3b support EVO-30 to REAL=DM-Elazar else log-only no PM page (nw-venus, Elazar-launched); spawn-guard=bin. Re-scopes the not-yet-finished nw-venus pm-triage daemon so it must NOT page the PM.
task
2026-06-22 by wi-cli-venus
6w ago