← Priority list
Blocked

Correct listing compatibility and project-index storage before approving the reviews

Finish the two demonstrated contract and storage corrections, retain the verified observer constructor compatibility patch, and obtain complete-suite evidence before updating either original PR. Both current heads are DO-NOT-MERGE; all partial work and reliable controls are on linked remote branches.

Listing compatibility and project-name storage still need corrections, and the required complete race produced no XML.

Handoff document

Markdown

Handoff: Correct listing compatibility and project-index storage before approving the reviews

Written: 2026-10-27T07:22:58.670315+00:00

RE-VERIFY: This is a write-time snapshot. Recheck both PR heads, their checks, the remote branches, and service health before continuing. Neither original PR was updated or merged by this review.

Design requirements

The owner reported https://droplets.wasmserver.com/ is unreliable and requested root-cause corrections. This lane independently reviewed two existing PRs.

The following user requirements remain in effect, dated 2026-10-27:

  • "Fix real findings on the PR branch (fail-first), rerun the affected targeted tests, push."
  • "DONE = per-PR findings with a MERGE / DO-NOT-MERGE verdict. Never merge or enqueue."
  • "No raising any timeout, no reducing any iteration count, no disabling tests."
  • No production deployment, container restart or Maven artifact upload is authorized.
  • Targeted scenarios use local mode and first-attempt XML results. Tests use real components, public APIs and independent fixture state. No reflection or mocks.
  • Preserve earlier client contracts, committed telemetry freshness, bounded resource work and exact individual document reads. Do not replace an owning correction with a downstream workaround.

Mission and current state

Both original heads receive DO-NOT-MERGE verdicts. A changes documented listing content. B changes a constructor used by older compiled callers and introduces quadratic project-name storage. The B constructor correction is implemented and verified on a remote review branch; the project-index correction is not implemented. Required complete-suite evidence is absent. The review stops at its allowed time checkpoint with that unfinished work explicit.

A: https://github.com/CodexCoder21Organization/HandoffEmbedded/pull/36 remains OPEN at 2a9cdf4dd43c5f8328e488b8381dfe0c33a5013e; original check rollup is green. B: https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 remains OPEN at 60914e30fab5de1a28691561878516ef44de8426; original build and sixteen shards are green. These original checks do not cover the newly demonstrated cases.

Findings and verified work

A's unchanged listAllOpenHandoffsJson now emits an empty body where the prior Embedded README and two explicit archive-test assertions required complete record content. The new public HandoffRecord comparison is red on attempts 1/2/3 at the PR implementation and green on attempt 1 with its implementation hunk reversed. The bodyless-listing scenario reverses in the other direction: current first-attempt pass, original red 3/3. Allocation and real published HandoffGitSync scenarios also pass on attempt 1 on the PR. The Git synchronizer reads individual canonical documents and works; that does not establish compatibility for every older body-consuming caller. Keeping complete bodies in the same collective String cannot also make that String independent of their combined length. Add a separate metadata-list contract and migrate the owning API/server/client/consumer components while retaining the older behavior. No speculative source revision was made to A.

B's main reuse correction is supported: the original regression observes five calculations for unchanged telemetry on every original-implementation attempt, versus one on the projection implementation. A fresh original-source control is red 3/3; restoration passes on attempt 1. New scenarios cover empty history and a telemetry commit while the initial dispatch projection is held, with 2048 unrelated identities. They verify committed evidence before exact first-lease memory/CPU reservations.

B constructor issue: adding afterDispatchResourceProjectionUpdate changed the public constructor and Kotlin optional-argument descriptor. An actual older compiled Kotlin caller succeeds with the earlier configuration and reports java.lang.NoSuchMethodError with the original PR class. A delegating overload now retains the previous 244 parameters, types, ordering and defaults. Every argument was audited by name. The corrected source compiles; the older binary runs successfully with it; choosing the original PR class reproduces the method lookup result. The constructor-table regression is red 3/3 before correction and green on attempt 1 afterward. Five corrected-source affected checks are first-attempt clean. No existing test was edited or limit changed.

B project-index issue: resourceProjectPrefixes creates identity.substring(0, position) at every dot and retains all of those complete strings as project-map keys. Equal-length 4105-character history names yield 4095 project-name characters when flat and 4194304 when dotted. testDispatchResourceProjectionProjectNamesStayProportionalToHistory is red on attempts 1/2/3 for that exact work-size assertion and green on attempt 1 (7710 ms) with the author-preserved pre-projection implementation. Current source was restored after the control. This counts generated/retained name characters, not claimed whole-process heap bytes. An initial thread-byte-counter prototype did not obtain valid readings and was excluded. The final scenario drives real Embedded, the published local SSH provider, real journal intake and two completed public builds. The projection implementation file is identical between the original PR and the constructor-corrected checkpoint, so the finding applies to the supplied PR head too.

Complete validation and tooling observations

The single required local/remote complete race used code fe071d36bb9f414d64583c9e1f8dd2d211b36460. Remote ended with exit 1 before submission: health returned STARTING during local-state recovery rather than exactly OK; there was no run ID or XML. Local ended with exit 137 at 06:53:24 UTC and no XML. A specific cause for exit 137 was not established; kernel diagnostics were unavailable and aggregate container memory counters do not identify this process. Do not call this a complete pass or change heap/time limits to obtain one.

Complete preparation also recorded connection errors for dependency metadata. Independent subsequent JVM GET returned HTTP 200 and 1273 bytes for the same clock POM, and a fresh isolated Coursier fetch succeeded. The mechanism behind the older requests is unestablished; do not infer a current repository outage or a source regression from those messages alone. No second complete run was requested. All tracked test jobs have ended.

Relevant PRs and remote work

Repository Branch Remote head Related PR What is saved and its state
HandoffEmbedded wip/REV2-a-review 29c307dc6ead5860bb9e26ec9732d548cdd99c22 https://github.com/CodexCoder21Organization/HandoffEmbedded/pull/36 A compatibility reproducer; current red, original implementation green; final DO-NOT-MERGE findings.
BuildTestEmbedded wip/REV2-b-review d0804676a08fce17673cb16e7fe68d49c2e76d87 https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 Initial analysis only; superseded by compatibility and status branches.
BuildTestEmbedded wip/REV2-b-tests f3a047eb7bfeb32137e4e22976fa218807213fd3 https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 Targeted scenarios and constructor red control; superseded by compatibility branch.
BuildTestEmbedded wip/REV2-b-compatibility fe071d36bb9f414d64583c9e1f8dd2d211b36460 https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 Constructor correction plus five first-attempt targeted passes; full race produced no XML.
BuildTestEmbedded wip/REV2-b-status edaa38487fbc0ee241af543580ca975f10681d90 https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 Final B findings, lane notes, complete-race summaries and compressed diagnostics; same production source as compatibility branch.
BuildTestEmbedded wip/REV2-project-name-scale aeb69dc3088e74972956940265544724116e6bbb https://github.com/CodexCoder21Organization/BuildTestEmbedded/pull/1681 Reliable project-name growth reproducer; red 3/3 on projection, first-attempt pass on pre-projection control; no correction for this issue.

All partial source, reliable reproducers, result summaries and final findings are on those branches. Read-only HandoffApi and HandoffServiceServer clones had no edits. A discarded initial B checkout had a clone/setup sequencing error; its initial analysis was already pushed and its attempted test was excluded. No stash or unpublished local source is required to resume. Build outputs, dependency caches and invalid measurement prototypes were intentionally excluded; they contain no needed correction. Compressed complete-client diagnostics are on the status branch.

Deployed or published state

No merge, queue operation, production deployment, restart, configuration change or Maven upload was performed in this lane. The saved corrections are review-branch source only. Neither original PR branch was updated under the unmet complete-validation gate.

Next steps

  1. Read the per-repository final findings and exact reproducers on the linked branches; verify current PR state before any update.
  2. For A, preserve the existing global-list content contract while introducing an additive metadata path and migrate the Git synchronizer through the owning components. Retain exact individual reads and unlisted/multi-list membership behavior. A changed value under the same JSON key is still a contract change.
  3. For B, retain the verified constructor overload while correcting project indexing. Avoid storing every full identity prefix. One candidate is to keep median state only for queried projects, locate affected queried projects with a segment-prefix index, and avoid retaining arbitrary empty queries. Preserve the three-sample threshold, parent/child/sibling prefix semantics, expiry, journal rotation, backward clock changes and concurrent dirty-generation rules. This design is proposed, not implemented or verified.
  4. Make the length-scale regression pass, add overlap/query-lifetime coverage through public dispatch, and rerun the affected freshness/CPU/reuse/constructor scenarios. Do not suppress the observation while keeping the same retained prefix strings.
  5. Establish valid complete-suite evidence before updating the original PR branch. The prescribed race did not produce XML, and the user limited this lane to one complete attempt; a further validation effort needs to account for that scope and the setup observations, rather than blindly repeating CI. Never merge, enqueue, deploy, restart or upload artifacts under this handoff.

Required reading and useful commands

Read https://github.com/CodexCoder21Organization/DocumentationRepository/blob/main/architecture/TESTING.md (especially TDD, public APIs and machine-independent reproduction), https://github.com/CodexCoder21Organization/DocumentationRepository/blob/main/architecture/GRACEFUL_MIGRATION_FALLBACKS.md, and https://github.com/CodexCoder21Organization/DocumentationRepository/blob/main/PHILOSOPHY.md before changing the design. The original production evidence remains at https://github.com/CodexCoder21Organization/ContainerNursery/blob/wip/OUTAGE2-20261027/evidence/OUTAGE2/findings.md and https://github.com/CodexCoder21Organization/ContainerNursery/blob/wip/HOSTCPU-20261027/evidence/HOSTCPU/findings.md.

Use fresh lane-owned clones. After fetching/rebasing main, targeted commands are scripts/test.bash --local --test testObserverConfigurationRetainsPreviousConstructor --log <xml>, scripts/test.bash --local --test testDispatchReusesUnchangedResourceStats --log <xml>, and scripts/test.bash --local --test testDispatchResourceProjectionProjectNamesStayProportionalToHistory --log <xml>. Read per-test attempt-history; a final success after repetition is not a first-attempt pass.

Model usage

Recorded agent work, including concurrent agents

13.9 agent-minutes · 10,603,690 tokens

Aggregate shares of agent-minutes and tokensAgent-minutesclaude-fable-5-1: 62.8% (Agent-minutes: 8.7)62.8%claude-opus-5-5: 37.2% (Agent-minutes: 5.2)37.2%Tokensclaude-fable-5-1: 24.8% (Tokens: 2,624,841)24.8%claude-opus-5-5: 75.2% (Tokens: 7,978,849)75.2%

Usage timeline

15-minute columns · empty columns are idle gaps · UTC

Usage timeline: Minutes, By model0%25%50%75%100%2026-10-27 07:15 UTC · claude-opus-5-5: 100.0% of minutes2026-10-27 07:30 UTC · claude-fable-5-1: 62.4% of minutes2026-10-27 07:30 UTC · claude-opus-5-5: 37.6% of minutes2026-10-27 07:45 UTC · claude-fable-5-1: 100.0% of minutesOct 2707:15Oct 2707:30Oct 2707:45
  • claude-fable-5-18.7 min · 2,624,841 tokens
  • claude-opus-5-55.2 min · 7,978,849 tokens
Recorded usage totals by series
SeriesMinutes% minutesTotal tokens% tokensOutput tokensFirst activeLast active
claude-fable-5-18.762.8%2,624,84124.8%13,070 1 hour ago 1 hour ago
claude-opus-5-55.237.2%7,978,84975.2%15,134 2 hours ago 1 hour ago

Agent-minutes add across parallel agents. Tokens include input, cached input, cache writes and output. Percentages are rounded to one decimal place in text and may sum to slightly more or less than 100%.

No status reports yet.

Add dependency

Complete this handoff

Moves it out of every priority list and into ArchiveArea.