Repository navigation
Preserve native facts in paper liquidation reports - #624
Merged
Merged
Conversation
This was referenced Oct 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explicit paper-liquidation rehearsal already reads a native portfolio snapshot, but its legacy positions/equity/buying-power view discarded account facts before returning the typed cycle result. Preserve the existing projector's optional facts from that exact read, using the last existing snapshot after the unchanged empty-position retry. The cycle emits an ordinary dictionary with the original native timestamp; these are pre-liquidation facts, not post-fill balances.
A module-private dictionary carrier is created only at this adapter's native projection boundary. Missing/failed projection and all plain legacy sidecars, even copied or claimed v1 shapes, remain unknown. No raw snapshot is carried; no extra broker read, cache, order/notification/policy change, synthesized balances, selector/publisher guard changes or identity approval. The isolated paper command consumer and ordinary strategy core are unchanged.
Validation: 43 focused cases passed (27 new), full frozen writer base 1,823 passed / 5 existing skips; required CI-equivalent commands passed. Controlled original-source regression replay and five legacy-v1 negative cases fail before repair. Initial RED timing was not explicitly awaited; strict initial test-first ordering is not claimed. Original test prefix and all 264 writer-base unowned files preserved. Independent review has no actionable findings.
Root rebased the exact frozen bytes onto latest main
a41fe634426d6bb48f24274a3f6ae9c338b6b244after separately reviewed #623, preserving patch SHA256693df410123021aade782b2ef0dae3510a9a48f0a223fd8a1d97249626cbca50and all 265 new-base unowned files. Combined exact-final-head local checks passed: 1,873 passed / 5 existing skips, frozen sync, Ruff, original CI pin, lock/startup, actionlint with ShellCheck and diff. Final head3aa110db776a55b8bb140d9e29e5f41681b130eaPR CI 38453255866 succeeded. Normal mergeabd6c6cd51afe61b40e2422ef9c1b86da7845226matches the reviewed tree; merged-main CI 38453481210 succeeded. No production deployment or actual missing-snapshot restoration is claimed. This source bug is not proven to explain the two real missing snapshots; serving revision/account/release approval and production restoration remain unproven. No real orders, broker/cloud operations or notifications were run for this repair.