โ† Priority list
Unclaimed

Finish the full local suite for the journal-tail PR

Run the required full local suite on a free host slot, record counts and finalize the open PR. The parser and UTF-8 fixture fixes are pushed at 2d0fb214450a43d6944d2ba230a700069ef9dff9; focused tests and all 19 historical variants are verified and bld-build is green. Other jobs occupied the local full-suite slot through the bounded wait, so that acceptance item remains unfinished.

Handoff document

Markdown

Handoff: Finish the full local suite for the journal-tail PR

Written 2026-10-20 06:34 UTC.

RE-VERIFY: This is a write-time snapshot. Check the PR state/head and the bld-build check on that head, then check ps for active local full suites before building. The only unfinished acceptance item is the full local suite. No completed full-local result exists.

Design decisions in force

From the assigned brief, 2026-10-20:

  • "No merging, enqueueing, deploying, or touching production. Publish nothing unless this brief grants it by name."
  • "Run tests ONLY via scripts/test.bash."
  • "Never raise a timeout, heap size or start budget, and never reduce an iteration count."
  • "Tests are end-to-end through public APIs. No mocks, no reflection, no making private things public for tests. One scenario per file under tests/. Assert full error text where errors are asserted."
  • "Run the full local suite once from the exact pushed head (check ps that no other full suite is running) and record the counts. bld-build must be green on the final head (poll at most once a minute, with a hard deadline). Update the PR description (rebase, the new check, counts). Stop at the open PR."
  • The PR description opens with the user's original request, includes fail-first evidence, and ends with ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code). Commit messages end with Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>.

Owner direction supplied in the brief: "startup (and incremental recovery) should always be fast. If there is any situation where startup or incremental recovery are slow, that's a bug which should have been tested and exercised by https://github.com/CodexCoder21Organization/DocumentationRepository/blob/main/architecture/TESTING.md#extreme-condition-testing-load-fuzzing-failure-injection-and-chaos and which should be fixed."

Mission and remaining work

The user's production request was: "We need to investigate why https://my.externalbrain.wasmserver.com/ is failing to load and fix the underlying problem." The assigned final round was to rebase the journal-tail PR, reject garbage after a parsed object, preserve the disk catalogue, and make the reviewer's byte-cut probe permanent. Those implementation items are done. The brief specifically requires a full local suite from the final head; that is unfinished because other jobs occupied this host's local full-suite slot throughout the allowed wait.

The upstream outage history is supplied context, not a fresh production observation by this job: embedded 0.0.5 rebuilt the index and replayed the journal before listener binding, and the supervisor ended those starts. The checkpointed-resume server update is tracked in https://github.com/CodexCoder21Organization/SearchableBucketServiceServer/pull/23. This job did not touch production.

What was found and done

  1. Fresh-cloned SearchableBucketEmbedded and read README, runner scripts, testing architecture and engineering philosophy. Rebased the tail-repair branch, resolving conflicts while preserving main's disk catalogue, format-5 lossless string serialization, and later checkpoint/compaction changes. Main now itself uses 0.0.16, matching the requested version.
  2. Proved the parser mechanism: JSONObject returns at its first root closing brace. The old tail and terminated-line paths accepted non-whitespace after that object. Two permanent public-API regression tests fail before the fix. The first pushed failing milestone is https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/commit/c45d2df94e71c57904fe628a8f3f16142b43446e.
  3. Added a private shared successful-object parse helper. It reads the remainder directly from StringReader, permits only whitespace and reports the file/physical byte range on extra characters. A supplied NUL cannot act as EOF. The existing JSONException classification still checks actual Reader EOF without probing after failure. Malformed complete bytes remain unchanged.
  4. Added a permanent exhaustive byte-cut test across real serialization of all four event types, Unicode/escapes, long endpoints and nested extension values, checking recovery/append/restart and complete-prefix preservation. The two garbage tests plus this matrix pass 3/3 with no retry histories. The actual executed embedded 0.0.16 JAR SHA256 is 44eb5a640194564ce679e16e34f26ea4162426936370b12584a17137c0658683.
  5. A retained UTF-8 test initially failed after the rebase: main escapes paired surrogate code units, while the old fixture searched for raw emoji bytes. Reproduced the exact marker error locally before editing. The only retained-test change maps the serialized emoji escape to the equivalent legacy raw UTF-8 spelling, then validates complete-record replay before cutting. All 12 cuts and every original recovery assertion remain. It passes 1/1, and fails at real malformed UTF-8 recovery when tail truncation is removed and when append decodes UTF-8 prematurely. Current-writer escape cuts remain covered by the new exhaustive matrix.
  6. Re-ran all 19 historical variants: their 26 selected test executions fail as expected. The additional no-tail-repair fixture proof adds one more, for 20 variants / 27 red executions. No compilation error, interrupted run or unexpected pass is counted. Every captured variant runtime hash differs from the fixed JAR. Separate test and code review passes found no additional scoped change needed.
  7. Required bld-build is SUCCESS on the final PR head, completed 2026-10-20 06:03:48 UTC: https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/actions/runs/39377723678/job/118479525647. PR was re-verified OPEN and MERGEABLE at 06:33 UTC. Other CI checks belong to the orchestrator and were not watched.
  8. The final full local suite has not executed. At the first preflight, a shell sequencing mistake let a launch begin after the ps guard reported occupied slots. Stopped it after 25.69 seconds during preparation: two preparation JVMs captured, no embedded test artifact or final XML, no test verdict. Replaced the shell sequence with one guarded Python process. Two bounded slot waits ended without launching a final run, while other local full suites remained active. No other job was signalled. Do not describe this as a completed full-suite run.

Relevant PRs and remote branches

Repo Branch Verified remote head PR Contents and state
SearchableBucketEmbedded https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/tree/fix/jsonl-tail-recovery 2d0fb214450a43d6944d2ba230a700069ef9dff9 https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/pull/14 Final production/test changes. Open, mergeable, bld-build green; full local suite pending.
SearchableBucketEmbedded https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/tree/wip/r50-final-check-evidence 4b94906b9fb8351b41831624b0164180aba607ea No PR; evidence branch only Same source baseline plus 4 MB of commands, complete failure traces, XML, runtime classpaths/hashes, findings and manifest under handoff-artifacts/r50/. No build binaries or dependency caches.

Evidence index: https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/tree/wip/r50-final-check-evidence/handoff-artifacts/r50

Mutation results and runtime hashes: https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/blob/wip/r50-final-check-evidence/handoff-artifacts/r50/evidence/mutation-table.md

Current PR description draft with all verified results and explicit pending full-suite item: https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/blob/wip/r50-final-check-evidence/handoff-artifacts/r50/evidence/pr-description-pending-full.md

Latest main used: https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/commit/925209b2fef4b893ba9142708770246354831ae4. Its preceding catalogue and checkpoint PRs are https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/pull/16 and https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/pull/17. Single-writer ownership enforcement remains separate in https://github.com/CodexCoder21Organization/SearchableBucketEmbedded/issues/19.

Remote heads were checked with git ls-remote and match local heads. No stashes, uncommitted source changes or local-only branch commits remain. One fresh clone/worktree was used. No merge, queue entry, deployment or Maven publication was performed, and no production service/data was accessed by this job.

Next steps

  1. Re-verify PR state/head and bld-build, and ps for active local scripts/test.bash --local --test . executions. At the stop, other local suites in jobs/r52 and jobs/r53 occupied this host. Remote-mode clients execute off-host. Do not stop another job or overlap its local full suite.
  2. Use a fresh clone under your own workspace/, read README and runner scripts, check out the PR branch, fetch and rebase on latest main before building. Do not change budgets or weaken tests. If head changes, keep both main's catalogue/checkpoint behavior and this PR's repair behavior.
  3. Run one full local suite from the exact final head using scripts/test.bash. Expected selection is 117 test files, but record actual pass/fail counts and retry histories. Capture the forked JVM classpath and hash; the brief warns that a pin alone does not prove which artifact ran. The saved run_tests.py can be used with R50_REVIEW_REPO pointing at the fresh clone; choose a new output name and a finite whole-command deadline. This does not change per-test timeouts.
  4. If the suite passes, update the existing PR description with the full counts and exact tested head, retaining the why and footer. If a rebase changed head, check PR still OPEN before pushing with --force-with-lease, and confirm bld-build on that final head with polling no more than once a minute and a hard deadline. Do not watch unrelated CI, merge, enqueue, publish or deploy.
  5. Delete clone build/test outputs and its build cache, stop owned processes, record final counts and stop at the open PR. Archive this handoff after the assigned full-suite bar is actually met.

Operational notes

  • All tests in this job ran through scripts/test.bash. Source changes are only the shared object-remainder validation on top of the rebased original tail-repair changes; no public interface or production dependency pin was added.
  • Never count a preparation failure/interruption as a test verdict. The early test-authoring compile error and interrupted wider targeted preparation are excluded; full logs remain in findings.
  • gh pr edit fails in this environment with GraphQL: Projects (classic) is being deprecated ... (repository.pullRequest.projectCards). Use gh api --method PATCH repos/CodexCoder21Organization/SearchableBucketEmbedded/pulls/14 --input <JSON containing body> instead. Exact pending description is saved on the evidence branch.
  • The current create-handoff skill uses the central service without a PR/queue. Its linked README still contains the retired git/merge flow; that was not followed. The challenge CLI was not invoked because it automatically enqueues/merges, contrary to the task's explicit prohibition.
  • No implementation work remains to guess at. The missing full local result is a host-slot constraint, not evidence of a remaining parser defect and not permission to claim completion.

No status reports yet.

Add dependency

Complete this handoff

Moves it out of every priority list and into ArchiveArea.