- workspace-runtime-package.md: add explicit "Where to make changes" section documenting the mirror-only policy on Molecule-AI/molecule-ai-workspace-runtime — direct PRs are auto-rejected by mirror-guard CI; staging push regenerates both the mirror and the PyPI wheel via .github/workflows/publish-runtime.yml. - infra/workspace-terminal.md: replace dead molecule-core#1528 reference (repo renamed to molecule-monorepo, no longer accepting issues at the old name) with a forward-pointer to monorepo + molecule-controlplane issue trackers. - architecture/backends.md: bump audit date to 2026-05-02 and add rows for channel envelope enrichment (#2471), chat_history MCP tool (#2474), /activity before_ts paging (#2476), /activity peer_id filter (#2472), runtime_wedge smoke gate (#2473 + #2475), and the canvas-E2E state-file requirement (#2327). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
Workspace Terminal
Full runbook moved to the internal repo on 2026-04-22.
The implementation-level content (EIC bootstrap script output, per-tenant SG backfill commands, tenant-specific identifiers) now lives at
Molecule-AI/internal/runbooks/workspace-terminal.md(private — Molecule AI org members only).
What this feature is (public summary)
The canvas Terminal tab opens an interactive shell on a workspace's
compute — locally this is a docker exec into the container; in the
SaaS tenant path it's an SSH session into the tenant EC2 (or the
workspace container running on it) over an EC2 Instance Connect
Endpoint.
End users see a terminal; no direct public SSH ingress is required.
Tracking: originally molecule-core#1528 (resolved 2026-04-22). The
molecule-core repo has since been renamed to molecule-monorepo and no
longer accepts new issues under the old name; future terminal work is
tracked in molecule-monorepo issues (workspace-server scope) and in
molecule-controlplane issues for the EIC / per-tenant SG path.
Where things are
- Go handler:
workspace-server/internal/handlers/terminal.go - CP provisioner (EIC endpoint, per-tenant SG):
Molecule-AI/molecule-controlplane/internal/provisioner/ec2.go—EICEndpointSGIDfield - Bootstrap script:
Molecule-AI/molecule-controlplane/scripts/bootstrap-eic-terminal.sh - Detailed ops runbook (internal):
Molecule-AI/internal/runbooks/workspace-terminal.md
Why the split: the bootstrap-script output + per-tenant SG ingress backfill commands include AWS resource IDs and tenant slugs that don't belong in a public repo, but the high-level design is useful for external readers + self-hosters.