Skip to content

feat: harden v1.2 mesh bootstrap#57

Open
nillo wants to merge 3 commits into
mainfrom
integration/v1.2-mesh
Open

feat: harden v1.2 mesh bootstrap#57
nillo wants to merge 3 commits into
mainfrom
integration/v1.2-mesh

Conversation

@nillo
Copy link
Copy Markdown
Contributor

@nillo nillo commented May 20, 2026

Summary

Ships the v1.2 mesh bootstrap hardening slice. This adds explicit worker startup prompts, state-scoped room/session registries for port-base and named-runtime flows, stricter daemon identity matching, safer Claude channel argv shape, and read-only mesh-lane affordances.

Changes

  • Add explicit mesh worker startup prompts that survive the instance-env shell wrapper.
  • Scope room/session registries to the active state dir for daemon, session, and kill paths.
  • Tighten live daemon reuse around instance id, daemon identity, pid, control port, project root, and state dir.
  • Switch Claude channel injection to --channels=<value> / --dangerously-load-development-channels=<value>.
  • Default mesh Claude launches to approved-channel loading under CONTEXTRELAY_ENABLE_MESH=1.
  • Auto-enable named sessions for read-only mesh lanes and keep write-capable worktree conflict checks intact.
  • Bump release surface to 1.2.0 and document the slice in CHANGELOG.md.

Testing

  • bun run check passed after the version/changelog update:
    • 690 src tests passed
    • 3 example tests passed
    • CLI/plugin/docs sync checks passed
    • plugin validation, plugin version alignment, and lockfile checks passed
  • Registry scoping audit: no non-test production callers of unscoped registry helpers outside src/session/registry.ts; daemon/session/kill paths use state-scoped registry paths.
  • Prior tmux final smoke produced ready notes from default and named workers.

Follow-ups

  • Cleanup migration for orphan project-root rooms.json / sessions.json.
  • Claude allowlist UX line polish.
  • Regression coverage for reused/orphaned-TUI restart path.
  • Permission-flip-aware shared-worktree re-check if lane permissions become mutable in-place.

Notes

The untracked game/ folder from the separate mini-game task is intentionally not included in this PR.

Comment thread src/session/rooms.ts
@@ -0,0 +1,871 @@
import { randomUUID } from "node:crypto";
import { existsSync, mkdirSync, readFileSync, rmSync } from "node:fs";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants