molecule-core/workspace
Molecule AI Core-QA fa81626b71
Some checks are pending
CI / all-required (pull_request) ok
sop-checklist / all-items-acked (pull_request) ok
Block internal-flavored paths / Block forbidden paths (pull_request) Waiting to run
CI / Detect changes (pull_request) Waiting to run
CI / Platform (Go) (pull_request) Blocked by required conditions
CI / Canvas (Next.js) (pull_request) Blocked by required conditions
CI / Shellcheck (E2E scripts) (pull_request) Blocked by required conditions
CI / Canvas Deploy Reminder (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
E2E API Smoke Test / detect-changes (pull_request) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (pull_request) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Handlers Postgres Integration / detect-changes (pull_request) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
lint-required-no-paths / lint-required-no-paths (pull_request) Waiting to run
publish-runtime-autobump / pr-validate (pull_request) Waiting to run
publish-runtime-autobump / bump-and-tag (pull_request) Waiting to run
Runtime PR-Built Compatibility / detect-changes (pull_request) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (pull_request) Waiting to run
gate-check-v3 / gate-check (pull_request) Waiting to run
qa-review / approved (pull_request) Waiting to run
security-review / approved (pull_request) Waiting to run
sop-checklist-gate / gate (pull_request) Waiting to run
sop-tier-check / tier-check (pull_request) Waiting to run
sop-checklist / na-declarations (pull_request) awaiting /sop-n/a declaration for: qa-review, security-review
audit-force-merge / audit (pull_request) Waiting to run
fix(workspace): correct OFFSEC-003 test assertions to match ZWSP-escaping behavior
Corrects 12 broken test assertions in test_a2a_sanitization.py that
were introduced by the PR #916 merge. Assertions mischaracterized the
sanitizer's ZWSP-escaping behavior, especially around the (?<=\\n) lookbehind
in _strip_closed_blocks.

Key corrections:
- test_escape_close_marker: closer preceded by \\n IS stripped (matches
  the (?<=\\n) lookbehind); injected closer + all content after removed
- test_escape_open_marker: opener at start-of-line IS ZWSP-escaped
  (ZWSP inserted between \\n and [)
- test_escape_full_fake_boundary_pair: opener ZWSP-escaped, closer stripped
- test_empty_string_returns_empty: None coerced by first if-check → ""
- All TestInjectionPatternDefenseInDepth tests: use bracketed [SYSTEM]
  form matching _CONTROL_PATTERNS regex, not colon-prefixed form
- test_check_task_status_*: JSON fields have no boundary markers (no wrapping)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 03:39:34 +00:00
..
adapters fix(workspace): include ~1KB sanitized stderr in A2A error responses 2026-05-11 18:21:19 +00:00
audit ci: verify publish-runtime pipeline end-to-end (internal#327) 2026-05-11 20:26:55 +00:00
builtin_tools fix(builtin_tools/a2a): restore OFFSEC-003 peer-result sanitization 2026-05-13 11:34:51 +00:00
lib feat(workspace): pre-stop serialization for pause/resume (closes #1386) 2026-04-21 12:40:44 +00:00
molecule_audit
platform_tools feat(mcp): multi-workspace routing for memory + chat_history + workspace_info 2026-05-04 14:17:58 -07:00
plugins_registry fix(workspace): replace asyncio.get_event_loop().run_until_complete with asyncio.run() (#307) (#498) 2026-05-11 15:37:34 +00:00
policies feat(platform): single-source-of-truth tool registry — adapters consume, no drift 2026-04-28 17:11:36 -07:00
scripts feat(workspace): add static .github-token fallback to git credential helper 2026-05-10 02:17:22 +00:00
skill_loader feat(skills): per-skill runtime compatibility (#119, hermes pattern) 2026-04-27 01:57:43 -07:00
tests fix(workspace): correct OFFSEC-003 test assertions to match ZWSP-escaping behavior 2026-05-14 03:39:34 +00:00
_sanitize_a2a.py fix(workspace): OFFSEC-003 — separate sanitize vs. wrap, fix tool_delegate_task (#477) 2026-05-11 15:10:25 +00:00
.coveragerc test(workspace): centralize pytest-cov config + 92% floor (closes #1817) 2026-04-26 06:21:22 -07:00
a2a_cli.py fix(workspace): default PLATFORM_URL to host.docker.internal in all modules (#475) 2026-05-11 15:17:53 +00:00
a2a_client.py fix(a2a): restore TTL cache check in enrich_peer_metadata_nonblocking 2026-05-13 11:09:54 +00:00
a2a_executor.py fix(a2a_executor): restore sanitize_agent_error on subprocess errors 2026-05-13 11:42:58 +00:00
a2a_mcp_server.py feat(workspace): add HTTP/SSE transport to a2a_mcp_server 2026-05-14 00:27:56 +00:00
a2a_response.py fix(workspace): push-mode Queued returns delivery_mode="push" (not silent default "poll") 2026-05-11 02:47:21 +00:00
a2a_tools_delegation.py fix(workspace): OFFSEC-003 — separate sanitize vs. wrap, fix tool_delegate_task (#477) 2026-05-11 15:10:25 +00:00
a2a_tools_inbox.py refactor(workspace): extract inbox tools from a2a_tools.py (RFC #2873 iter 4e) 2026-05-05 14:28:58 -07:00
a2a_tools_memory.py refactor(workspace): extract memory tools from a2a_tools.py to a2a_tools_memory.py (RFC #2873 iter 4c) 2026-05-05 09:50:39 -07:00
a2a_tools_messaging.py refactor(workspace): extract messaging tools from a2a_tools.py to a2a_tools_messaging.py (RFC #2873 iter 4d) 2026-05-05 09:50:47 -07:00
a2a_tools_rbac.py refactor(workspace): extract RBAC helpers from a2a_tools.py to a2a_tools_rbac.py (RFC #2873 iter 4a) 2026-05-05 04:43:16 -07:00
a2a_tools.py refactor(workspace): extract inbox tools from a2a_tools.py (RFC #2873 iter 4e) 2026-05-05 14:28:58 -07:00
adapter_base.py feat: drop shared_context — use memory v2 team namespace instead 2026-05-04 16:30:26 -07:00
agent.py
agents_md.py
boot_routes.py test(runtime): pin PR #2756's card-vs-setup decoupling with build_routes helper 2026-05-04 14:59:56 -07:00
build-all.sh docs(workspace-runtime): migrate github.com refs at source so mirror inherits Gitea links (internal#41) 2026-05-07 00:48:04 -07:00
card_helpers.py fix(runtime): isolate card-skill enrichment + transcript handler from adapter shape mismatch 2026-05-04 14:15:27 -07:00
config.py fix(runtime): MODEL_PROVIDER env is misnamed — accept MODEL/MOLECULE_MODEL, deprecate the legacy name 2026-05-10 02:38:14 -07:00
configs_dir.py fix(runtime): auto-fallback CONFIGS_DIR for non-container hosts (closes #2458) 2026-05-01 13:07:55 -07:00
consolidation.py fix: apply #1124 env-var defaults + scrub F1088 credentials from INCIDENT_LOG.md (#1347) 2026-04-21 08:11:44 +00:00
coordinator.py feat: drop shared_context — use memory v2 team namespace instead 2026-05-04 16:30:26 -07:00
Dockerfile [core-devops-agent] fix: add HEALTHCHECK to workspace/Dockerfile 2026-05-13 22:29:45 +00:00
entrypoint.sh fix(workspace): set git user.name/email from $GITEA_USER at boot 2026-05-09 12:52:17 -07:00
event_log.py feat(workspace): event_log module + EventLogConfig (#119 PR-2) 2026-05-03 00:17:12 -07:00
events.py
executor_helpers.py fix(workspace): include ~1KB sanitized stderr in A2A error responses 2026-05-11 18:21:19 +00:00
heartbeat.py fix(workspace): poll activity_logs for a2a_proxy delegation results (closes #354) (#501) 2026-05-11 15:53:05 +00:00
inbox_uploads.py fix(inbox-uploads): cancel BatchFetcher futures on wait_all timeout 2026-05-05 12:34:41 -07:00
inbox.py fix(inbox): drop unused batch_fetcher = None after end-of-batch drain 2026-05-05 11:56:54 -07:00
initial_prompt.py
internal_chat_uploads.py fix(workspace): surface errno + path on chat-upload mkdir failure 2026-05-01 11:47:53 -07:00
internal_file_read.py feat(chat_files): rewrite Download as HTTP-forward (RFC #2312, PR-D) 2026-04-29 15:19:02 -07:00
main.py refactor(workspace): extract idle-loop pending-check guard for direct unit-testing 2026-05-11 10:49:40 +00:00
mcp_cli.py feat(mcp): add molecule-mcp doctor onboarding diagnostic 2026-05-05 15:44:36 -07:00
mcp_doctor.py fix(mcp-doctor): heartbeat (idempotent) instead of register (UPSERT) 2026-05-05 16:11:08 -07:00
mcp_heartbeat.py refactor(workspace): split mcp_cli.py (626 LOC) into focused modules (RFC #2873 iter 3) 2026-05-05 04:33:06 -07:00
mcp_inbox_pollers.py refactor(workspace): split mcp_cli.py (626 LOC) into focused modules (RFC #2873 iter 3) 2026-05-05 04:33:06 -07:00
mcp_workspace_resolver.py mcp: surface specific TOKEN_FILE errors + link follow-ups (#2934) 2026-05-05 15:07:15 -07:00
molecule_ai_status.py fix(runtime): replace remaining /app/ legacy paths in agent prompts + docstrings 2026-04-27 11:22:00 -07:00
not_configured_handler.py fix(runtime): redact secret-shaped tokens from JSON-RPC error.data 2026-05-04 15:07:53 -07:00
platform_auth.py feat(mcp): cross-workspace delegation routing (multi-ws PR-2) 2026-05-04 08:32:24 -07:00
platform_inbound_auth.py fix(runtime): auto-fallback CONFIGS_DIR for non-container hosts (closes #2458) 2026-05-01 13:07:55 -07:00
plugins.py
preflight.py fix(preflight): downgrade required_env + auth_token failures to warnings 2026-05-04 12:20:34 -07:00
prompt.py feat: drop shared_context — use memory v2 team namespace instead 2026-05-04 16:30:26 -07:00
pytest.ini feat(preflight): replace SUPPORTED_RUNTIMES static list with adapter discovery 2026-04-27 00:44:51 -07:00
rebuild-runtime-images.sh fix: update workspace script comments for workspace-template → workspace rename 2026-04-18 01:48:05 -07:00
requirements.txt chore(deps)(deps): update starlette requirement in /workspace 2026-05-03 01:36:45 +00:00
runtime_wedge.py chore(workspace): drop claude_sdk_executor — Phase 2 of #87 2026-04-27 00:52:55 -07:00
secret_redactor.py fix(runtime): redact secret-shaped tokens from JSON-RPC error.data 2026-05-04 15:07:53 -07:00
shared_runtime.py feat(platform): single-source-of-truth tool registry — adapters consume, no drift 2026-04-28 17:11:36 -07:00
smoke_mode.py chore(smoke): runtime_wedge follow-ups from PR #2473 review 2026-05-01 18:01:51 -07:00
transcript_auth.py
watcher.py