Handoff: Finish strict read equivalence and resolve the remaining build-result failure
Written 2026-10-18 11:52 UTC.
RE-VERIFY: This is an in-flight snapshot. Recheck https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/35 through the GitHub pull REST endpoint for state, head and merged status. Check every branch with git ls-remote. The brief explicitly says to stop without watching PR checks. Read the linked records before applying a result to a different head.
Design decisions in force
The owner stated on 2026-10-18: “every public outcome of the inline path must equal the pre-change streaming path under the same conditions — same bytes, same exception type and full message, same chunk sizes and done/EOF signalling, same admission/refusal under resource limits, same behaviour after manager OR resolver/connection shutdown. Where the inline path cannot match, it must step aside to the ordinary session path, never fail differently.”
The owner also stated: “Merging and deploying are mine, not yours.” The limits are: “May not merge, enqueue, deploy, publish, touch production, raise timeouts, reduce iterations.” This session has a 90-minute bound ending at 11:57 UTC. Preserve the test limits and quote both canonical results and raw attempts. A retry is a finding, not a passing first attempt.
Mission
The original request was: “The site upload is already taking longer than it should, so we should have gpt 6.1-sol investigate and fix that regardless.” The follow-up requested TDD, reproduction, a fix, merge and deployment. This delegated task excludes merge and deployment. The inline-read candidate reduces a small source read to one service call and a Filedrop commit from 41 to 27 calls, but must preserve every streaming outcome. The brief identified admission, resolver shutdown, error type/message, over-cap windows, content/replay/ordering coverage, a remote-only retry, and a failed build check.
Findings and completed work
-
The fresh repository README, supplied reviewer reports, Testing Architecture and Engineering Philosophy were read. Reviewer regressions were reproduced against e1db911 and pushed before implementation. The remote baseline at https://buildtest.kotlin.build/run?id=4cc32498 has seven raw attempt-1 rows: one preservation guard passed and six intended regressions failed. Additional local first-execution XML records cover individual connection shutdown, zero-byte backend reads, cache occupancy after opening, and early read-slot release.
-
Candidate 0a510c6 centralizes optional prefetch qualification. It skips optional reservations when the ordinary nonempty 16 MiB window cannot be admitted, retains pending bytes and backend faults on the ordinary session error route, preserves caller maxBytes admission, and defers zero-byte diagnostics until the caller window is known. The new local invocation detects an explicitly closed sandbox but does not observe resolver/protocol closure. Wire 0.1.4 is built only in the workspace; nothing was published.
-
The first valid candidate target passed 13/15. After correcting the zero-byte diagnostic, the zero/backend/individual-close target passed 3/3. Native invocation/count coverage was red against old code and passed against the candidate. The current byte-content test passed the candidate, then failed on its first execution against a deliberate same-length zero-prefetch mutation. The implementation was restored and a clean tree verified. Complete traces and every existing-test edit are retained on the evidence branch.
-
The full suite ran ONCE from pushed head 0a510c6221032c3d72df2c1463205d5cec97c364: https://buildtest.kotlin.build/run?id=a173d826. Canonical result: 116 passed, 3 failed, 119 total. Raw result: 116 passed, 9 failed, 125 attempts. Every passing test passed on attempt 1. The three known failures each failed all three automatic runner attempts; their canonical attempt is 1, highest attempt is 3, and flaky is false. No manual full-suite retry was requested.
-
Three candidate failures remain. First, resolver.close permits an unread inline snapshot to return bytes while the ordinary RPC read fails. Second, another reader caching one byte after source opening causes the ordinary 16 MiB window to be refused while the inline source succeeds. Third, inline completion releases the only server read slot before caller close, admitting a competitor that ordinary streaming refuses. These are deterministic public-API counterexamples. A local readStart snapshot cannot observe later server capacity or protocol closure. The owner was asked whether to accept unconditional session fallback or retain the one-call candidate for a broader API change; no answer had arrived at draft time.
-
The fallback proposal at 9e4797b restores the handler and host client from main 67123895 and corrects the README. It removes speculative/sessionless reads. In https://buildtest.kotlin.build/run?id=f0983ea3 all ten selected parity/content/raw-session cases passed on attempt 1; the unchanged native-operation assertion failed with start/chunk/close instead of start/check/check. All 11 raw attempts were first attempts. A separate diagnostic added only a print before the existing SmallSources assertion and measured 336 service calls for 112 reads, then failed the unchanged assertion; the diagnostic was restored. The first local fallback command hit its ten-minute bound without an aggregate report and is not counted as a pass. The proposal withdraws the one-call saving and has not replaced the original PR.
-
The implementation-only 78a7efd control restores ONLY the original handler and host-client files on top of 0a510c6. Other code, build rules, wire, generated Java and tests are unchanged. Its 27 selectors include every added test script plus the changed existing behavior guards. The local command reached its 20-minute outer bound without an aggregate XML result; no counts are claimed. The same unchanged remote control completed at https://buildtest.kotlin.build/run?id=7eba9026: four passed and 23 failed across 27 selected tests, with 27 raw attempts, all attempt 1. The 92 FILTERED_OUT manifest rows are excluded. The four passes guard the existing normal Filedrop budget, static boundaries/ranges, and the two isolated published-version cells; see control-classification.md. Branch 9f15c5c stores the exact two-file restoration.
-
The original remote SmallSources failure was not reproduced. All 28 fresh JVM runs from exact e1db911 artifacts passed with taskset on CPUs 0,1 and ActiveProcessorCount=2: four sequential at 128 MiB, twelve with four callers at 128 MiB, and twelve with four callers at 64 MiB plus SerialGC. The remote record gives a 2,000 millicore admission budget, 4,096 MiB memory and four lanes, not an observed processor count. This is budget emulation. The original 30-second body bound was preserved. This meets the brief's honest-attempt alternative; it does not identify the original cause.
-
The exact failed check at https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/runs/117641206019 maps through CI build 6d6fe56a-a27d-4eb5-9f49-2dd6ccda1e5f to BuildTest run 5ba37206. The earlier c7 execution has a matching PASSED row; the later FAILED row is distinct. BuildTest's terminal finalizer marks open rows failed with the exact message. Its timing and dependency align with a superseded L25 attempt, but the CI result omits the execution identity needed to prove that join. All 30 main heads and 13 completed matching checks were scanned; their summaries do not show the same failure. No fix or identical-main proof has been established. This required item remains unresolved.
Branches and PRs
| Branch |
Remote head |
PR and state |
| https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/tree/inline-small-read-responses |
0a510c6221032c3d72df2c1463205d5cec97c364 |
https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/pull/35 — open, unmerged; 116/119 canonical tests |
| https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/tree/r12-strict-streaming-fallback |
9e4797b6e421ff299d11f983932b548c772115ec |
No PR; unfinished fallback proposal; ten selected parity cases passed, optimization assertion failed |
| https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/tree/r12-control-78 |
9f15c5cec92362547268ca5486f2fff8e64de9fc |
No PR; experimental two-file control, 4/27 passed, all first attempts |
| https://github.com/CodexCoder21Organization/SimpleFileSystemServiceServer/tree/review/r12-proof-20261018/review/r12 |
4ffc88d5c8d62eeab7cb853ce435b0ae80812b50 |
No PR; intentionally retained runner records, traces, source reviews and resource-shaped experiment |
No artifact was published or deployed, no merge or queue action was taken, and no production runtime was changed in this session.
Next steps
- Reverify current state and read the final findings/results on the evidence branch. The local filesystem is not required to recover the work.
- Resolve strict parity versus the one-call budget. The current API cannot make local bytes obey later server admission and transport-close observations. The fallback proposal is concrete. Do not loosen the optimization assertions and call it the same performance change.
- Finish and verify every brief item and the implementation-only controls. If selecting the fallback, remove the unused lifetime-check hook/wire bump and give the optimization-specific assertions an explicit disposition while preserving all loops and limits. Use ordinary sessions wherever equivalence cannot be proven. Keep exact error type/text and byte/chunk/replay/EOF coverage.
- Resolve the failed build-result item at the layer owning attempt accounting. Obtain exact execution/attempt provenance or a reliable public-API reproducer before changing code. Do not remove the compatibility fixture to hide the result.
- Run the final full suite from the exact pushed head and quote canonical and raw attempt counts. Respect the requested stop: no PR-check watch, merge, enqueue, deploy or publication.
Reusable details
Read review/r12/existing-test-edits.md for every changed assertion and dependency annotation. Tests request the workspace wire directly and disable transitive resolution on buildClientMaven because its unpublished wire 0.1.4 POM otherwise triggers remote Maven lookup. The server artifact supplies the tested runtime closure. No artifact publication was used.
BuildTest raw attempts: /api/test-attempts?id=RUN_ID. Compact fields: n is name, a is attempt, s is status, c is canonical, i is identity. Canonical results: /api/test-results?id=RUN_ID&page=1&limit=500; the unpaged endpoint returns only 100 rows. Complete log: /log/raw?id=RUN_ID. Snapshot results briefly lagged the terminal CLI; preserve and label stale observations, then fetch the final snapshot. The failing remote command did not create its requested XML log, so JSON and the complete raw log are the authoritative records.
Old gh pr edit fails due to the Projects(classic) deprecation; structured REST PATCH works. The report-challenge CLI automatically enqueues and merges, which this task forbids; r12-challenges.md records the concrete workarounds instead.
Evidence includes no jars, caches, binaries or credentials. Original artifact hashes and reproducible harness source are included. Read-only upstream source citations identify exact commits. The failed full-history BuildTestEmbedded clone contains no work and can be discarded.