Skip to content

Split large modules safely, fix partial publication and stale-screen defects, document known limitations - #13

Merged
hyperdrivebeep merged 2 commits into
mainfrom
public-20261017
Oct 17, 2026
Merged

hyperdrivebeep merged 2 commits into
mainfrom
public-20261017

Conversation

@hyperdrivebeep

Copy link
Copy Markdown
Owner

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

  • Revision merge proposals, merge resolutions and legacy baseline approvals publish in one ledger transaction instead of partially.
  • An operation claim and its operation.started event are stored in one transaction. Before, a failure between them left the request RUNNING for the same key with nothing executing it.
  • Web: a question that waits for a source check is no longer sent to a project or workspace the user switched to; files chosen while an earlier batch connects are kept; trace import shows only the current preview; a finished request closes only the dialog that sent it; reads denied for access 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.

Verification

Product check on a clean checkout with locked dependencies:

Check Result
Locked install, README quick start (server + first screen) pass
ruff, runtime architecture, module budget pass
Web tests, lint, typecheck, build pass (813 tests, 1 existing conditional skip)
Python suite 5,066 run: 5,064 pass, 2 skipped (existing), 2 failed

The two Python failures were the counter clock-sequence test. Every clock call matched; its observer did not see the operation.started event 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 main into 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.

THOTH 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.
@hyperdrivebeep
hyperdrivebeep merged commit adeb2bc into main Oct 17, 2026
1 check passed
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