molecule-ai-workspace-runtime/molecule_runtime
rabbitblood f1bede31a8 feat(precommit): add secret scan to bundled pre-commit hook (defense-in-depth for #2090-style leaks)
Adds a secret-scan gate alongside the existing internal-paths block in
the runtime's bundled pre-commit hook. Runs on every commit in every
repo (not scoped to Molecule-AI public repos like the internal-paths
block) — refuses any staged addition matching a high-value credential
shape and prints a recovery message that does NOT echo the secret value.

Pattern set covers GitHub family (ghp_, ghs_, gho_, ghu_, ghr_,
github_pat_), Anthropic / OpenAI / Slack / AWS — same shape as the
tenant-proxy CI scanner; keep aligned when either side adds a pattern.

Single hook file dispatches both checks (renamed
pre-commit-block-internal-paths.sh → pre-commit-checks.sh) so each
agent commit pays one git-config + one hook-install surface, not two.
Both checks share the existing fast-paths (skip if GIT_AUTHOR_NAME
unset; skip during rebase / cherry-pick / merge / revert).

End-to-end test exercises a real bash subprocess against a real temp
git repo with real staged content. Three cases:
 - ghs_-prefixed token in package.json (the actual #2090 vector) → refuse
 - clean README → pass through
 - sk-ant- key in a non-Molecule-AI repo → refuse (secret scan is universal,
   internal-paths block is not)

Skipped when bash is not on PATH so Windows test environments without
WSL stay green.

Bumps version 0.1.15 → 0.1.16.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 11:57:39 -07:00
..
adapters Merge branch 'main' of https://github.com/Molecule-AI/molecule-ai-workspace-runtime into fix/507-mcp-server-path-absolute-imports 2026-04-21 06:37:38 -07:00
builtin_tools test+fix(builtin_tools/validation): add test coverage + fix ".." bypass in regex 2026-04-21 00:55:08 +00:00
plugins_registry fix(plugins_registry/builtins): strip API keys from plugin setup.sh env 2026-04-20 22:52:13 +00:00
policies feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
scripts feat(precommit): add secret scan to bundled pre-commit hook (defense-in-depth for #2090-style leaks) 2026-04-26 11:57:39 -07:00
skill_loader feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
__init__.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
a2a_cli.py fix(a2a_cli): validate WORKSPACE_ID in discover() before X-Workspace-ID header 2026-04-21 01:35:37 +00:00
a2a_client.py fix(a2a): include exception class + error code in [A2A_ERROR] (#51) 2026-04-24 11:22:57 -07:00
a2a_executor.py feat: migrate a2a-sdk 1.x (KI-009) (#39) 2026-04-24 01:54:33 +00:00
a2a_mcp_server.py fix(builtin_tools/audit): fail-secure RBAC — read-only default when config unavailable 2026-04-20 22:47:38 +00:00
a2a_tools.py fix(builtin_tools/validation): complete WORKSPACE_ID validation in a2a_tools.py 2026-04-21 00:55:08 +00:00
agent.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
claude_sdk_executor.py Merge pull request #42 from Molecule-AI/fix/stderr-capture-a2a-response 2026-04-24 13:25:15 -07:00
cli_executor.py feat: migrate a2a-sdk 1.x (KI-009) (#39) 2026-04-24 01:54:33 +00:00
config.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
consolidation.py fix(builtin_tools/validation): cover remaining WORKSPACE_ID URL usages 2026-04-21 00:55:08 +00:00
coordinator.py fix(builtin_tools/validation): cover remaining WORKSPACE_ID URL usages 2026-04-21 00:55:08 +00:00
credential_helper.py feat: ship GitHub credential-helper inline in runtime (fixes #1933 class) 2026-04-24 00:41:32 -07:00
events.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
executor_helpers.py fix(runtime): capture stderr in A2A error response (closes #66) 2026-04-24 05:00:51 +00:00
heartbeat.py fix(heartbeat): refresh on-disk auth token on 401 + retry once (#1877) 2026-04-23 13:26:36 -07:00
initial_prompt.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
llm_auth.py fix(llm_auth): tighten base-URL hostname match + strip whitespace + no token in logs 2026-04-23 10:46:07 -07:00
main.py fix: enable v0_3 compat in JSON-RPC dispatcher — platform sends old method names 2026-04-24 02:37:07 -07:00
molecule_ai_status.py fix(builtin_tools/validation): cover remaining WORKSPACE_ID URL usages 2026-04-21 00:55:08 +00:00
platform_auth.py fix(heartbeat): refresh on-disk auth token on 401 + retry once (#1877) 2026-04-23 13:26:36 -07:00
plugins.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
precommit_hook.py feat(precommit): add secret scan to bundled pre-commit hook (defense-in-depth for #2090-style leaks) 2026-04-26 11:57:39 -07:00
preflight.py fix: gate session resume on file existence (closes #488) 2026-04-16 11:12:03 -07:00
prompt.py fix: switch top-level from adapters import to absolute imports (#1) 2026-04-16 07:53:03 -07:00
transcript_auth.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00
watcher.py feat: initial release of molecule-ai-workspace-runtime 0.1.0 2026-04-16 04:26:06 -07:00