docs: FA3 -- connected-gate test script + plan ledger update
- docs/research/2026-08-12-campaign-fa-test-script.md: the user's connected-gate script for FA3 -- open paths (F3/F4 + tab switch), gmPanelUI exclusivity vs sibling panels, tab switching, all four pages' expected shells/empty states, Friends/Squelch read-only expectations + the D1 INERT buttons, what to report, what's explicitly out of scope (FA4/FA5/FA6/D1's deferred wire). - Plan ledger: FA3 row filled in with commit SHAs, totals (13,233/4/0, 13,237 total, +18 over FA2's close), the tab-table correction finding, and the reverted unrelated fixture drift note. Campaign status line updated from "FA3 in flight" to implementation-complete pending review + gate. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
74c3d85d37
commit
b6a25110f3
2 changed files with 178 additions and 2 deletions
|
|
@ -9,7 +9,9 @@
|
||||||
**Status: ACTIVE — planned 2026-08-11. FA1 CLOSED 2026-08-12; FA2 CLOSED
|
**Status: ACTIVE — planned 2026-08-11. FA1 CLOSED 2026-08-12; FA2 CLOSED
|
||||||
2026-08-12 (dual APPROVE-WITH-FIXES → fix round `4272ad0e`/`ded23067`/
|
2026-08-12 (dual APPROVE-WITH-FIXES → fix round `4272ad0e`/`ded23067`/
|
||||||
`ed8b3ec9` → narrow re-review CLOSED `cc1a319c`, no reopen; CF-1 folded
|
`ed8b3ec9` → narrow re-review CLOSED `cc1a319c`, no reopen; CF-1 folded
|
||||||
into the corrected FA5 slice row). FA3 in flight.**
|
into the corrected FA5 slice row). FA3 implementation complete
|
||||||
|
2026-08-12 (`0a9ca2f1`/`74c3d85d`), owes its §7 dual-lens Opus review and
|
||||||
|
the user's connected gate (`docs/research/2026-08-12-campaign-fa-test-script.md`).**
|
||||||
|
|
||||||
**Goal:** retail's social panel — the four-tab `gmPanelUI` member at host
|
**Goal:** retail's social panel — the four-tab `gmPanelUI` member at host
|
||||||
slot `0x1000018F` (panel id **12**): **Friends / Allegiance / Fellowship /
|
slot `0x1000018F` (panel id **12**): **Friends / Allegiance / Fellowship /
|
||||||
|
|
@ -242,7 +244,7 @@ before anything builds on them.
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| FA1 | **CLOSED 2026-08-12** — narrow re-review verdict CLOSED, no reopen (`96df892d`, §7 of the mechanism findings doc: all 7 mechanism dispositions re-derived in the diffs, all 6 blast dispositions spot-verified, suite claim corroborated on post-fix binaries); re-review carry-forward CF-1 (two further stale `AllegianceTree` citations in the seam map's FA2 guidance, `:128`/`:214`) closed by coordinator addenda in the same commit as this ledger update — FA2 was contracted not to start before that | `7be86f47` (builders), `6bedbc47` (parsers), `5f9aa16f` (WeenieError), `4281750b` (delete AllegianceTree); fix-round: `ed308087` (mechanism+blast MUST/SHOULD-FIX code+tests), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa1-review-mechanism.md` (2 MUST-FIX, 5 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa1-review-blast.md` (4 MUST-FIX, 5 SHOULD-FIX, all applied). **Live-surface note (blast SF-1):** FA1 changed the observable output of the ALREADY-LIVE `@allegiance info` command in two retail-faithful ways — vassal print order reversed (now pinned by a 3-vassal test through `FormatAllegianceInfoLines`) and a malformed tree now prints nothing instead of a partial roster (now pinned at the `GameEventWiring` layer) — not a "purely unwired" slice. | automated: Release build + full suite green throughout. **Reconciled totals (blast MF-4):** the ledger's own prior figure (13,149/4/0) is CONFIRMED correct by direct measurement at the pre-fix-round tip `bc693728` (13,153 total = 4+916+1559+15+130+119+4856+877+4677 across all 9 test projects); the campaign-start baseline in §5 is 13,103/4/0, and the diff-verified FA1 delta is **+58 added / −9 deleted (deleted `AllegianceTreeTests.cs`) = net +49**, i.e. 13,103+49=13,152 — one test of drift against the directly-measured 13,153/13,149 baseline, attributed to the §5 baseline being captured at a different point in git history than the FA1 diff's actual parent, not a further miscount. This fix round adds a further **+9 tests** (2 golden vectors for the new `0x001F` builder, 1 D5 `<<1` pin at the `0x02C0` site, 4 MF-1/SF-1 boundary tests, 2 blast SF-1 live-surface pins) — **final: 13,158 passed / 4 skipped / 0 failed (13,162 total), directly measured.** |
|
| FA1 | **CLOSED 2026-08-12** — narrow re-review verdict CLOSED, no reopen (`96df892d`, §7 of the mechanism findings doc: all 7 mechanism dispositions re-derived in the diffs, all 6 blast dispositions spot-verified, suite claim corroborated on post-fix binaries); re-review carry-forward CF-1 (two further stale `AllegianceTree` citations in the seam map's FA2 guidance, `:128`/`:214`) closed by coordinator addenda in the same commit as this ledger update — FA2 was contracted not to start before that | `7be86f47` (builders), `6bedbc47` (parsers), `5f9aa16f` (WeenieError), `4281750b` (delete AllegianceTree); fix-round: `ed308087` (mechanism+blast MUST/SHOULD-FIX code+tests), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa1-review-mechanism.md` (2 MUST-FIX, 5 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa1-review-blast.md` (4 MUST-FIX, 5 SHOULD-FIX, all applied). **Live-surface note (blast SF-1):** FA1 changed the observable output of the ALREADY-LIVE `@allegiance info` command in two retail-faithful ways — vassal print order reversed (now pinned by a 3-vassal test through `FormatAllegianceInfoLines`) and a malformed tree now prints nothing instead of a partial roster (now pinned at the `GameEventWiring` layer) — not a "purely unwired" slice. | automated: Release build + full suite green throughout. **Reconciled totals (blast MF-4):** the ledger's own prior figure (13,149/4/0) is CONFIRMED correct by direct measurement at the pre-fix-round tip `bc693728` (13,153 total = 4+916+1559+15+130+119+4856+877+4677 across all 9 test projects); the campaign-start baseline in §5 is 13,103/4/0, and the diff-verified FA1 delta is **+58 added / −9 deleted (deleted `AllegianceTreeTests.cs`) = net +49**, i.e. 13,103+49=13,152 — one test of drift against the directly-measured 13,153/13,149 baseline, attributed to the §5 baseline being captured at a different point in git history than the FA1 diff's actual parent, not a further miscount. This fix round adds a further **+9 tests** (2 golden vectors for the new `0x001F` builder, 1 D5 `<<1` pin at the `0x02C0` site, 4 MF-1/SF-1 boundary tests, 2 blast SF-1 live-surface pins) — **final: 13,158 passed / 4 skipped / 0 failed (13,162 total), directly measured.** |
|
||||||
| FA2 | **FIX-ROUND CLOSED 2026-08-12** — both reviews' MUST-FIX/SHOULD-FIX findings applied; automated gate only, per contract | `RuntimeFellowshipState`/`RuntimeAllegianceState` (2 new sibling J-owners, `src/AcDream.Runtime/Gameplay/`), the full 8-edit template applied twice (`GameRuntime.cs`, `RuntimeGenerationReset.cs`, `RuntimeGameplayOwnership.cs`/`RuntimeSimulationOwnership.cs`, `GameRuntimeGameplayViews.cs`, `GameRuntimeCommands.cs`, `GameRuntimeEvents.cs`, `GameRuntimeViews.cs`), ~~12 new `WorldSession.Send*` wrappers, 15 new `GameEventWiring.WireAll` delegate holes~~ **[FA2 fix-round addendum, 2026-08-12 (docs/research/2026-08-12-fa2-review-blast.md SHOULD-FIX 3): both counts were wrong. `WorldSession.cs:2318-2404` adds **11** new `Send*` wrappers (7 fellowship + 4 allegiance) — `SendAllegianceInfoRequest` pre-dates FA2; the **12** figure belongs to a different count, `cced83b4`'s `*RuntimeCmd` records / `LiveSessionCommandBindings` send delegates. `GameEventWiring.cs:107-120` adds **10** delegate holes (9 new + the `0x027C` fold), not 15 — matching the "11 S→C events" the seam doc's §2.3 table names, of which 2 (`0x01C9`/`0x01CA`) are correctly left unregistered (dead COMDAT-fold no-ops) and 1 (`0x027C`) was already registered pre-FA2.]** registered at the single site (`LiveSessionEventRouter.cs`), both `LiveSocialSessionBindings` construction sites updated (`LiveSessionRuntimeFactory.cs`, `HeadlessSessionHost.cs`), `IRuntimeFellowshipCommands`/`IRuntimeAllegianceCommands` implemented on both host command adapters (`DirectGameRuntimeCommandAdapter`, `CurrentGameRuntimeCommandAdapter` + its `LiveSessionCommandRouter`/`LiveSessionCommandBindings` App-bus plumbing), divergence register rows TS-81 (filed) + TS-80 (narrowed); fix-round: `4272ad0e` (mechanism MUST-FIX 1/2 + blast MUST-FIX 1/2 + blast SF-1 + mechanism SF-2 — allegiance reset semantics, 0x027C stops seeding, teardown-ledger off-by-one, conditional delegate holes, disposed-checks-inside-lock), `ded23067` (mechanism SF-3/4/5/6 + blast SF-4/5/7 — RecalculateEvenXPSplitting, locked/departed admission gate, AllegianceProfileLookups reuse, non-null checkpoint defaults, router self/other-quit test, ResetSession disposed-guard parity, GetVassals allocation doc), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa2-review-mechanism.md` (2 MUST-FIX, 6 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa2-review-blast.md` (2 MUST-FIX, 7 SHOULD-FIX, all applied). **Allegiance register-row re-evaluation (blast SF-6):** the design blast SF-6 asked to be either dropped or given a register row is now fully retired by MF-1's fix — `RuntimeAllegianceState` clears at every generation reset exactly like `RuntimeFellowshipState` and exactly like retail's `OnEndCharacterSession` hook, so there is no remaining acdream-vs-retail deviation for allegiance persistence to name a row for. No register row added; conclusion recorded here per the fix-round contract. | automated: Release build + full suite green throughout. **Pre-fix-round baseline 13,201/4/0 (13,205 total, measured at `12053e61` by the blast review) → fix-round 13,215/4/0 (13,219 total), +14 tests, arithmetic exact:** `RuntimeAllegianceStateTests.cs` net +2 (−1 deleted `ApplyInfoResponseSelf_...`, +3 new `ResetSession_*`), `RuntimeFellowshipStateTests.cs` +10 (1 `ResetSession_AfterDispose_...` + 3 `[Theory]` cases for `RecalculateEvenXPSplitting` + 1 `ShareXp`-off case + 1 full-update-never-recomputes case + 4 locked/departed admission-gate cases), `GameRuntimeTests.cs` +1 (`CompletedTeardownStagesAccumulatesExactlyOneFlagPerStage`), `Session/LiveSessionEventRouterTests.cs` +1 (`FellowshipQuit_RoutesSelfGuidToClearAndOtherGuidToRemove`); `RuntimeGenerationResetTests.cs` and `GameEventWiringTests.cs` each renamed one test in place (net 0); `GameRuntimeContractTests.cs` gained two trailing constructor arguments at its sole positional `RuntimeStateCheckpoint` site (compile-fix only, no new test). |
|
| FA2 | **FIX-ROUND CLOSED 2026-08-12** — both reviews' MUST-FIX/SHOULD-FIX findings applied; automated gate only, per contract | `RuntimeFellowshipState`/`RuntimeAllegianceState` (2 new sibling J-owners, `src/AcDream.Runtime/Gameplay/`), the full 8-edit template applied twice (`GameRuntime.cs`, `RuntimeGenerationReset.cs`, `RuntimeGameplayOwnership.cs`/`RuntimeSimulationOwnership.cs`, `GameRuntimeGameplayViews.cs`, `GameRuntimeCommands.cs`, `GameRuntimeEvents.cs`, `GameRuntimeViews.cs`), ~~12 new `WorldSession.Send*` wrappers, 15 new `GameEventWiring.WireAll` delegate holes~~ **[FA2 fix-round addendum, 2026-08-12 (docs/research/2026-08-12-fa2-review-blast.md SHOULD-FIX 3): both counts were wrong. `WorldSession.cs:2318-2404` adds **11** new `Send*` wrappers (7 fellowship + 4 allegiance) — `SendAllegianceInfoRequest` pre-dates FA2; the **12** figure belongs to a different count, `cced83b4`'s `*RuntimeCmd` records / `LiveSessionCommandBindings` send delegates. `GameEventWiring.cs:107-120` adds **10** delegate holes (9 new + the `0x027C` fold), not 15 — matching the "11 S→C events" the seam doc's §2.3 table names, of which 2 (`0x01C9`/`0x01CA`) are correctly left unregistered (dead COMDAT-fold no-ops) and 1 (`0x027C`) was already registered pre-FA2.]** registered at the single site (`LiveSessionEventRouter.cs`), both `LiveSocialSessionBindings` construction sites updated (`LiveSessionRuntimeFactory.cs`, `HeadlessSessionHost.cs`), `IRuntimeFellowshipCommands`/`IRuntimeAllegianceCommands` implemented on both host command adapters (`DirectGameRuntimeCommandAdapter`, `CurrentGameRuntimeCommandAdapter` + its `LiveSessionCommandRouter`/`LiveSessionCommandBindings` App-bus plumbing), divergence register rows TS-81 (filed) + TS-80 (narrowed); fix-round: `4272ad0e` (mechanism MUST-FIX 1/2 + blast MUST-FIX 1/2 + blast SF-1 + mechanism SF-2 — allegiance reset semantics, 0x027C stops seeding, teardown-ledger off-by-one, conditional delegate holes, disposed-checks-inside-lock), `ded23067` (mechanism SF-3/4/5/6 + blast SF-4/5/7 — RecalculateEvenXPSplitting, locked/departed admission gate, AllegianceProfileLookups reuse, non-null checkpoint defaults, router self/other-quit test, ResetSession disposed-guard parity, GetVassals allocation doc), this commit (register/plan/seams doc corrections) | mechanism `docs/research/2026-08-12-fa2-review-mechanism.md` (2 MUST-FIX, 6 SHOULD-FIX, all applied); blast `docs/research/2026-08-12-fa2-review-blast.md` (2 MUST-FIX, 7 SHOULD-FIX, all applied). **Allegiance register-row re-evaluation (blast SF-6):** the design blast SF-6 asked to be either dropped or given a register row is now fully retired by MF-1's fix — `RuntimeAllegianceState` clears at every generation reset exactly like `RuntimeFellowshipState` and exactly like retail's `OnEndCharacterSession` hook, so there is no remaining acdream-vs-retail deviation for allegiance persistence to name a row for. No register row added; conclusion recorded here per the fix-round contract. | automated: Release build + full suite green throughout. **Pre-fix-round baseline 13,201/4/0 (13,205 total, measured at `12053e61` by the blast review) → fix-round 13,215/4/0 (13,219 total), +14 tests, arithmetic exact:** `RuntimeAllegianceStateTests.cs` net +2 (−1 deleted `ApplyInfoResponseSelf_...`, +3 new `ResetSession_*`), `RuntimeFellowshipStateTests.cs` +10 (1 `ResetSession_AfterDispose_...` + 3 `[Theory]` cases for `RecalculateEvenXPSplitting` + 1 `ShareXp`-off case + 1 full-update-never-recomputes case + 4 locked/departed admission-gate cases), `GameRuntimeTests.cs` +1 (`CompletedTeardownStagesAccumulatesExactlyOneFlagPerStage`), `Session/LiveSessionEventRouterTests.cs` +1 (`FellowshipQuit_RoutesSelfGuidToClearAndOtherGuidToRemove`); `RuntimeGenerationResetTests.cs` and `GameEventWiringTests.cs` each renamed one test in place (net 0); `GameRuntimeContractTests.cs` gained two trailing constructor arguments at its sole positional `RuntimeStateCheckpoint` site (compile-fix only, no new test). |
|
||||||
| FA3 | — | | | |
|
| FA3 | **IMPLEMENTATION COMPLETE 2026-08-12 — owes §7 dual-lens Opus review and the user's connected gate** (script: `docs/research/2026-08-12-campaign-fa-test-script.md`). | `0a9ca2f1` (`SocialPanelController` + 4 per-page controllers + `SocialPanelRowText`, `UiTemplateListBox.Flush`, `RetailPanelCatalog.SocialPanel`/`WindowNames.SocialPanel`, `RetailUiRuntime` Mount/Tick/F3/F4 wiring, `InteractionRetainedUiComposition`'s `SocialRuntimeBindings`, register row AD-79); `74c3d85d` (fixture generator entry + committed `social_panel_2100006E_1000018F.json`, `SocialPanelLiveMountProbeTests`, `SocialPanelControllerTests`, `RetailPanelCatalogTests` additions, `FixtureLoader` additions); this commit (gate script + ledger). | Not yet reviewed. | automated: Release build green; full solution suite **13,233 passed / 4 skipped / 0 failed (13,237 total)**, +18 over FA2's closing 13,215/4/0 (13,219 total) — exact arithmetic: 13 `SocialPanelControllerTests` + 4 `RetailPanelCatalogTests` additions + 1 `SocialPanelLiveMountProbeTests` (env-gated, trivially passes without `ACDREAM_PROBE_LIVE_MOUNT=1`) = 18. **Live-DAT finding (corrects the coordinator addendum, §10):** the real authored `0x2E` tab table pairs button `0x1000028C` ("Allegiance" caption) with page `0x10000291` as the DEFAULT entry — NOT Friends, which the addendum's x-order guess implied; each page's own `P0x57` independently corroborates (Allegiance page `P0x57=0x1000000E` == `ToggleAllegiancePanel`/F3, Fellowship page `P0x57=0x1000000F` == `ToggleFellowshipPanel`/F4). See `SocialPanelController`'s class doc for the full corrected table. **Unrelated fixture drift caught and reverted:** the `ACDREAM_REGENERATE_UI_FIXTURES=1` run used to produce the new fixture also silently regenerated `keyboard_config_21000009.json` and `options_2100002B.json` with large diffs against this machine's currently-installed DAT (pre-existing environment drift, not FA3-caused) — both were `git checkout`'d back to HEAD before committing; only the new fixture is included. Friends/Squelch action buttons are honest INERT per D1 (register row AD-79, one row covering both pages' seven controls, not one row per button). |
|
||||||
| FA4 | — | | | |
|
| FA4 | — | | | |
|
||||||
| FA5 | — | | | |
|
| FA5 | — | | | |
|
||||||
| FA6 | — | | | |
|
| FA6 | — | | | |
|
||||||
|
|
|
||||||
174
docs/research/2026-08-12-campaign-fa-test-script.md
Normal file
174
docs/research/2026-08-12-campaign-fa-test-script.md
Normal file
|
|
@ -0,0 +1,174 @@
|
||||||
|
# Campaign FA connected-gate test script
|
||||||
|
|
||||||
|
**Status: FA3 owes its connected gate.** Launch with `ACDREAM_LIVE=1`
|
||||||
|
against the local ACE server (`testaccount` / `+Acdream`). Anything marked
|
||||||
|
**INERT** is authored and clickable but deliberately does nothing yet —
|
||||||
|
that is the correct, contracted behavior for this slice (D1), not a bug.
|
||||||
|
|
||||||
|
FA3 is the panel SHELL only: mount, F3/F4 open paths, tab switching, all
|
||||||
|
four pages' empty states, and Friends/Squelch read-only lists. Fellowship
|
||||||
|
roster rows, the create-fellowship dialog, live vitals, and every
|
||||||
|
Allegiance swear/break/kick action are FA4/FA5 scope — do not report their
|
||||||
|
absence here.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## FA3 — the social panel shell
|
||||||
|
|
||||||
|
### Opening the panel — F3/F4, keyboard only
|
||||||
|
|
||||||
|
1. **Press F3.** The social panel opens on its **Allegiance** tab (the
|
||||||
|
authored default tab — NOT Friends, despite Friends being drawn
|
||||||
|
left-most on the tab strip in some sort orders; Allegiance is retail's
|
||||||
|
own authored default entry). No toolbar button opens this panel —
|
||||||
|
retail authors none (lane A §6.1) — so there is nothing to click for
|
||||||
|
this step besides the keybind itself.
|
||||||
|
2. **Press F3 again** while the panel is open and already on the
|
||||||
|
Allegiance tab. The panel closes — same toggle-closes-on-repeat-press
|
||||||
|
shape as every other `Toggle*Panel` action (e.g. F11/Options,
|
||||||
|
Spellbook).
|
||||||
|
3. **Press F4.** The social panel opens directly on its **Fellowship**
|
||||||
|
tab (F4 switches AND opens in one press, even if the panel was
|
||||||
|
closed).
|
||||||
|
4. **With the panel open on Fellowship, press F3.** The panel does NOT
|
||||||
|
close — it switches to the Allegiance tab (F3 is scoped to its own
|
||||||
|
tab, not a blanket close). Symmetrically, pressing F4 while open on
|
||||||
|
Allegiance switches to Fellowship rather than closing.
|
||||||
|
5. **Click the panel's own close (X) button**, top-right of the window
|
||||||
|
chrome. The panel closes — same action as a repeat F3/F4 press on the
|
||||||
|
already-active tab.
|
||||||
|
6. **Drag the window by its border/chrome; resize it from the BOTTOM
|
||||||
|
edge only.** Same shared `gmPanelUI` geometry policy as every sibling
|
||||||
|
main panel (Options, Character, Inventory, Spellbook, the
|
||||||
|
indicator-detail panels): draggable, resizable from the bottom edge
|
||||||
|
only, remembers its height across a close/reopen within the session.
|
||||||
|
|
||||||
|
### Exclusivity vs sibling panels
|
||||||
|
|
||||||
|
7. **Open Character Info (or Inventory, or Options), then press F3.**
|
||||||
|
The other panel closes and the social panel opens on Allegiance — the
|
||||||
|
SAME retail `gmPanelUI` one-active-panel-at-a-time behavior every
|
||||||
|
sibling panel already has (`RetailPanelUiController.RegisterMainPanel`
|
||||||
|
shares one geometry rectangle across all ten registered main panels).
|
||||||
|
8. **With the social panel open, open Character Info.** The social panel
|
||||||
|
closes. Confirms the exclusivity is bidirectional, not just
|
||||||
|
"opening the social panel closes others."
|
||||||
|
|
||||||
|
### Tab switching
|
||||||
|
|
||||||
|
9. **Click each of the four tabs** (Allegiance, Fellowship, Friends,
|
||||||
|
Squelch — left-to-right authored order is Friends, Allegiance,
|
||||||
|
Fellowship, Squelch; only ONE tab is highlighted "open" at a time).
|
||||||
|
Each switches the visible page; exactly one page is visible at a
|
||||||
|
time. No crash, no stuck state, switching back and forth repeatedly
|
||||||
|
is safe.
|
||||||
|
10. **Note the tab captions read correctly** — "Friends", "Allegiance",
|
||||||
|
"Fellowship", "Squelch" — not blank. A blank caption on any tab
|
||||||
|
button would be the #375 missing-string-resolver class of bug;
|
||||||
|
report it immediately if seen.
|
||||||
|
|
||||||
|
### Fellowship page — empty state
|
||||||
|
|
||||||
|
11. **On a character with NO fellowship** (the default state), open the
|
||||||
|
Fellowship tab. Expect: an editable fellowship-name text field, a
|
||||||
|
**Create Fellowship** button, and three checkboxes (Ignore
|
||||||
|
Fellowship Requests / Auto-Accept Requests / Share XP — a fourth,
|
||||||
|
Share Loot, may also be present). No member list, no
|
||||||
|
leader/quit/open/recruit/dismiss/disband buttons visible — those
|
||||||
|
belong to the OTHER (in-fellowship) frame, which is hidden.
|
||||||
|
**INERT:** the Create Fellowship button, the name field, and all
|
||||||
|
visible checkboxes do nothing yet on click/edit (FA4 wires the
|
||||||
|
create flow and the checkboxes already have Options-tab live
|
||||||
|
consumers — this page's OWN copies are not yet cross-bound).
|
||||||
|
12. **If the test character IS currently in a fellowship** (uncommon for
|
||||||
|
`+Acdream`'s default state, but possible if a prior session left one
|
||||||
|
active), open the Fellowship tab instead expecting: a fellowship
|
||||||
|
name display, a member roster ListBox (empty rows — FA4 populates
|
||||||
|
them), and six buttons (Leader/Quit/Open/Recruit/Dismiss/Disband).
|
||||||
|
All six buttons are **INERT** for FA3.
|
||||||
|
|
||||||
|
### Allegiance page — empty state
|
||||||
|
|
||||||
|
13. **On a character with NO allegiance profile ever received this
|
||||||
|
session** (the default state — nothing has queried allegiance data
|
||||||
|
yet), open the Allegiance tab. Expect: the monarch block and patron
|
||||||
|
block BOTH HIDDEN (no visible "Monarch:" / "Patron:" labels or
|
||||||
|
name lines), while your own character line (name/followers/rank) and
|
||||||
|
the vassal list area remain visible per their authored layout. The
|
||||||
|
Swear/Break/Kick buttons and the "Ignore Allegiance Requests"
|
||||||
|
checkbox are present and **INERT**.
|
||||||
|
14. **This state may not change automatically** — FA3 does not send the
|
||||||
|
`0x001F AllegianceUpdateRequest` subscription (that is FA5 scope, per
|
||||||
|
the plan's corrected D6/CF-1 note), so simply opening the tab will
|
||||||
|
NOT cause a profile to arrive. If some other client action causes an
|
||||||
|
allegiance push to land server-side during this session (e.g. a
|
||||||
|
`@allegiance info` chat command, which already works independently of
|
||||||
|
this panel), the monarch/patron blocks should then become VISIBLE —
|
||||||
|
report if they do not.
|
||||||
|
|
||||||
|
### Friends page — read-only list
|
||||||
|
|
||||||
|
15. **Open the Friends tab.** If the test account has any friends
|
||||||
|
server-side, their NAMES appear as rows in the list (no online/
|
||||||
|
offline styling, no icons — names only, this slice's explicit
|
||||||
|
scope). If the account has none, the list is empty (no placeholder
|
||||||
|
text is invented).
|
||||||
|
16. **The three action-shaped buttons and the "Appear Offline"-shaped
|
||||||
|
checkbox are INERT** — clicking/toggling them does nothing (register
|
||||||
|
row AD-79). This is CONTRACTED for FA3; do not report it.
|
||||||
|
|
||||||
|
### Squelch page — read-only list
|
||||||
|
|
||||||
|
17. **Open the Squelch tab.** If the test account has any squelched
|
||||||
|
characters or accounts, their names appear as rows (characters and
|
||||||
|
account-level squelches both listed, names only). Empty otherwise.
|
||||||
|
18. **The three action-shaped buttons are INERT** (register row AD-79,
|
||||||
|
same as Friends). CONTRACTED, do not report.
|
||||||
|
|
||||||
|
### Live update while the panel is closed
|
||||||
|
|
||||||
|
19. **This is a soft check, not required to pass/fail the gate:** if
|
||||||
|
Friends/Squelch state changes server-side while the social panel is
|
||||||
|
CLOSED (e.g. via `@friend` chat commands, if any are wired), then
|
||||||
|
reopening the panel afterward should show the up-to-date list
|
||||||
|
immediately (the read-only binding polls every frame regardless of
|
||||||
|
which tab or window is visible — see
|
||||||
|
`SocialFriendsPageController`/`SocialSquelchPageController`'s own
|
||||||
|
doc comments). Report if the list is stale on reopen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### What to report
|
||||||
|
|
||||||
|
- Any tab caption that renders blank instead of its retail name.
|
||||||
|
- The panel opening on the wrong DEFAULT tab (should be Allegiance, not
|
||||||
|
Friends) on a fresh F3 press with the panel previously closed.
|
||||||
|
- F3/F4 failing to switch tabs while the panel is already open, or
|
||||||
|
closing the panel when it should only switch tabs.
|
||||||
|
- The panel NOT closing/opening exclusively with sibling `gmPanelUI`
|
||||||
|
panels (Character/Inventory/Options/etc.).
|
||||||
|
- The Fellowship page showing the WRONG frame for the character's actual
|
||||||
|
fellowship state (e.g. showing the roster/six-button frame while
|
||||||
|
`+Acdream` has no fellowship).
|
||||||
|
- The Allegiance page's monarch/patron blocks staying hidden after a
|
||||||
|
real allegiance push has visibly landed (e.g. after `@allegiance info`
|
||||||
|
shows non-empty data in chat).
|
||||||
|
- Any INERT button/checkbox producing a VISIBLE effect (a Create
|
||||||
|
Fellowship, Swear, Friends, or Squelch action that unexpectedly does
|
||||||
|
something) — this would mean either an accidental wire connection or
|
||||||
|
a stale INERT claim in this script.
|
||||||
|
- A Friends/Squelch row showing anything other than a plain name (an
|
||||||
|
exception, a blank row, garbled text).
|
||||||
|
- Any crash, hang, or exception in the log while opening/closing/
|
||||||
|
switching tabs repeatedly.
|
||||||
|
|
||||||
|
### Explicitly NOT in scope for this gate
|
||||||
|
|
||||||
|
- Fellowship roster population, vitals, the create-fellowship dialog,
|
||||||
|
recruit/dismiss/leader/open/disband wire sends, and the option-row
|
||||||
|
un-dims (FA4).
|
||||||
|
- Allegiance monarch/patron/vassal LIVE population, swear/break/kick
|
||||||
|
wire sends, and their confirmation dialogs (FA5).
|
||||||
|
- Friends/Squelch add/remove/appear-offline/clear wire sends (D1 — out
|
||||||
|
of campaign scope entirely, register row AD-79).
|
||||||
|
- The bot-vs-ACE two-session fellowship gate (FA6).
|
||||||
Loading…
Add table
Add a link
Reference in a new issue