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
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