Commit graph

816 commits

Author SHA1 Message Date
Erik
805d10e2b8 docs: file #490 (plugin-panel host StartVisible/ShowInSidePanel + layout revision) and #491 (buff lists not consumed by BuffPlan.Build)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:12:40 +02:00
Erik
80dc762375 docs: headless console CLOSED — connected proof passed; #489 gains the diagnostics-interleave polish item
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 08:30:35 +02:00
Erik
39ed2b5f95 docs: file #489 — headless SpewBox growth without a console, plus console polish items
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 08:27:48 +02:00
Erik
6b7b4bb213 fix #363/#367: route unknown-command refusals to chat, not SpewBox
Owner direction 2026-09-07 (verbatim): "Unknown commands like /vt or
stuff from plugins shall now go to the SpewBox. They should go to the
chatbox." Retail itself types ChatCommandRouter's "Unknown command"
refusals as ClientLocal (0x1A) -- the bit every ChatInterface window's
default filter excludes, so they only ever reached the transient
SpewBox overlay and left no transcript record.

Three call sites in ChatCommandRouter.Submit/EmitVerbHelp now call
IChatCommandFeedback.ShowSystemMessage (chat scroll, retail
Default/0x00) instead of ShowInterfaceText (SpewBox): the degenerate-
prefix "Unknown command: {verb}." guard, EmitVerbHelp's confirmed-
null-help branch, and EmitVerbHelp's unresolved-verb fallback. Every
OTHER 0x1A refusal in this file (AP-183 bad-argument refusals of REAL
retail commands -- lifestone, marketplace, channel list/on/off,
allegiance, house, the generic HandleFailureEvent(0x26) fallback,
DoStupidChannelHack, DoReply) is unchanged and still SpewBox-only --
the owner named only unknown commands and plugin text.

This is a deliberate deviation from retail's own 0x1A typing, recorded
as register row AD-124 (also covers the sibling plugin-text change in
a follow-up commit). docs/ISSUES.md #363/#367 get a one-line note
under each pointing at the re-route; their CLOSED status is untouched.

Mutation check: temporarily reverted all three ShowSystemMessage call
sites back to ShowInterfaceText and confirmed the 3 new/changed pinned
tests fail (Assert.Single() on an empty chat log) while the AP-183
boundary test (real command, bad args, still SpewBox) continues to
pass -- see ChatCommandRouterFeedbackRoutingTests.cs and the updated
ChatCommandRouterTests.cs/RetailCommandHelpTableTests.cs assertions.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 08:22:06 +02:00
Erik
b71bbe82f4 docs: file #488 — .utl expression block length prefix vs newline normalization (latent, from the slice-1 re-check)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 02:26:36 +02:00
Erik
f2d7562c86 chore(plugin-ui): review cleanup — hermetic memo tests, shelf button anchors, outline pin, bounded miss cache; file #486/#487; correct #461
- Split the two hermetic RetailMarkupIconResolver memoization tests (and
  their counting fakes) out of the Lane=InstalledDat class into a new
  untagged RetailMarkupIconResolverMemoizationTests.cs so CI's portable
  filter (Lane!=InstalledDat) actually runs them.
- PluginSidePanel: move the entry button's Anchors = AnchorEdges.None from
  the Add() call site into PluginShelfButton's own constructor (same
  comment carried over) so a second construction path cannot miss it.
- UiRectOutlinePainterOrderTests: assert the back panel's border segment
  carries exactly 4 quads (24 vertices, FloatsPerVertex each) so a partial
  outline cannot pass the painter-order check.
- RetailMarkupIconResolver: document the type as UI-thread-only (every
  caller is a draw-time icon source) and bound the MISS cache to 256
  entries with FIFO eviction — HIT entries stay unbounded (bounded by the
  DAT's own surface count already). New test proves the 257th distinct
  miss evicts the first (re-probe count rises); verified failing first
  against the un-bounded code (Expected 258, Actual 257) before restoring
  the fix.
- docs/plugin-ui-markup.md: split the icon-binding row's failure mode into
  Build-time (missing property only — the binder never checks CLR type)
  vs. draw-time (a resolved value that cannot convert to a number throws
  from the draw, not from Build).
- docs/ISSUES.md: filed #486 (credits picture scroll frozen by the
  per-draw anchor pass) and #487 (radar compass tokens candidate, same
  mechanism, unconfirmed); corrected #461's causality — the graceful
  logout/reveal-cancel log lines are printed by LiveSessionController.Tick's
  catch -> StopAfterFailure -> StopCore AFTER the motion-update exception,
  then it rethrows, so the logout is a consequence of the crash, not its
  cause; real chain is the #462 stalled login-reveal materialization
  leaving PlayerMovementController in RuntimeOwnedDormant outside its
  SetPosition ground phase when an inbound 0xF74C arrives.
- Plan doc: recorded the three fix-round commits' verdicts (all PASS) and
  the Smoke-plugin cleanup commit SHA in the Review ledger, plus a pointer
  to the two newly filed issues.

Verified: dotnet build AcDream.slnx -c Release (0/0), targeted filter
85/0/0, full App suite 7364 passed / 97 skipped / 36 failed (36 pre-existing
InstalledDat/Manual/Linux-only failures, unchanged by name from baseline;
net +1 passed test from the new eviction test).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 17:09:46 +02:00
Erik
0275b4ca5a fix #485: isolate console capture and align Gitea portable test lanes
All checks were successful
CI / linux-portable (push) Successful in 3m40s
CI / windows-gate (push) Successful in 6m16s
CI / release (push) Successful in 2m13s
2026-09-06 11:41:27 +02:00
Erik
3ebb120dd2 fix #483: restore far terrain and close OVERHAUL with #484 deferred
Some checks failed
CI / linux-portable (push) Successful in 3m36s
CI / windows-gate (push) Failing after 6m52s
CI / release (push) Has been skipped
2026-09-06 10:22:51 +02:00
Erik
64d7a3981a docs(overhaul): seal final visual controls and retain shutdown failure 2026-09-05 21:40:59 +02:00
Erik
89a9a7f2ac docs(overhaul): verify final lifecycle reconnect and R6 stability gates 2026-09-05 21:16:26 +02:00
Erik
f9bb47ec63 feat(diagnostics): retain bounded local crash reports (#477)
Project the original Run failure with loaded build, cached GPU and cell context before unwind. Preserve crash status and rethrow; contain report failures and omit arbitrary messages, source paths and session data.

Focused 19/19, narrow production/privacy review and default Release 17044/0/0 pass. Preserve the wrong-package smoke failure and real emitted report; corrected recipe10 smoke exits gracefully with two provisional PNG passes. AMD initiating cause and G4 remain open; FPS deferred. No new retail behavior deviation.
2026-09-05 19:49:22 +02:00
Erik
9baef7c507 docs(overhaul): record extended stability and bound ramp diagnostic 2026-09-05 19:24:41 +02:00
Erik
f4da814af6 fix #477: preserve fatal swapchain operation and result
Native-boundary injection: old code 9 pass / 6 expected Assert.Throws failures. Separate acquire and present sabotage each fail their 3 fatal cases; restored focused gate 82/82. One independent API/production review PASS. Lead locked Release 0W0E; literal-hermetic 17051/0/0, manifest32/32. No retirement, recovery, normal result policy or retail behavior changes. This is first-failure evidence preservation, not an AMD reset fix; extended reproduction and G4 remain open.
2026-09-05 18:57:08 +02:00
Erik
cd888a4932 fix #482: restore neighboring outdoor wall collision
Retain building and object collision for available neighboring landcells when the terrain polygon does not cover the sphere center. Verified against named and paired retail dispatch. Add prepared-flat regressions and installed cathedral repro with sabotage proof. Full Release gate 17036/0/0 and graphical wall blocking, overlap correction and escape pass provisionally. Owner accepts functional collision; exact retail settle coordinates are not claimed. Retire UN-10; keep AP159, AMD stability and final G4 open.
2026-09-05 18:42:31 +02:00
Erik
620540aba2 docs(overhaul): record cathedral GPU recurrence and isolated checks 2026-09-05 17:01:44 +02:00
Erik
b7cb6886c5 Record final lighting correctness lanes and unchanged remaining gates 2026-09-05 15:33:49 +02:00
Erik
6349f0911e Record final lighting and portal gates; bound stale test expectations 2026-09-05 15:24:41 +02:00
Erik
2f192570a2 docs(overhaul): reconcile owner issue status and FPS deferral 2026-09-05 15:07:01 +02:00
Erik
42afec6141 test(overhaul): land reviewed C1c replay correction and retire AD-118 2026-09-05 12:35:45 +02:00
Erik
29730506c5 docs: contract #477 synchronization repair from native validation 2026-09-05 11:25:52 +02:00
Erik
8fd5e434b6 docs: record failed owner gate and bounded #477 validation recipe 2026-09-05 11:18:16 +02:00
Erik
1d0ac478d9 docs(overhaul): establish #476 capture-before-submit defect
Keep screenshot repair separate from the active #475 retirement chunk. Record independently verified source ordering, invalid first-resize PNG, provenance limits and required next proof; no production change or gate PASS.
2026-09-05 10:25:04 +02:00
Erik
6a364ec1a6 docs(overhaul): record portal regression and contract debt-free retirement #475 2026-09-05 10:15:12 +02:00
Erik
3a9d5b01a8 docs(overhaul): accept exterior repair and diagnose portal reveal cycle #474 2026-09-05 09:05:58 +02:00
Erik
b8d80e507f docs(overhaul): record provisional exterior coverage re-gate for #473 2026-09-05 08:24:37 +02:00
Erik
bf23673f3d fix(rendering): preserve opaque building coverage under detail MSAA (#473) 2026-09-05 08:07:51 +02:00
Erik
d35ed1aece docs(overhaul): contract #473 opaque detail coverage repair 2026-09-05 07:49:16 +02:00
Erik
ec8edb1573 docs(overhaul): record owner gate failure #473 and bound exterior diagnosis 2026-09-05 07:30:26 +02:00
Erik
02219318a0 docs(overhaul): prove replay projection cause and contract permanent correction 2026-09-05 07:13:43 +02:00
Erik
3f5ca9ff4f docs(overhaul): capture retail projection mode and contract replay diagnosis 2026-09-05 07:00:53 +02:00
Erik
7c7ccc6252 docs(overhaul): record s5 closeout retail capture stop 2026-09-05 06:03:12 +02:00
Erik
b372467cf5 docs(overhaul): close issue 469 2026-09-05 04:08:41 +02:00
Erik
8098875240 docs(overhaul): contract issue 469 lighting ownership 2026-09-05 03:29:21 +02:00
Erik
2f1e625fea docs(overhaul): close issue 470 2026-09-05 03:23:55 +02:00
Erik
56837f547f docs(overhaul): contract issue 470 readback barrier 2026-09-05 03:07:47 +02:00
Erik
011ab1c182 docs(overhaul): isolate issue 470 Vulkan proof
Record retail/behavior review pass 1/10: renderer behavior is correct, but the physical-device witness cannot live in the portable Release lane. Bind fix round 1 to an explicit Vulkan lane owned by the existing lavapipe job and current-machine proof.
2026-09-05 02:50:35 +02:00
Erik
67a8bc21f6 docs(overhaul): contract ordered sidecar index repair
Bind S5 packet section 27 for issue 470. The contract preserves the shared absolute transform index while making every live per-submission sidecar local, requires a nonzero-prefix production recording and offscreen pixel witness, and keeps receiver selection plus issue 469 out of scope.
2026-09-05 02:15:10 +02:00
Erik
d43f6809b4 docs(overhaul): close S5 c4 and narrow ordered sidecars 2026-09-05 02:12:19 +02:00
Erik
9f410d8b75 docs(overhaul): contract exact S5 c4 detail material 2026-09-04 23:02:33 +02:00
Erik
678bffaa85 docs(overhaul): close S5 c3 and file ordered pack defect 2026-09-04 22:45:47 +02:00
Erik
c3ac20b2ad docs(overhaul): close S5 c2 landing gate 2026-09-04 18:44:50 +02:00
Erik
2001103ca6 docs+gate: #468 filed — the Holtburg doorway pose seats the player in the interior cell at a floorless point and it falls through the world; route-g3b pose 15 moved to the outdoor standing point
The 'empty plane under fog' frame the S4-c1 capture-pose self-gates produced
at frame 15 is the terrain seen from below by a falling player, not a draw
change: the camera probe holds playerCell=0xA9B4013F at (134.07,17.36) while
z drops 96 -> -20 m after materialization. The S3-state run had seated the
same request outdoors in 0xA9B40029 and stood. Placement is not the campaign's
domain; the gate pose is moved so the G3 frame is deterministic and the
original pose is kept in the issue as the reproduction. #462 recurrence on
the pre-S4 control build noted.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 06:37:09 +02:00
Erik
92f08721e2 docs: #464 FIXED at 766f9e749 — confirmed by the scripted tilt route at the identical eye (S4-c1's ±12 reject)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 06:17:21 +02:00
Erik
5f3b4f98ee docs: owner reports #464 fixed at 766f9e749 (provisional); S4-c2 implementer commit 048d5b12f recorded with its three deviations
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 05:54:00 +02:00
Erik
2712a8b221 docs(issues): #464 night close — degrade level and depth contract equal to retail; the hall shell draws over the corridor vault; same-eye retail comparison owed (RenderDoc or the owner's tilt sweep)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 23:28:58 +02:00
Erik
bc6ed38380 docs(issues): #464 source found — the hall building's shell wins the depth test against the corridor cell's vault; skipping that shell draw restores retail's frame
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 23:25:23 +02:00
Erik
720d04856c docs(issues): #464 A/B round — no clip overflow, opaque piers, depth clear and alpha flush innocent, extra admissions innocent; the source is the cathedral's own content
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 23:16:09 +02:00
Erik
0b9e9b64ad docs(issues): #464 reproduced by script — seven outside views draw the artifact, five draw clean; the unclipped punch-fan fallback is the prime suspect
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 23:01:02 +02:00
Erik
f2c2cdb876 docs(issues): #464 — the arch is cell 0x109's far wall fourteen metres beyond the open face; farther cells show over it (alpha-flush vs Z-clear order is the prime candidate)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:47:48 +02:00
Erik
2f7f45c2dd docs(issues): #464 geometry round — punches vertex-identical to retail, 12 of 16 rejected by the ±12 rule in both clients; no authored wall above the arch
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 22:45:07 +02:00