Skip to content

fix: resolve pre-release timeline and form display defects - #174

Merged
ackness merged 2 commits into
mainfrom
fix/background-execution-timeline
Oct 8, 2026
Merged

ackness merged 2 commits into
mainfrom
fix/background-execution-timeline

Conversation

@ackness

@ackness ackness commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Summary

A successfully committed background extraction appeared as an interrupted foreground turn after recovery. Each turn added another false failure below the story. Join worker reasoning to its durable source task using backgroundTurnId, preserving the job's outcome and deduplicating reasoning regardless of hydration order.

- worker trace → separate foreground row → interrupted → extra failed turn
+ worker trace → durable source task → authoritative status + deduplicated reasoning
- field ending in "。" + template "{{field}}。" → "。。"
+ omit the duplicate template full stop; preserve stored input

The second fix addresses repeated full stops in the model-generated opening form found during the same packaged playthrough.

Type of change

  • Bug fix
  • Tests
  • Documentation

Evidence

  • Before: two background-recovery regression cases failed (expected 1 row, received 2); the macOS app accumulated three false failed turns after opening and two player turns, while all three background receipts were success / committed.
    After: both hydration orders and repeated recovery produce one source-task row. The reinstalled DMG restored the same profile without the false failures; a third player turn and fourth extraction completed and remained correct after refresh.
  • Before: two interpolation cases failed because the value and template supplied the same full stop.
    After: all 42 submit-form cases pass, including preservation of stored defaults and ellipses. Replaying the exact form recorded by the native app produces no repeated full stops.

Verification

All local commands used the mise toolchain.

  • pnpm check
  • pnpm test — 43 successful tasks on the final code
  • pnpm test:pg
  • pnpm e2e — complete production-build browser suite
  • pnpm release:preflight
  • Web unit tests — 249 files, 1,792 tests
  • Packaged macOS arm64 DMG installation, same-profile recovery, three real-model player turns, four background extractions, reload and restart; 390px and 1280px layouts
  • macOS/Windows dry run for the timeline fix: https://github.com/ackness/covel/actions/runs/37804018020 — all gates and both packages passed; publication skipped. This run precedes the small narrative interpolation follow-up; the release candidate will receive its own full dry run.

Not verified: interactive Windows GUI playthrough; real image/audio generation. The live-model flow used the configured magpie / codex/gpt-6-luna route and an isolated home/profile. No production user data was modified.

Breaking changes

None. No storage schema, provider routing or plugin contract changes; no development data must be recreated.

Related context

Found during pre-release packaging and native acceptance testing after #173. The user observed false extract failures accumulating at the bottom of the UI.

Docs sync

  • docs/reference/protocol.md describes worker/source correlation and durable status ownership.
  • docs/reference/tools.md documents interpolation-boundary punctuation.
  • docs/CHANGELOG.md records both user-visible fixes under Unreleased.
  • Guides, READMEs and AGENTS.md: no corresponding interface or workflow changes.

Merge Danger

Door: Two-way

Both changes can be reverted without changing stored input or committed game state.

Blast Radius: Presentation

Timeline recovery and filled interaction narrative text. Actual job failures retain their authoritative errors; punctuation is removed only when a template full stop immediately duplicates the filled value's final character.

@ackness
ackness merged commit 2839699 into main Oct 8, 2026
6 checks passed
@ackness
ackness deleted the fix/background-execution-timeline branch October 8, 2026 16:26
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