Skip to content

Sandbox posture: sessions + ssh + browsing only — no servers; stay aligned with laptop state #1319

Open

Description

@dezren39

Directive (Drew, 2026-10-27)

The sandbox's job is running Muse sessions, their SSH connections, and web browsing — nothing else. Heavy and serving workloads belong on the laptop. Concretely:

  1. No servers on the sandbox. Do not enable or run servers there (opencode serve, mcpx, proxies, app servers). Today the sandbox still carries a deliberate 2026-10-20 install: an opencode-serve system unit (:4096, from ~/tools/install-opencode-service.sh, an init.sh run_step mirroring mcpx) plus the mcpx daemon unit. Retire these from the sandbox install path (init run_steps / units) so a sandbox recycle does not resurrect them. Until that lands, do not start any NEW servers on the sandbox.
  2. The sandbox stays aligned, not serving. Its checkouts and config copies track the laptop's state (repo main + the deployed config copy). Alignment = pull/sync, never a local serve. (2026-10-27: sandbox code checkout's local config state preserved on branch sandbox-local-state-2026-10-27 — a strict subset of main, zero local-only model keys — and the checkout fast-forwarded to main.)
  3. Work routes to the laptop. Tasks are fed to OpenChamber sessions on the laptop; the orchestrator monitors progress, unblocks issues, gives approvals, and keeps the queue fed. Sessions working from the sandbox should be reminded that the laptop, RustDesk, and Google login exist and are the intended execution environment.

Acceptance

  • Sandbox install path no longer enables/starts opencode-serve or mcpx; a recycle comes up with no listening fleet servers on the sandbox.
  • Sandbox checkouts/config copies have a documented, repeatable alignment step that does not involve running a server.
  • Orchestrator loop (existing fleet machinery) reflects the posture: dispatch to laptop OpenChamber first; sandbox = sessions + ssh + browsing only.

Acceptance criteria

  • Sandbox install path no longer enables or starts opencode-serve or mcpx; a sandbox recycle comes up with no listening fleet servers on the sandbox.
  • Sandbox checkouts/config copies have a documented, repeatable alignment step that does not involve running a server.
  • The orchestrator loop reflects the posture: dispatch to laptop OpenChamber first; sandbox = sessions + ssh + browsing only.

Activity

  1. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  2. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    Scope corrected per Drew (2026-10-27 01:40 CDT): this is DISABLE-in-boot, not retirement — the server setup stays installed; it just never autostarts. Executed tonight on the sandbox:

    • Session check first: the serve's own DB held 31 stored sessions, none updated since 2026-10-22, and zero client connections to :4096 — no active sessions were running on it.
    • systemctl stop opencode-serve — process verified gone, port 4096 closed.
    • systemctl disable opencode-serve — removed the multi-user.target.wants symlink. Root cause of the resurrection: init.sh already had the run_steps commented out since Drew's 2026-10-25 order (setup intact, 'Do not re-enable'), but the systemd unit's own enablement bypassed init and started the server anyway (process had been up since 00:44 tonight).
    • mcpx: no systemd unit exists under that name on the sandbox; the stray daemon process has exited (idle-exit, no consumer with the serve off). Its init run_step stays commented like the others (muse-proxy, agy-proxy likewise).

    State now: nothing serving on the sandbox; boot paths (init run_steps + systemd enablement) both disabled; installers and unit files untouched for manual use if ever wanted.

  3. added
    kind/infrastructureInfrastructure / host-portability work
    source/humanFiled directly by a human
    priority/highImportant and time-sensitive
    effort/mMedium: expected under 1 day of work
    area/infraInfrastructure, deployment, and operations
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet-monitor intake pass (protocol §5), 2026-10-28. This issue arrived with no labels at all; it is Drew's own directive (author dezren39), so it is filed as source/human.

    Still live: no merged or open PR references #1319 (checked 2026-10-28T01:47Z), and the sandbox install path still carries the 2026-10-20 server install this issue targets — nothing has landed it yet.

    Related: no directly related open issue found in this pass. Adjacent fleet-posture items: #1188 (OpenChamber session API inventory) and #1130 (lane-style shifts for the non-code queues) both assume the laptop-first execution model this issue codifies.

    Notes / risks: the directive is clear and the acceptance list in the body was already well-formed — the appended ## Acceptance criteria section restates it verbatim in criteria form. The main risk is a partial retirement: removing the units without removing the init.sh run_steps would let a sandbox recycle resurrect the servers, which is exactly the failure the first criterion guards against. Priority set to high because every fleet job's execution assumptions depend on this posture; effort/m because it spans install path, alignment documentation, and orchestrator behaviour.

    Suggested approach: remove the opencode-serve and mcpx run_steps/units from the sandbox install path, verify with a recycle (or a dry inventory of enabled units) that no fleet server listens, then document the alignment step where sandbox operators will actually find it.

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 2, 2026
  6. 42 remaining items

  7. added
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  8. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 6566 (repo-health-code-pilot, repo-worker-code; OpenChamber scheduled lane 8ac61616-3815-4e7b-b33d-840a3829154a)
    state: parked for 20 minutes; PR #5334 is OPEN at 41a8b01. Targeted kill-collector tests pass 8/8 and diff check passes; aggregator tests/typecheck and contract corpus are PENDING, CodeRabbit is skipping.
    resume: Fresh-check PR #5334 checks and diff; merge only when required checks are green. #1319 remains open until the sandbox operator attaches the read-only unit/timer/listener/init.sh audit commands from the PR body. This lane did not inspect or modify the sandbox host.

  9. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 4, 2026
  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    {"kind":"handoff","task":6566,"lane":"code-v","execution_lane":"opencode","state":"parked","note":"task 6566 handed off to opencode claimant by lane code-v. Fresh revalidation: issue #1319 OPEN; canonical PR #5334 OPEN at 41a8b01, authored by Drew (dezren39) — ownership hard stop, PR/branch/worktree untouched. Prior progress: branch queue/6566-1319-sandbox-posture, bun kill-collector-drill tests 8/8 pass, diff-check pass; CI was pending at last park. Resume only if Drew releases ownership or PR #5334 closes/merges."}

  13. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  14. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · bound

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/infraInfrastructure, deployment, and operationseffort/mMedium: expected under 1 day of workkind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivequeue/parkedQueue task is parked (waiting on CI, time, or an event)source/humanFiled directly by a humanstatus/parkedDeliberately paused with a recorded resume conditiontask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions