Skip to content

refactor: remove Phase 8 compatibility paths - #330

Draft
eshulman2 wants to merge 3 commits into
phase7/execution-read-modelsfrom
phase8-compatibility-removal
Draft

refactor: remove Phase 8 compatibility paths#330
eshulman2 wants to merge 3 commits into
phase7/execution-read-modelsfrom
phase8-compatibility-removal

Conversation

@eshulman2

@eshulman2 eshulman2 commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Phase 8 implementation plan: compatibility removal

Status: Complete

Goal: Delete superseded execution paths so Forge has one runtime model rather than
permanent legacy and contract-backed implementations.

Removal rule

A compatibility path may be deleted only when its replacement is authoritative for all
golden paths, restart/replay characterization passes, persisted state has an explicit
migration policy, and rollback does not require the deleted implementation. Phase 8 is
not permission to remove behavior that an earlier partial phase has not replaced.

Completed cutovers

The Jira and source-control worker handler facades are deleted. Since Phase 2, both
sources register the same generic adapter-driven handler; the source-specific methods had
no runtime or test callers and represented a second, misleading dispatch API.

Phase 8 also removes the legacy Redis stream and github source alias, implicit
checkpoint pinning, scalar planning fallbacks, the implementation-input facade, and
repository-key fallback migration. Built-in runtime selection is definition-compiled;
the Python graph adapters remain only as local test harnesses. Architecture tests make
these removals zero-tolerance.

Unpinned checkpoints must now be processed by migrate_unpinned_checkpoint. Operators
first run it with apply=False, retain the original checkpoint as the rollback backup,
and persist the returned migrated_state only when compatible is true. Applied state
records the target definition and a seven-day rollback deadline by default. Rollback
means restoring that backup before the deadline; normal resume never performs migration
or rollback implicitly.

Final observation cutover

CI, merge, review-thread, and proposal-review observations are now applied by the
provider-neutral post-pr-v1 transition policy. The pinned workflow definition selects
that policy through an allowlisted identifier; compilation rejects unknown policies and
policies whose target nodes are absent. The worker adapts ingress, delegates once, then
persists the result—it no longer owns event-specific transition rules.

The inventory at docs/architecture/phase-8-removal-inventory.json is the reviewable
exit checklist. Phase 8 is complete only when remaining is empty and the associated
architecture tests and golden-path characterization suite pass.

@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from e0358a3 to 32110d1 Compare August 27, 2026 18:36
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 910292b to 0780629 Compare August 27, 2026 18:36
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from 32110d1 to ed05f16 Compare August 27, 2026 18:44
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 0780629 to a0cfe09 Compare August 27, 2026 18:44
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from ed05f16 to f659735 Compare August 27, 2026 18:46
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from a0cfe09 to 4dea15c Compare August 27, 2026 18:46
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from f659735 to bbc36ea Compare August 27, 2026 18:48
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch 2 times, most recently from b51b6e5 to 884712d Compare August 27, 2026 18:50
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from 0b64e5b to 2b3367e Compare August 27, 2026 18:54
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 884712d to cf2b829 Compare August 27, 2026 18:54
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from 2b3367e to f2caef6 Compare August 27, 2026 18:58
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from cf2b829 to d6c4d78 Compare August 27, 2026 18:58
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from f2caef6 to b97185a Compare August 27, 2026 19:04
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from d6c4d78 to 27776e6 Compare August 27, 2026 19:04
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from b97185a to e8d14cf Compare August 27, 2026 19:06
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 27776e6 to 6e9aece Compare August 27, 2026 19:07
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from e8d14cf to 71e0182 Compare August 27, 2026 19:08
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 6e9aece to 5d0d793 Compare August 27, 2026 19:08
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from 71e0182 to 67fd359 Compare August 27, 2026 19:13
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 5d0d793 to fca9831 Compare August 27, 2026 19:13
@eshulman2
eshulman2 force-pushed the phase7/execution-read-models branch from 67fd359 to d713b6b Compare August 27, 2026 21:09
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from fca9831 to 128b64c Compare August 27, 2026 21:09
@eshulman2
eshulman2 force-pushed the phase8-compatibility-removal branch from 128b64c to f3ba193 Compare August 27, 2026 21:29
@eshulman2 eshulman2 changed the title refactor: begin Phase 8 compatibility removal refactor: remove Phase 8 compatibility paths Aug 27, 2026
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