fix: close deterministic agent-artifact intake normalization lifecycle#484
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20d62ad562
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf72ab1ca7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa06ddc60e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4744c31376
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 325588e. Configure here.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e5a7a7c37a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cf980fb59b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_046cf662-4303-4db9-9d90-f1e7626ff4ff) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 59bef1238e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 06a6d8c81b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4fd8188285
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
# Conflicts: # src/multi_agent_brief/orchestrator/runtime_state/artifact_paths.py # src/multi_agent_brief/orchestrator/runtime_state/artifact_registry.py # src/multi_agent_brief/orchestrator/runtime_state/claim_support_matrix.py # src/multi_agent_brief/orchestrator/runtime_state/completion_gates.py # src/multi_agent_brief/orchestrator/runtime_state/contracts_loader.py # src/multi_agent_brief/quality_gates/state.py # tests/test_runtime_state.py
|
@codex review |
Northstar product reviewDecision: DO NOW / accept the bounded MU-3 slice, subject to final CI and review.
The predecessor path-authority work is now in #487/main; the final #484 diff removes the duplicate path-authority package and keeps only the thin intake binding needed by MU-3. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 975f939084
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| artifact_paths = agent_artifact_paths_from_contracts( | ||
| ws, | ||
| artifact_records if isinstance(artifact_records, Mapping) else {}, | ||
| ) |
There was a problem hiding this comment.
Handle invalid registry paths in status projections
When briefloop status reads a corrupt or tampered artifact_registry.json whose agent artifact path is unsafe (for example ../evil), this call raises RuntimeStateError from the artifact path resolver and aborts the whole read-only status summary. build_workspace_status is documented to only read existing files and report corrupt surfaces as stale/unknown, so the materiality projection should catch this and return an invalid_screened_candidates/unavailable projection instead of letting a bad registry path crash status.
Useful? React with 👍 / 👎.

Merge Unit
MU-3: deterministic agent-artifact intake normalization lifecycle.
Final head:
975f9390846bc642fa12e83fdd44ce60dc28753eBase after the path-authority predecessor (#487):
3834af60e24dde0fba43aea8f50e91d0ce0a0092Complete PR diff: 29 files, +5898/-373.
Opening Contract
State x Path Matrix
test_candidate_intake_canonicaltest_candidate_intake_malformed_jsontest_candidate_intake_alias_conflicttest_candidate_intake_requires_candidate_id;test_candidate_intake_duplicate_idstest_legacy_candidate_supplied_identity_fields_are_validatedtest_screened_bucket_aliasestest_screened_reason_not_reason_codetest_workspace_intake_bundle_owns_screened_universe_verdicttest_workspace_intake_bundle_rejects_missing_candidate_universetest_coverage_gate_rejects_screened_candidate_universe_mismatchtest_quality_and_materiality_bind_contract_resolved_intake_pathstest_claim_draft_mechanical_normalizationtest_claim_draft_unknown_claim_type;test_claim_draft_nested_claim_idtest_intake_projection_internal_binding_fails_closed;test_projection_rejects_impossible_status_digest_finding_combinationtest_registry_intake_projection_binds_artifact_identity_and_statustest_registry_intake_projection_rejects_cross_run_context;test_registry_intake_projection_rejects_unknown_versiontest_screened_intake_consumption_rejects_stale_registry_dependenciestest_invalid_intake_precedes_recovery_stale_overlaytest_freeze_binds_intake_projectiontest_freeze_rejects_projection_mismatchtest_repeat_freeze_rejects_raw_drift;test_repeat_freeze_rejects_policy_drifttest_freeze_intake_binding_rolls_back_atomicallytest_stale_claim_drafts_blocks_repeat_freeze_and_stage_completiontest_legacy_freeze_rejects_cross_run_transplanttest_freeze_binding_rejects_duplicate_transaction_events;test_freeze_binding_rejects_wrong_event_identitytest_legacy_freeze_remains_valid_after_metadata_enrichmenttest_legacy_freeze_rejects_invalid_metadata_enrichment_lineagetest_metadata_enrichment_binds_claim_paths_from_artifact_contractstest_metadata_enrichment_binds_claim_paths_from_artifact_contractstest_status_formats_intake_projection;test_status_rejects_invalid_intake_projectiontest_public_safe_recoverable_intake_fixture;test_public_safe_fatal_intake_fixtureConsumer Sweep
Validation
Final-head local results:
151 passed414 passed2986 passed--no-tag): passedsrc): passedgit diff --check: passedREADME.mdandREADME_en.md: inspected; unchangedAuthority Declaration