Repository navigation
Split large modules safely, fix partial publication and stale-screen defects, document known limitations - #13
Merged
Merged
Conversation
added 2 commits
October 17, 2026 13:51
…defects, document known limitations Behavior-preserving refactor of the remaining large application modules, plus defects found while pinning their behavior. Refactor - Pure record and response construction moved out of the revision, memory, reference, improvement, R2 closed-loop, resource-scope, storage-schema and credential modules. Authority checks, reads, writes, IDs, clocks, transaction boundaries and await order stay in place. Each move was compared against the original syntax tree and pinned by golden fixtures captured from the previous code. - Fourteen modules remain over the 600-line limit with locked baselines; splitting them further would move transaction or ordering responsibilities. Fixes - Revision merge proposals, merge resolutions and legacy baseline approvals now publish in one ledger transaction. - An operation claim and its started event are stored in one transaction, so a failure there no longer leaves a request stuck as RUNNING for the same key. - Web: async research and file actions stay in their own project, workspace and dialog scope; trace import shows only the current preview; finished requests close only the dialog that sent them; denied reads hide previously loaded data until a new successful read; stored notices follow the display language. Docs - docs/KNOWN_LIMITATIONS.md (and .ko.md) lists the rare cases where part of a record can be missing and what the user can do. - The canonical owner matrix now describes approval and execution sub-records as they are stored.
…ence test The cancelled-refetch case could fail on slower runners: React Query notifies observers on a later timer, so the loading text from the refetch could still be on screen when the assertions ran, although the query itself had already returned to its error state. The test now checks that the refetch really started, that the query is idle after cancel, and waits for the loading text to leave before asserting. The assertions and test name are unchanged; no timeout or retry was raised.
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.
What this changes
Behavior-preserving split of the remaining large application modules, plus defects found while pinning their behavior before each move.
Refactor. Pure record and response construction moved out of the revision, memory, reference, improvement, R2 closed-loop, resource-scope, storage-schema and credential modules. Authority checks, reads, writes, IDs, clocks, transaction boundaries and await order stay where they were. Each move was compared with the original syntax tree and pinned by golden fixtures captured from the previous code. Fourteen modules stay over the 600-line limit with locked baselines, because splitting them further would move transaction or ordering responsibilities.
Fixes
operation.startedevent are stored in one transaction. Before, a failure between them left the request RUNNING for the same key with nothing executing it.Docs.
docs/KNOWN_LIMITATIONS.md(and.ko.md) lists the rare cases where part of a record can be missing and what the user can do. The canonical owner matrix now describes approval and execution sub-records as they are stored.Verification
Product check on a clean checkout with locked dependencies:
The two Python failures were the counter clock-sequence test. Every clock call matched; its observer did not see the
operation.startedevent after it moved into the claim transaction. The observer was updated (expected sequence unchanged) and those tests pass, along with the related journal tests.The merge of the latest
maininto the work branch changed no Python files; after it the web suite, lint, typecheck, ruff, architecture checks and the affected Python tests were rerun and pass.Not covered: real provider accounts, answer quality, hosted deployment and field use. No credentials or model calls were used.