โ† Priority list
Unclaimed

Finish the TinySite serving suite and open its pull request

Resolve the failed build worker provisioning, obtain the required exact-head 123-test remote suite result, then open the B1 serving PR. Implementation, README, twelve scenarios and validation records are pushed at 4e543313cafb5032adf7b391ab7ce19de166489f; targeted deploy scenarios and artifact reverse proof passed. Nothing is merged or deployed.

Handoff document

Markdown

Handoff: Finish the TinySite serving suite and open its pull request

Written 2026-10-19 UTC.

RE-VERIFY: This is a write-time snapshot. Check git ls-remote for the branches below; check gh pr list --repo CodexCoder21Organization/TinySiteWui --state open for a serving PR before creating one; use build-watchman against the current run rather than assuming its state here remains current. Nothing was merged, enqueued, published or deployed.

Design decisions in force

The user requested on 2026-10-19:

Let's update management pages like https://tinysite.wasmserver.com/site/5d589398a4 to include a history of all deploys. Each deploy should show which files changed compared to the previous version, and have a URL where I can visit the site as of that previous version. I should be able to route the site's main/production link to a selected version (eg. rollback) if needed.

This handoff is only slice B1: /s/{siteId}/{path} serves the production manifest's stored bytes; /v/{siteId}/{deployId}/{path} serves a chosen deploy; both preserve index/redirect/Range/HEAD/ETag/If-None-Match/If-Range/nosniff/site-path MIME and stored-file replacement checks. Reserved .tinysite/ paths never serve. Legacy flat bytes and synthetic -legacy addresses remain valid. Unknown/malformed/other-site deploys return fixed 404 wording. External pointer/manifest writes are noticed within 30 seconds; writes through the server invalidate immediately. Prefetch only selected-deploy storedAs files with existing bounds. Only /s/ records usage. Pin conventions 0.0.4. Tests create deploy records directly through published conventions API and real in-process Filedrop, never new upload endpoints.

User requires: full scripts/test.bash --remote --test . from the exact pushed head, runner first-attempt counts, before opening the PR. A failing full-suite test must be demonstrated failing on origin/main before calling it unrelated. Do not loosen tests, increase timeouts, lower iterations, skip tests, use mocks/reflection, or create a public seam for testing. Stop after opening the PR; the supervisor owns CI waits. Required PR checks are kotlin.build (remote) and the Actions race gate; red remote is never acceptable. No merge, enqueue, deploy or artifact publication. PR description must begin with the exact user quote above, identify B1 and link known siblings, name SiteCache.invalidateSite(siteId), and end with ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code). Commits end Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>.

What was found and done

  1. Read repository README (no AGENTS.md exists), Testing Architecture and Engineering Philosophy. Traced ServeSiteServlet, SiteCache and createServer. Invariants and detailed progress are saved in the evidence branch's B1-findings.md.
  2. Pushed assertion-red reserved-file baseline, then a second assertion-red production-manifest baseline with published conventions 0.0.4. Neither was a compile failure. Initial compilation needed preparatory builds; canceled/guard-expired setup attempts are not test results.
  3. Implemented logical path to storedAs lookup for both cached/direct reads. Registered /v/* using the same servlet and cache without usage callbacks. Kept raw storage listing keys for version checks. Loaded metadata only with foreground registered owners; a listing retains production and one historical choice, with separate freshness so raw background confirmations cannot extend pointer staleness. Prefetch selects/deduplicates storedAs while ranking site paths, bounds attempted candidates, and correctly replaces/revisits queued views.
  4. Existing internal SiteCache.invalidateSite(siteId) remains the integration hook for C/D after manifest/pointer writes, including unknown write outcomes. It drops listing/metadata and queued work. README documents all new public behavior and /v/ usage exclusion.
  5. Added twelve isolated scenarios. Eleven deploy-package tests passed cumulatively: initial runner group 10/11, then its one fixture corrected and rerun 1/1. The fixture's WUI ManualClock was 2023 while its real storage uploads were 2026; setup now advances to the synthetic legacy timestamp +1000, preserving assertions. The enclosing initial group harness returned 143 despite complete runner records; do not claim exit 0 for it. All original test files remain unchanged. Reserved standalone initial test was demonstrated red; its new behavior also passes in the broader HTTP scenario. Full suite must still establish all 123 scenarios together. The standalone reserved HTTP test subsequently passed against the changed compiled production artifact, exit 0; its deliberately invalid production-pointer fixture produced the expected reported SiteRuleViolation, saved with full stack.
  6. Dedicated test and code review passes added shutdown/restart during metadata read, same-size stored-file replacement with If-Range, malformed metadata/storage errors, worker metadata-budget exclusion, queued view switching, eviction/revisit, legacy adoption and usage checks. No subagents were used.
  7. Reverse proof used the SAME compiled HTTP test/current conventions: changed production jar exit 0; unchanged production jar exit 1 on expected content assertion; changed restored exit 0. This is artifact-level runtime reversion, rather than source reversion during the remote snapshot. It is an explicit deviation to report.
  8. Captured/visually checked local fixed-404 screenshots with existing createServer and a closed storage client (no external storage), uploaded to private PrScreenshots. URLs are in draft-pr.md. Temporary Java launchers and jars are deliberately not committed as build artifacts.

Relevant PRs and refs

Ref Verified state
https://github.com/CodexCoder21Organization/TinySiteWui/tree/feature/serve-deploys Source remote head 4e543313cafb5032adf7b391ab7ce19de166489f; source working tree clean; no B1 PR at last check.
https://github.com/CodexCoder21Organization/TinySiteWui/commit/4e543313cafb5032adf7b391ab7ce19de166489f Completed implementation, README and tests. Not merged or deployed.
https://github.com/CodexCoder21Organization/TinySiteWui/tree/evidence/serve-deploys-2026-10-19 Separate evidence-only branch with findings, draft description and validation records. No build artifacts.
https://github.com/CodexCoder21Organization/TinySiteConventions/pull/3 Storage-format sibling; conventions 0.0.4 is published and used.
https://github.com/CodexCoder21Organization/TinySiteWui/pull/11 Known management UI sibling.
https://github.com/CodexCoder21Organization/TinySiteCli/pull/2 Known CLI sibling.

No source from this slice is live in production. Other WUI pull requests https://github.com/CodexCoder21Organization/TinySiteWui/pull/9 and https://github.com/CodexCoder21Organization/TinySiteWui/pull/10 belong to others; do not edit them.

Remaining steps

  1. Re-verify remote heads, PR existence, origin/main and manual suite run 498519d7. Automatic branch run d2afd69f explicitly names source head in its notes; it is distinct from the required manual suite. Do not delete or rerequest other runs. Manual run 498519d7 terminated FAILED before executing tests. Build watchdog detected no provisioning progress for 9 minutes (5-minute limit); last progress 2026-10-19T09:11:43.158Z; last log provisioning_retry_backoff method=createBuildDroplet, classification=INFRASTRUCTURE/PROVISIONING. CLI exited 1 and printed TESTS FAILED (0/123 tests completed successfully, 123 failed); this is whole-run provisioning failure, not 123 executed test assertions. No --log result file was produced. Do not blindly rerun; investigate/resolve provisioning first. No unchanged-main assertion baseline is claimed because no assertion ran.
  2. Obtain a complete exact-head full remote runner record, with pass/fail and first-attempt counts. If the process guard canceled this queued/incomplete run, start a fresh bounded remote suite when execution is possible. Do not treat zero tests or a successful connection as a passing suite. Reproduce any failures locally before fixing; demonstrate unchanged-main failures before labeling unrelated.
  3. Rebase on latest origin/main immediately before PR creation, keep full tests tied to the resulting head, check existing PRs. No changes since head 4e543313 currently. Source expected total is 123 tests (111 original plus 12 new).
  4. Recover draft-pr.md from evidence, replace FULL_REMOTE_RESULTS with actual counts, update sibling links, and create Serve production and historical TinySite deploys from feature/serve-deploys into main. Stop after opening it; supervisor watches required CI. No merge/enqueue/deploy.
  5. Stop every process started by the resumed job and confirm with ps -eo pid,args -ww. Report PR URL, head, test counts, artifact-level reversal deviation, fixture corrections and any remaining limitation.

Operational details

Assigned checkout: /tmp/claude-1000/-code/25ce0ba7-ba4c-44e2-8aa3-c58875bcce27/scratchpad/lanes/B1/TinySiteWui. Assigned findings: sibling scratchpad/out/B1-findings.md. Prefer recovery from remote branches if disposable local files are gone. Do not reuse another lane's checkout.

Commands: scripts/test.bash --local --test tinysitewui.test.deploys --log /tmp/B1-deploy-targets-results.log; corrected scenario name testLegacyVersionAddressKeepsBytesAndUsage; required final command scripts/test.bash --remote --test . --log /tmp/B1-full-remote-results.log. Runner record is plain text, PASSED/FAILED lines; count first occurrence by test name to expose retries. Full stdout /tmp/B1-full-remote.log. Raw watcher: jars/coursier launch buildwatchman:build-watchman:0.0.21 -r https://kotlin.directory -- --run 498519d7, with a bounded tracked process. Queue wait is not a failed test or proof of a service defect. The /api/runs list works; a guessed /api/runs/{id} URL returned 404 and is not evidence the run vanished.

Challenge reporting was recorded in findings rather than invoking report-challenge's automatic merge, since this brief forbids any merge/enqueue. No scheduler tool was available, so progress reports were maintained manually. No production deploy or library publication was attempted.

No status reports yet.

Add dependency

Complete this handoff

Moves it out of every priority list and into ArchiveArea.