paperclip/ui/src
Dotta d95968a9f8
[codex] Ignore stale stored company selections (#4602)
## Thinking Path

> - Paperclip orchestrates AI agents for zero-human companies
> - The board UI is the operator’s control surface for selecting the
active company
> - A company id stored in localStorage can become stale across resets,
imports, or deleted companies
> - Exposing that stale id before companies load can briefly put
downstream UI in an invalid company scope
> - This pull request defers selected-company exposure until the loaded
company list validates the stored id
> - The benefit is a cleaner company-selection bootstrap path and fewer
transient invalid API requests

## What Changed

- Initialized `CompanyProvider` selection as `null` until companies
finish loading.
- Reused a stored company id only when it exists in the loaded
selectable company list.
- Cleared storage and selected state when no companies are available.
- Added jsdom regression coverage for stale stored ids before and after
company loading.

## Verification

- `pnpm exec vitest run --project @paperclipai/ui
ui/src/context/CompanyContext.test.tsx`

## Risks

- Low risk. The change only affects selection bootstrap and keeps valid
stored selections intact.
- There may be a slightly longer initial `null` selected-company state
while the company list is loading.

> For core feature work, check [`ROADMAP.md`](ROADMAP.md) first and
discuss it in `#dev` before opening the PR. Feature PRs that overlap
with planned core work may need to be redirected — check the roadmap
first. See `CONTRIBUTING.md`.

## Model Used

- OpenAI Codex, GPT-5 coding agent, tool-enabled terminal/GitHub
workflow, reasoning mode active. Context window not exposed in this
environment.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] If this change affects the UI, I have included before/after
screenshots
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-04-27 13:18:21 -05:00
..
adapters [codex] Stabilize tests and local maintenance assets (#4423) 2026-04-24 15:11:42 -05:00
api [codex] Add configurable liveness auto-recovery controls (#4587) 2026-04-27 08:46:44 -05:00
components [codex] Fix sub-issue progress summary styling (#4588) 2026-04-27 08:48:26 -05:00
context [codex] Ignore stale stored company selections (#4602) 2026-04-27 13:18:21 -05:00
fixtures [codex] Add structured issue-thread interactions (#4244) 2026-04-21 20:15:11 -05:00
hooks [codex] Improve agent runtime recovery and governance (#4086) 2026-04-20 06:19:48 -05:00
lib [codex] Fix sub-issue progress summary styling (#4588) 2026-04-27 08:48:26 -05:00
pages [codex] Add configurable liveness auto-recovery controls (#4587) 2026-04-27 08:46:44 -05:00
plugins [codex] Harden execution reliability and heartbeat tooling (#3679) 2026-04-14 13:34:52 -05:00
App.test.tsx feat: implement multi-user access and invite flows (#3784) 2026-04-17 09:44:19 -05:00
App.tsx [codex] Add runtime lifecycle recovery and live issue visibility (#4419) 2026-04-24 15:50:32 -05:00
index.css [codex] Refine markdown issue reference rendering (#4382) 2026-04-24 09:39:21 -05:00
main.tsx Add skill slash-command autocomplete 2026-04-04 17:48:54 -05:00
vite-env.d.ts Add feedback voting and thumbs capture flow 2026-04-02 09:11:49 -05:00