> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase21-session05-quest-board-and-war-room-parity/tasks.md).

# Task Checklist

**Session ID**: `phase21-session05-quest-board-and-war-room-parity` **Total Tasks**: 21 **Estimated Duration**: 3-4 hours **Created**: 2026-06-29

***

## Progress Summary

| Metric              | Value     |
| ------------------- | --------- |
| Tasks Completed     | 21 / 21   |
| Estimated Remaining | 0 minutes |
| Blockers            | 0         |

***

Legend: `[x]` completed; `[ ]` pending; `[P]` parallelizable; `[SNNMM]` session ref; `TNNN` task ID.

***

## Setup (3 tasks)

* [x] T001 \[S2105] Verify analyzer-selected Session 05 scope, Session 04 completion evidence, and the PRD stub conflict resolution (`.spec_system/PRD/phase_21/session_05_quest_board_and_war_room_parity.md`, `.spec_system/specs/phase21-session04-shortcut-and-overlay-layering/validation.md`)
* [x] T002 \[S2105] \[P] Audit Quest Board header, detail summary, local draft, card actions, and current tests (`apps/web/src/components/QuestBoard.tsx`, `apps/web/tests/QuestBoard.test.tsx`)
* [x] T003 \[S2105] \[P] Audit War Room header, detail summary, room controls, store-backed local state, and current tests (`apps/web/src/components/WarRoomPanel.tsx`, `apps/web/tests/WarRoomPanel.test.tsx`)

***

## Foundation (5 tasks)

* [x] T004 \[S2105] Add Quest Board and War Room state-summary overlay layer constants, ranks, and z-index classes (`apps/web/src/lib/overlayLayers.ts`)
* [x] T005 \[S2105] Refactor the Quest Board header so noninteractive header space is the primary focused-surface opener and the retained summary button is secondary with platform-appropriate accessibility labels, focus management, and input support (`apps/web/src/components/QuestBoard.tsx`)
* [x] T006 \[S2105] Mark the Quest Board secondary summary portal as a higher overlay layer and close it on Escape only when it is topmost with cleanup on scope exit for all acquired listeners (`apps/web/src/components/QuestBoard.tsx`)
* [x] T007 \[S2105] Refactor the War Room header so noninteractive header space is the primary focused-surface opener and the retained summary button is secondary with platform-appropriate accessibility labels, focus management, and input support (`apps/web/src/components/WarRoomPanel.tsx`)
* [x] T008 \[S2105] Mark the War Room secondary summary portal as a higher overlay layer and close it on Escape only when it is topmost with cleanup on scope exit for all acquired listeners (`apps/web/src/components/WarRoomPanel.tsx`)

***

## Implementation (3 tasks)

* [x] T009 \[S2105] Update Quest Board secondary summary copy, ARIA labels, close labels, and detail text so it is not the primary focused-work path and still shows reply draft, feedback, status, and card summaries (`apps/web/src/components/QuestBoard.tsx`)
* [x] T010 \[S2105] Update War Room secondary summary copy, ARIA labels, close labels, and detail text so it is not the primary focused-work path and still shows room hints, diagnostics, federation, participants, notices, and erasure summaries (`apps/web/src/components/WarRoomPanel.tsx`)
* [x] T011 \[S2105] Preserve existing Quest Board and War Room action controls as native guarded descendants so state-mutating actions keep duplicate-trigger prevention while in-flight and focused expansion does not steal their clicks (`apps/web/src/components/QuestBoard.tsx`, `apps/web/src/components/WarRoomPanel.tsx`)

***

## Testing (10 tasks)

* [x] T012 \[S2105] Update Quest Board detail tests for secondary state-summary labels, modal content, portal placement, overlay marker, Escape, backdrop, and close-button dismissal (`apps/web/tests/QuestBoard.test.tsx`)
* [x] T013 \[S2105] Add Quest Board focused-surface shell regression for host-button open, header/background open, single mounted panel instance, reply draft preservation, and action feedback preservation across close/reopen (`apps/web/tests/CockpitShell.test.tsx`)
* [x] T014 \[S2105] Add Quest Board nested-control regressions proving scan, accept, dismiss, assign, select, and reply controls keep their original actions without accidentally changing `expandedBottomRailSurfaceId` (`apps/web/tests/QuestBoard.test.tsx`, `apps/web/tests/CockpitShell.test.tsx`)
* [x] T015 \[S2105] Update War Room detail tests for secondary state-summary labels, modal content, portal placement, overlay marker, Escape, backdrop, close-button dismissal, and no store action mutation on summary open (`apps/web/tests/WarRoomPanel.test.tsx`)
* [x] T016 \[S2105] Add War Room focused-surface shell regression for host-button open, header/background open, single mounted panel instance, worker URL, room code, notice draft, and erasure state preservation across close/reopen (`apps/web/tests/CockpitShell.test.tsx`)
* [x] T017 \[S2105] Add War Room nested-control regressions proving save, create, join, approval, notice, diagnostics, and erasure controls keep their original actions without accidentally changing `expandedBottomRailSurfaceId` (`apps/web/tests/WarRoomPanel.test.tsx`, `apps/web/tests/CockpitShell.test.tsx`)
* [x] T018 \[S2105] Add nested Escape regressions proving Quest Board and War Room secondary summaries close before their parent focused bottom-rail surface (`apps/web/tests/CockpitShell.test.tsx`)
* [x] T019 \[S2105] Run focused automated panel and host checks (`npm test -- apps/web/tests/CockpitShell.test.tsx apps/web/tests/QuestBoard.test.tsx apps/web/tests/WarRoomPanel.test.tsx apps/web/tests/BottomRailExpansionHost.test.tsx`)
* [x] T020 \[S2105] Run the web package typecheck (`npm run typecheck --workspace @factionos/web`)
* [x] T021 \[S2105] Validate ASCII, LF, and whitespace safety for changed files (`git diff --check`)

***

## Completion Checklist

* [x] All tasks marked `[x]`
* [x] All tests and checks passing
* [x] All files ASCII-encoded with LF line endings
* [x] implementation-notes.md updated
* [x] Ready for `implement` to start the implement -> creview -> validate sequence

***

## Next Steps

Run the `implement` workflow step.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://faction-os.gitbook.io/faction-os-docs/.spec_system/archive/sessions/phase21-session05-quest-board-and-war-room-parity/tasks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
