docs(quest): Campaigns QT and QJ closed user-accepted
The Journal panel is complete: contracts from the server, a per-character notebook, and its searchable index. The gate ledger is recorded rather than smoothed over, because the pattern is the point — four rounds, and every defect was one mistake wearing different clothes: an element bound as the wrong thing, or a binding never tested. One reported failure was not a defect at all; the character was indoors, where retail records nothing either. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
eadedaea90
commit
57084b5372
2 changed files with 25 additions and 6 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# Campaign QT — the contract tracker (H.3's client half)
|
||||
|
||||
**Status:** CODE-COMPLETE 2026-08-21. All six slices landed; the connected
|
||||
user gate is owed.
|
||||
**Status:** CLOSED USER-ACCEPTED 2026-08-21. All six slices landed and the
|
||||
connected gate passed, together with Campaign QJ's two tabs.
|
||||
|
||||
**Why now.** M4's demo scenario is "talk to an NPC, accept a quest, ... complete
|
||||
the quest." Everything in that sentence works today EXCEPT the player's ability
|
||||
|
|
|
|||
|
|
@ -1,9 +1,28 @@
|
|||
# Campaign QJ — the Journal and Page List tabs
|
||||
|
||||
**Status:** CODE-COMPLETE 2026-08-21. All five slices landed, plus the first
|
||||
connected round's three fixes (button property `0x0D`, the location readout's
|
||||
widget type, refresh-at-the-click). Abandon is now wired too — it turned out to
|
||||
have a real wire action after all. The connected re-gate is owed. Completes the panel Campaign QT mounted: QT
|
||||
**Status:** CLOSED USER-ACCEPTED 2026-08-21. All five slices landed and the
|
||||
connected gate passed.
|
||||
|
||||
The gate took four rounds, and every defect it found was the same mistake in a
|
||||
different place — an element bound as the wrong thing, or a binding never
|
||||
tested:
|
||||
|
||||
1. **Button property `0x0D`** read as "starts disabled", which killed every
|
||||
button on the panel (register QJ-2).
|
||||
2. **The location readout** is authored EDITABLE, so it is a `UiField`; bound
|
||||
as `UiText` it silently discarded every write — the value reached the model
|
||||
and the file and never the screen.
|
||||
3. **Handlers deferred their redraw** to the next frame's `Tick` where retail
|
||||
redraws at the click.
|
||||
4. **The timer's unit labels** stayed visible behind the running readout,
|
||||
because retail's `ShowEditableTimer` toggles each box AND its label.
|
||||
|
||||
Round 3's "Record does nothing" turned out not to be a defect at all: the
|
||||
character was indoors, where retail's own `gid_to_lcoord` fails and nothing is
|
||||
recorded. Faithful, and now commented so it does not read as a gap.
|
||||
|
||||
The durable outcome is `JournalPanelLiveBindTests` — see
|
||||
`claude-memory/feedback_test_the_binding_seam.md`. Completes the panel Campaign QT mounted: QT
|
||||
shipped the Contracts tab and left the other two inert by design.
|
||||
|
||||
**Scope:** retail's `gmJournalUI` (element type `0x10000048`, page
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue