P0: staging→main — CWE-78 + all security fixes - #1582
molecule-ai[bot] wants to merge 1156 commits into
Conversation
…enant docs: staging environment design + Phase 36 + Tunnel migration plan
…i-key-docs docs(infra): document ANTHROPIC_API_KEY as required global secret (closes #894)
…04-17 docs(security): SAFE-MCP internal advisory 2026-04-17
chore(eco-watch): 2026-04-18 daily sweep — chrome-devtools-mcp + craft-agents-oss + BLOCK MemPalace
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs: Partner API Keys — programmatic org management (Phase 34)
…secret-scrub fix(security): redact secrets from commit_memory before persistence (closes #834)
fix(hitl): emit log_event() on approval grant and denial — Art. 14 audit gap (closes #893)
…etlimit fix(canvas): repair TypeScript fixture drift in BudgetLimit and test factories
feat(plugins): extend runtime declarations to hermes — 5 SKILL.md plugins
…anel feat(canvas): audit trail visualization panel (closes #753)
…kpoint-step3 feat(checkpoints): Temporal crash-resume — GET /checkpoints/latest + history injection (closes #583)
…ng (#768) - Add supply_chain.go with VerifyManifestIntegrity (SHA256 content check) - Add pinned-ref enforcement to GithubResolver.Fetch (rejects bare org/repo) - Fix duplicate TestSlackAdapter_Type across channels_test.go and slack_test.go - Fix sync.Once lock copy in audit_test.go resetAuditKeyCache - Fix slack_test.go horizontal rule expectations to match implementation - Existing tests updated with PLUGIN_ALLOW_UNPINNED=true for bare-ref specs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix(platform): resolve go vet errors + supply chain hardening
…, keyboard nav Adds role="button", tabIndex, aria-label="Select <name>", and keyboard handlers (Enter/Space) to TeamMemberChip. Fixes 5 failing a11y tests from issue #831. Updates eject button test to match existing label format. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix(canvas): add a11y to TeamMemberChip — keyboard nav + ARIA
- Full session retrospective: tunnel E2E verified on prod + staging subdomains - Worker source tracked in infra/cloudflare-worker/ (was only in /tmp) - Worker changes: reserved slug passthrough + multi-level subdomain bypass - Known issues, follow-ups, cost impact, key learnings documented Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs: Cloudflare Tunnel migration report + Worker source
Security: - Replace hardcoded Cloudflare account/zone/KV IDs in wrangler.toml with placeholders; add wrangler.toml to .gitignore, ship .example - Replace real EC2 IPs in docs with <EC2_IP> placeholders - Redact partial CF API token prefix in retrospective - Parameterize Langfuse dev credentials in docker-compose.infra.yml - Replace Neon project ID in runbook with <neon-project-id> Community: - Add CONTRIBUTING.md (build, test, branch conventions, CI info) - Add CODE_OF_CONDUCT.md (Contributor Covenant 2.1) Cleanup: - Replace personal runner username/machine name in CI + PLAN.md - Replace personal tenant URL in MCP setup guide - Replace personal author field in bundle-system doc - Replace personal login in webhook test fixture - Rewrite cryptominer incident reference as generic security remediation - Remove private repo commit hashes from PLAN.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…scrub secrets Renames: - platform/ → workspace-server/ (Go module path stays as "platform" for external dep compat — will update after plugin module republish) - workspace-template/ → workspace/ Removed (moved to separate repos or deleted): - PLAN.md — internal roadmap (move to private project board) - HANDOFF.md, AGENTS.md — one-time internal session docs - .claude/ — gitignored entirely (local agent config) - infra/cloudflare-worker/ → Molecule-AI/molecule-tenant-proxy - org-templates/molecule-dev/ → standalone template repo - .mcp-eval/ → molecule-mcp-server repo - test-results/ — ephemeral, gitignored Security scrubbing: - Cloudflare account/zone/KV IDs → placeholders - Real EC2 IPs → <EC2_IP> in all docs - CF token prefix, Neon project ID, Fly app names → redacted - Langfuse dev credentials → parameterized - Personal runner username/machine name → generic Community files: - CONTRIBUTING.md — build, test, branch conventions - CODE_OF_CONDUCT.md — Contributor Covenant 2.1 All Dockerfiles, CI workflows, docker-compose, railway.toml, render.yaml, README, CLAUDE.md updated for new directory names. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: open-source preparation — scrub secrets, add community files
… COPY paths Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: railway.toml buildContext for workspace-server rename
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: Dockerfile go.sum path after workspace-server rename
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: last stale platform/ refs in scripts, tests, compose
- Remove compiled workspace-server/server binary from git - Fix .gitignore, .gitattributes, .githooks/pre-commit for renamed dirs - Fix CI workflow path filters (workspace-template → workspace) - Replace real EC2 IP and personal slug in test_saas_tenant.sh - Scrub molecule-controlplane references in docs - Fix stale workspace-template/ paths in provisioner, handlers, tests - Clean tracked Python cache files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: final open-source cleanup — binary, stale paths, private refs
DevOps Review — LGTM ✅PR #1582 fixes the
Note: If merged to staging (vs main/incident path), the local No CI/workflow changes. Reviewer: Core-DevOps |
- GH_TOKEN restored ✅ — push working - PR #1542 SSRF bypass: CONFIRMED SAFE (CP-QA APPROVED) - PR #1583 CWE-78 regression: CONFIRMED ❌ (container_files.go:174) - exec form reverted to "/configs/" + filePath (string concat) - Correct form: ["rm", "-rf", "/configs", filePath] - PR #1588 opened as regression guard - PR #1582 still BEST PATH ✅ (mergeable=True) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GH_TOKEN restored ✅ — push working - PR #1542 SSRF bypass: CONFIRMED SAFE (CP-QA APPROVED) - PR #1583 CWE-78 regression: CONFIRMED ❌ (container_files.go:174) - exec form reverted to "/configs/" + filePath (string concat) - Correct form: ["rm", "-rf", "/configs", filePath] - PR #1588 opened as regression guard - PR #1582 still BEST PATH ✅ (mergeable=True) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Code review: changes verified. CWE-78 secure exec form confirmed on line 186 of container_files.go: []string{"rm", "-rf", "/configs", filePath} — separate args, no string concat. validateRelPath guard in place. All security fixes from staging present. Approving for CI gate.
- Auto-merge enabled on PR #1498 (enabled 16:12:05Z) - CI failing on hongming-m1-mini runners (Go + Python) - New CI run queued on sha 307859d - SDK Lead relay COMPLETE (all commits already on main) - plugin-dev repos 1-5 do not exist (404) - PR #1582 remains BEST PATH fallback Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- PR #1498 now on branch ship/security-fixes-to-main-0516 (head f2b4647) - CI run 24790258740 in progress, Platform Go job queued - PR #1585 MERGEABLE — CWE-78 fix + go.mod update (BEST PATH, 2 fewer commits) - PR #1582 MERGEABLE — 2 extra commits vs #1585 - GH_TOKEN 401 org-wide; GitHub App token ghs_vEnAce2oT... working Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
[Molecule-Platform-Evolvement-Manager] Closing — duplicate security merge attempt. PR #1560 is the consolidated fix. |
Pull request was closed
- MAIN IS SAFE: fc27477 has SAFE exec form (Cmd: [...]"/configs", filePath]) - c88c15a (VULN concat) superseded by 64ccf8e (CWE-78 rm scope fix) - PR #1498 CLOSED at 16:49:45Z by others (not merged) - PRs #1555, #1582, #1583, #1585 CLOSED - SDK/MCP commits already on main Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
[Molecule-Platform-Evolvement-Manager] Superseded by #1625. |
Pull request was closed
P0 Security Merge: staging → main
Pushes all security fixes from staging to main via protected branch PR.
Includes:
CI required. Must pass all checks before merge.
Local merge: 1,152 commits ahead of origin/main.