acdream/docs/plans
Erik 1fd515436c feat(chat): Campaign CH slice CH6a — retail chat-window layout + 8-grip resize
Swap ChatWindowController's imported main-chat LayoutDesc from the wrong
0x21000006 (an unrelated layout whose root and 800px resize bar appear
nowhere in the EoR gameplay UI) to retail's ACTUAL main chat window,
0x2100006F (window root 0x10000600, authored 410x100 — confirmed by a
direct DAT dump, found in dats.Local not dats.Portal). Every downstream
compensation that existed only to paper over the wrong import is deleted:
the hand-cropped 490px content width, the dropped 800px resize bar, the
9px transcript patch, the orphan-sibling pruning, the max/min-vs-scrollbar
overlap shift, and the scrollbar top-reclaim. The window now mounts with
RetailWindowChrome.Imported (0x2100006F's own 8 border/corner elements are
its complete chrome) instead of the universal nine-slice wrapper.

LayoutImporter/DatWidgetFactory gain a Type-9 (UIElement_Resizebar) case:
UiResizeGrip decodes retail's exact four-bool BorderLocation algorithm
(0x2A=bottom/0x2B=left/0x2C=right/0x2D=top,
UIElement_Resizebar::StartMouseResizing @0x0046B7E0) into a ResizeEdges
bitmask. A direct DAT dump established the true shape: only 7 of the 8
grip-position ids are Type 9 — the straight top-EDGE strip (0x1000069C) is
a Type-2 Dragbar (move handle), not a Resizebar, because the main window
has no title bar. UiRoot now gives a directly-hit grip's own edges
priority over its generic proximity heuristic, and a directly-hit move
handle the same priority over ambient proximity — so the plain top strip
moves the window while its two corner grips resize it including the Y
axis, and all 4 edges + 4 corners work everywhere else. This also fixes
the reported "no diagonal cursor at corners" (CursorFeedbackController's
existing RetailCursorCatalog cursor ids already matched the DAT exactly;
they just never received a genuine diagonal edge combination) and "cannot
grow in Y from the bottom-right corner" (the old NineSlice+crop mount's
indirection is gone; the Imported mount uses the DAT's real
minH=100/maxH=2000/minW=300/maxW=2000 directly).

The 8 cosmetic "_Locked" border-art twins default hidden (register row
AP-185 — retail's UiLocked-driven art swap between the two skins is not
ported; UiRoot.UiLocked continues to gate the underlying interaction
correctly either way). The 4 chat-window-1..4 indicator buttons import
generically (visible, inert) for CH6b to wire. The two hand-drawn
translucent-black tints on the transcript/input are removed now that
their parent panels draw their own authored background sprites.

Filed #366 (chat window's new-unseen-text indicator 0x1000048C is
swallowed by UiText.ConsumesDatChildren, pre-existing and out of scope).
Corrected the research doc's "all eight grips" claim against the direct
DAT dump. Full Release suite: 12,317 passed / 4 skipped / 0 failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 09:38:27 +02:00
..
2026-04-10-phase-1-terrain-and-plugin-scaffold.md docs: phase 1 implementation plan 2026-04-10 09:17:49 +02:00
2026-04-10-phase-2-static-meshes-design.md docs(phase-2): refine design after DatReaderWriter spike 2026-04-10 17:18:43 +02:00
2026-04-10-phase-2-static-meshes-plan.md docs: phase 2 implementation plan (tasks 1-10 full, 11-18 sketch) 2026-04-10 17:27:53 +02:00
2026-04-10-phase-2b-design.md docs: phase 2b design — atlas textures, neighbors, dual cameras, plugin api 2026-04-10 20:00:23 +02:00
2026-04-10-phase-2b-plan.md docs: phase 2b implementation plan (9 tasks) 2026-04-10 20:13:03 +02:00
2026-04-10-phase-3c-terrain-blending-plan.md docs(plan): Phase 3c terrain blending plan 2026-04-10 23:43:04 +02:00
2026-04-10-phase-4-networking-design.md docs(plan): Phase 4 networking design 2026-04-10 22:31:26 +02:00
2026-04-10-plugin-architecture-design.md docs: plugin architecture design 2026-04-10 09:11:52 +02:00
2026-04-11-roadmap.md docs: Campaign CH closeout sweep — CODE-COMPLETE pending user gate 2026-08-09 22:34:54 +02:00
2026-04-13-rendering-rebuild.md fix(movement): jump works locally (airborne velocity preserved) 2026-04-14 00:12:11 +02:00
2026-04-23-sky-weather-lightning-port.md docs(sky): port plan for PhysicsScript/fog/lightning/crossfade 2026-04-24 10:53:46 +02:00
2026-04-24-ui-framework.md docs(ui): align architecture with retained runtime 2026-07-10 16:57:44 +02:00
2026-04-27-phase-c1-pes-particles.md feat(vfx): Phase C.1 — PES particle renderer + post-review fixes 2026-04-28 22:47:11 +02:00
2026-04-29-movement-collision-conformance.md docs(phys L.2g): slice 1 shipped handoff + B.4 gap discovery + plan-of-record 2026-05-12 23:17:05 +02:00
2026-04-30-sky-pes-port.md docs(plans): #36 sky-PES dispatch port plan + .gitignore for retail-debugger scratch 2026-04-30 23:00:46 +02:00
2026-05-08-phase-n5-perf-baseline.md phase(N.5): retirement amendment — InstancedMeshRenderer + StaticMeshRenderer + WbFoundationFlag deleted 2026-05-08 22:01:36 +02:00
2026-05-09-phase-n5b-perf-baseline.md docs(N.5b T10): roadmap + ISSUES + CLAUDE.md + perf baseline updates 2026-05-09 13:03:14 +02:00
2026-05-10-perf-tiers-2-3-roadmap.md docs(perf): roadmap for Tier 2 + Tier 3 entity-dispatcher optimizations 2026-05-10 09:38:38 +02:00
2026-05-11-phase-n6-perf-baseline.md docs(perf #N6.1): apply final-review fixes — spec, baseline doc, issue #55 2026-05-11 12:51:10 +02:00
2026-05-12-milestones.md docs: hand off placement campaign finish 2026-08-03 12:54:47 +02:00
2026-05-12-phase-c1.5b-handoff.md docs(vfx #C.1.5b): handoff for next slice (issue #56 + EnvCell statics) 2026-05-11 18:22:01 +02:00
2026-06-11-building-render-port-plan.md docs: T5 comprehensive gate verdict - PARTIAL PASS; #108/#109/#97 closed, #117-#120 filed 2026-06-11 15:46:30 +02:00
2026-07-02-retail-motion-animation-rewrite.md fix(motion): restore retail object manager order 2026-07-19 21:40:14 +02:00
2026-07-20-automated-world-lifecycle-gate.md docs(runtime): close deterministic world lifecycle gate 2026-07-21 00:00:31 +02:00
2026-07-21-gamewindow-slice-1-selection-interaction.md docs(architecture): close selection extraction slice 2026-07-21 09:04:31 +02:00
2026-07-21-gamewindow-slice-2-live-animation-presentation.md docs(architecture): close live animation slice 2026-07-21 10:03:20 +02:00
2026-07-21-gamewindow-slice-3-live-session.md docs(architecture): close live-session ownership slice 2026-07-21 12:44:48 +02:00
2026-07-21-gamewindow-slice-4-live-entity-integration.md docs(plan): complete GameWindow slice 4 2026-07-21 19:29:04 +02:00
2026-07-21-gamewindow-slice-5-landblock-presentation.md docs(architecture): close GameWindow slice 5 2026-07-21 23:45:45 +02:00
2026-07-21-gamewindow-slice-6-update-frame-orchestration.md docs(architecture): close GameWindow slice 6 2026-07-22 03:54:11 +02:00
2026-07-22-gamewindow-slice-7-render-frame-orchestration.md docs(architecture): close GameWindow render slice 2026-07-22 08:40:52 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-g-runtime-settings.md refactor(settings): own two-phase runtime settings 2026-07-22 13:30:22 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-h-resource-ownership.md refactor(lifetime): own render resource prefixes 2026-07-22 14:42:14 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-i-ordered-composition.md refactor(app): close ordered startup composition 2026-07-22 19:20:20 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-i6-ui-live-presentation.md refactor(app): compose live presentation startup 2026-07-22 17:55:15 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-i7-session-player.md refactor(app): compose session and player startup 2026-07-22 18:28:32 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-i8-frame-roots-session-start.md refactor(app): make session start terminal 2026-07-22 19:06:00 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-j-lifetime-shutdown.md refactor(app): extract focused window lifetime 2026-07-22 19:43:52 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-k-canonical-soak.md docs(architecture): record GameWindow automated closeout 2026-07-22 20:52:25 +02:00
2026-07-22-gamewindow-slice-8-checkpoint-l-closeout.md docs(architecture): record GameWindow automated closeout 2026-07-22 20:52:25 +02:00
2026-07-22-gamewindow-slice-8-composition-lifecycle.md docs(architecture): record GameWindow automated closeout 2026-07-22 20:52:25 +02:00
2026-07-23-world-interaction-completion.md docs: world-interaction program CLOSEOUT — all six slices complete, vendors user-accepted end to end 2026-08-08 17:56:42 +02:00
2026-07-24-modern-runtime-architecture.md docs: reconcile project state and refresh README 2026-07-27 12:53:31 +02:00
2026-07-24-modern-runtime-slice-b-envcell-dedup.md docs(perf): close Slice B with full-bake evidence 2026-07-24 14:10:50 +02:00
2026-07-24-modern-runtime-slice-c-prepared-assets.md perf(content): close prepared asset cutover 2026-07-24 15:49:24 +02:00
2026-07-24-modern-runtime-slice-d-unified-residency.md docs(render): close unified residency slice 2026-07-24 17:06:17 +02:00
2026-07-24-modern-runtime-slice-e-cost-budgeted-streaming.md fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
2026-07-24-modern-runtime-slices-f-g-render-scene.md docs(rendering): close retained-scene G5 2026-07-25 13:55:38 +02:00
2026-07-25-modern-runtime-slice-h.md fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
2026-07-25-modern-runtime-slice-i.md fix(physics): traverse prepared indoor portal topology 2026-07-27 00:02:44 +02:00
2026-07-25-modern-runtime-slice-j.md docs(runtime): close Slice J and activate Slice K 2026-07-27 01:01:41 +02:00
2026-07-25-modern-runtime-slice-j2.md docs(runtime): close J2 session lifetime gate 2026-07-25 19:46:47 +02:00
2026-07-25-modern-runtime-slice-j3-object-table.md docs(runtime): close J3.4 and plan J3.5 2026-07-26 06:09:28 +02:00
2026-07-25-modern-runtime-slice-j3-projection-store.md docs(runtime): close J3.3 and hand off J3.4 2026-07-25 22:29:34 +02:00
2026-07-25-modern-runtime-slice-j3.md docs(runtime): close canonical entity object lifetime 2026-07-26 07:35:42 +02:00
2026-07-26-modern-runtime-slice-j3-delta-stream.md docs(runtime): close J3.5 and plan J3.6 2026-07-26 06:54:47 +02:00
2026-07-26-modern-runtime-slice-j3-hardening.md docs(runtime): close canonical entity object lifetime 2026-07-26 07:35:42 +02:00
2026-07-26-modern-runtime-slice-j4.md docs(runtime): close gameplay-state ownership 2026-07-26 10:17:39 +02:00
2026-07-26-modern-runtime-slice-j5.md docs(runtime): close simulation ownership 2026-07-26 16:29:28 +02:00
2026-07-26-modern-runtime-slice-j6.md docs(runtime): close exact world host ownership 2026-07-26 18:41:24 +02:00
2026-07-26-modern-runtime-slice-j7.md docs(runtime): close the accepted J7 visual gate 2026-07-27 00:12:26 +02:00
2026-07-26-modern-runtime-slice-j8.md docs(runtime): close Slice J and activate Slice K 2026-07-27 01:01:41 +02:00
2026-07-26-modern-runtime-slice-k.md docs(headless): close modern runtime slice K 2026-07-27 11:31:19 +02:00
2026-07-26-modern-runtime-slice-l.md docs(linux): park Slice L at L1 checkpoint 2026-07-27 12:35:47 +02:00
2026-07-27-vulkan-campaign.md docs(render): Campaign V is closed - the deferred reruns pass on the GL-free tree 2026-07-29 07:49:29 +02:00
2026-07-29-network-transport-campaign.md docs: Campaign N CLOSED - user-accepted; #260 closed; #262 filed 2026-07-29 17:48:45 +02:00
2026-07-29-physics-parity-campaign.md test(physics): harden TS-4 production chronology 2026-07-31 14:08:51 +02:00
2026-07-29-post-vulkan-work-intake.md docs: VTank requirements research - the plugin-automation milestone model 2026-07-29 16:29:49 +02:00
2026-07-30-physics-parity-visual-matrix.md docs(physics): close Campaign P visual matrix 2026-07-31 10:20:48 +02:00
2026-08-02-placement-cutover.md docs: close the placement cutover ledger — #280 user-passed, remaining gates NOT RUN 2026-08-06 11:05:49 +02:00
2026-08-03-recent-regression-cleanup.md docs: close the recent-regression cleanup plan 2026-08-03 14:34:07 +02:00
2026-08-06-collision-fidelity-campaign.md test(physics): S6 — the camera provably reaches both PerfectClip TOI tails; contained, not dormant 2026-08-07 09:21:40 +02:00
2026-08-07-morning-gate-checklist.md docs: morning gate G1 user-passed — AD-65 downhill slope feel accepted 2026-08-07 06:50:58 +02:00
2026-08-08-audio-parity-campaign.md feat(audio): Ctrl+M instant mute + inn-chatter investigation closed as server content 2026-08-09 14:09:24 +02:00
2026-08-09-chat-parity-campaign.md feat(chat): Campaign CH slice CH6a — retail chat-window layout + 8-grip resize 2026-08-10 09:38:27 +02:00
animation-system-audit.md docs(anim): Phase L.1a animation system audit 2026-04-28 10:38:58 +02:00