> 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/phases/phase_23/session_05_quest_board_camp_focus.md).

# Session 05: Quest Board Camp Focus

**Session ID**: `phase23-session05-quest-board-camp-focus` **Package**: apps/web **Status**: Not Started **Estimated Tasks**: \~18 **Estimated Duration**: 2-4 hours

***

## Objective

Connect camp inspection and Banish to real Quest Board issue cards and existing dismissal actions.

***

## Scope

### In Scope (MVP)

* Add camp focus or filter state in the web store or Quest Board surface.
* Open the focused Quest Board surface from camp inspection.
* Filter or emphasize cards whose dismissable issue id is in the active camp.
* Implement Banish through the existing issue dismiss path for current camp issue ids.
* Add Quest Board or action tests for filter, clear, Banish success, failure, and partial-failure paths.

### Out of Scope

* New server routes.
* New protocol events.
* Progress rewards, XP, loot, banners, achievements, camp kill credit, or combat playback.
* Target-flag planting, class advantage, mission linking, or focus-battle dimming.

***

## Detailed Requirements

* Camp inspection is honest:
  * Clicking a camp opens the Quest Board with that camp's `issueIds` filtered or emphasized.
  * Keyboard activation must support the same inspection path.
  * The player can inspect the real titles, messages, file labels, and dismiss actions for those issues.
  * If an issue id is no longer present, the next snapshot reconciles the camp.
* Add a camp filter state in the web store or Quest Board surface:
  * active `campId`
  * active `issueIds`
  * clear action
* Camp inspection opens the focused Quest Board surface and filters or highlights cards whose `dismissIssue.issueId` is in the active camp.
* The empty filtered state must say that the camp is already reconciled or its issues are no longer present.
* Banish is dry dismissal:
  * Banish uses the existing issue dismiss endpoint/path for the camp's current `issueIds`.
  * Do not add a new server route for Banish in this phase.
  * The visual effect is intentionally minimal: no victory burst, no loot, no banner, no reward language.
  * Banish gives no progress, XP, loot, banners, achievements, or camp kill credit.
  * Successful dismissals wait for normal Quest Board snapshot reconciliation before removing the camp from persisted projection.
  * Failed dismissals keep the camp visible and show the existing action failure copy.
  * Partial failures leave remaining issues visible and report normal Quest Board action errors.
* Quest acceptance and hero assignment remain existing Quest Board behavior.
* This phase does not add target-flag planting, class-advantage flair, mission linking, or combat playback when a quest is accepted.
* A future focus-battle affordance may dim other fights when a camp is clicked; this phase only opens, filters, or highlights the real issue set.
* Camp inspection may show richer issue details because Quest Board already owns those cards; projection state must not copy those details.

***

## Required Tests

* Existing Quest Board tests should cover filtered camp cards and Banish failure handling if the filter/action logic lands outside `Battlefield.test.tsx`.
* Quest Board or action tests should cover:
  * camp focus/filter state
  * clear behavior
  * filtered issue cards
  * empty filtered state for reconciled or missing issues
  * Banish calling the existing dismiss path for current issue ids
  * Banish success waiting for normal snapshot reconciliation
  * Banish failure and partial-failure handling
  * no reward or game-progress side effects

***

## Prerequisites

* [ ] Session 03 projection camps expose current camp issue ids.
* [ ] Existing Quest Board issue cards and dismiss actions remain available.

***

## Deliverables

1. Quest Board camp focus/filter state and UI behavior.
2. Existing-action Banish plumbing.
3. Tests covering filtered issue inspection and dismissal edge cases.

***

## Dependencies / Notes

* Depends on Session 03 camp `issueIds` being available from projection.
* New routes, new protocol events, progress rewards, and future focus-battle dimming are out of scope.

***

## Success Criteria

* [ ] Clicking or keyboard-activating a camp opens the real issue set that created it.
* [ ] Banish dismisses current issue ids through existing Quest Board actions and gives no game reward.
* [ ] Missing or reconciled issue ids produce a clear empty state rather than fake progress.
* [ ] Partial dismissal failures leave remaining issues visible and report normal action errors.


---

# 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/phases/phase_23/session_05_quest_board_camp_focus.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.
