Skip to content

Describe the apply gate's exception handling as main's core does - #543

Merged
MaxGhenis merged 1 commit into
masterfrom
graph-apply-comment-20261015
Oct 16, 2026
Merged

MaxGhenis merged 1 commit into
masterfrom
graph-apply-comment-20261015

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Follow-up to #541 (minor finding 1 of its review).

The comment at src/populace_dynamics/graph/trajectory.py:140 said the pinned core needs every declared artifact, even when a gate fails. That held at microcosm 3ff92b0a. Since #541 the graph extra pins microcosm main (c28b4537), which behaves differently. In packages/microcosm-graph/src/microcosm/graph/executor.py:

  • When a gate kernel raises, _failed_gate_result records an executor gate_exception state and lists the gate's artifact outputs as unavailable.
  • The artifact check then allows the missing artifact.
  • The gate's consumers are left unreached, and the run does not abort.

_apply still catches every exception and publishes a typed failed transition. When the previous transition isn't complete, next year's _apply publishes blocked. So behaviour is unchanged; the change is the comment only.

No tests change, so tier counts are unaffected.

🤖 Generated with Claude Code

The comment said the pinned core requires every declared artifact even
on a failed gate. That held at microcosm 3ff92b0a. Since #541 the pin is
main (c28b4537), where a raising gate is recorded as gate_exception, its
artifact is marked unavailable and its consumers are left unreached
(executor.py _failed_gate_result). _apply still catches every exception,
so dynamics' behaviour is unchanged; only the stated reason moves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
social-security-model Ready Ready Preview Oct 15, 2026 8:39pm UTC

Request Review

@MaxGhenis
MaxGhenis merged commit ed54262 into master Oct 16, 2026
12 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Merged at reviewed head 7a2c355 (merge commit ed54262) by the dynamics coordinator. Gates: gh pr checks exit 0 (all four pytest shards, graph-integration 3.13 and 3.14, lint), MERGEABLE, not a draft, no change requests.

Independent review: GPT-6.1 Sol, Subfleet 20261015-165225-md543-review, APPROVE with no findings. It confirmed:

  • main's gate recovery applies to the apply node: GATE, population-bound, structural NONE, no column outputs, one transition artifact;
  • that recovery records gate_exception and leaves consumers unreached while execution continues;
  • a non-complete previous transition yields blocked;
  • the diff is comment-only, with identical AST and executable tokens and unchanged test counts.

This is the follow-up to #541's review (minor finding 1).

@MaxGhenis
MaxGhenis deleted the graph-apply-comment-20261015 branch October 16, 2026 02:53
MaxGhenis added a commit that referenced this pull request Oct 16, 2026
…iers

Master gained #525, #534, #538, #543, #544-era changes and #545 since
this branch's base (9af5392). Conflicts were the two tier files only;
tests/track_u2/test_u2_loader.py, changed on both sides, merged cleanly:
the merged file is master's plus exactly this branch's one added test,
and this branch's plus exactly master's changes. Every other file equals
its one changing side.

Tier files rewritten from `pytest --collect-only -q -m <tier>` on the
merged tree: unit 9,902, artifact 4,244, integration_psid 1,423,
reproduction_legacy 520, oracle_policyengine 308 (16,397), which is
master's counts plus this branch's +1 unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 16, 2026
…iers

Master gained #525, #528, #534, #535, #538, #539, #541, #543, #545,  since
this branch's base (9af5392). Conflicts were the two tier files only;
tests/track_u2/test_u2_loader.py, changed on both sides, merged cleanly:
the merged file is master's plus exactly this branch's one added test,
and this branch's plus exactly master's changes. Every other file equals
its one changing side.

Tier files rewritten from `pytest --collect-only -q -m <tier>` on the
merged tree: unit 9,902, artifact 4,244, integration_psid 1,423,
reproduction_legacy 520, oracle_policyengine 308 (16,397), which is
master's counts plus this branch's +1 unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 16, 2026
…iers

Master gained #525, #528, #534, #535, #538, #539, #541, #543 and #545 since
this branch's base (9af5392). Conflicts were the two tier files only;
tests/track_u2/test_u2_loader.py, changed on both sides, merged cleanly:
the merged file is master's plus exactly this branch's one added test,
and this branch's plus exactly master's changes. Every other file equals
its one changing side.

Tier files rewritten from `pytest --collect-only -q -m <tier>` on the
merged tree: unit 9,902, artifact 4,244, integration_psid 1,423,
reproduction_legacy 520, oracle_policyengine 308 (16,397), which is
master's counts plus this branch's +1 unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — 7a2c3557 Deployed Oct 15, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant