Skip to content

fix(web): avoid archive breadcrumb route race - #45

Merged
lastobelus merged 1 commit into
lastcode/mainfrom
port/upstream/pr-7282-archive-route-race
Aug 19, 2026
Merged

fix(web): avoid archive breadcrumb route race#45
lastobelus merged 1 commit into
lastcode/mainfrom
port/upstream/pr-7282-archive-route-race

Conversation

@lastobelus

Copy link
Copy Markdown
Owner

Problem

The project-scoped Archive breadcrumb adopted in #31 can read /settings/archived search state while navigation to that route is still pending. At that instant the browser location already names Archive but the route match does not exist yet, so strict route search lookup can fail instead of rendering a safe interim breadcrumb.

Source provenance

Import

The new one-commit delta was derived from the pinned Git graph and cherry-picked with -x onto exact LastCode base 7f9f0ecf7d5cd7865f9453a819390d2852890369.

It applied without textual conflicts or LastCode-specific adaptations. The source and port both have stable patch ID 802299eab4778fd2608662714563aceefacf73eb.

The fix performs a non-throwing archive-route search lookup before selecting the Archive-specific breadcrumb. While the route is pending it renders the ordinary Settings breadcrumb; once matched it renders the selected Archive project. The new tests cover both a deliberately paused navigation and a direct selected-project deep link.

Validation

  • dependency installation completed with vp i
  • Node 24.13.1; pnpm 11.10.0
  • 9/9 focused Archive tests passed across SettingsBreadcrumb.test.tsx and archiveProjectFiltering.test.ts
  • targeted formatter and linter checks passed for both changed files
  • web package typecheck passed
  • committed-range git diff --check passed
  • the guarded push's lastcode:ci:quick hook passed formatting, workspace typechecks, and every workspace test group

This timing fix does not change the settled Archive UI, so the final-state evidence from #31 remains representative. The pending-route regression is deterministic in the focused router test rather than dependent on recording a transient frame.

Implemented by GPT-5.6-sol through the Codex harness.

@lastobelus

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 7aae752121

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lastobelus
lastobelus merged commit c49e8b7 into lastcode/main Aug 19, 2026
@lastobelus
lastobelus deleted the port/upstream/pr-7282-archive-route-race branch August 19, 2026 10:12
lastobelus added a commit that referenced this pull request Aug 22, 2026
## Problem

The project-scoped Archive breadcrumb adopted in #31 can read
`/settings/archived` search state while navigation to that route is
still pending. At that instant the browser location already names
Archive but the route match does not exist yet, so strict route search
lookup can fail instead of rendering a safe interim breadcrumb.

## Source provenance

- Upstream PR: pingdotgg#7282
(`feat(web): filter archived threads by project`)
- New upstream commit:
pingdotgg@a5bed62
- Author: Michael Johnston (`lastobelus`)
- Observed August 19, 2026 (America/Vancouver): upstream PR open and
unmerged; head `a5bed62d299e343646f0a6272d936b875df55cb9`; mergeable but
blocked by upstream policy/review state
- Pinned upstream base: `949feb61e4bfd96669ba0e8cf3dca7c6d7f885b3`
- Prior LastCode adoption: #31 pinned the earlier upstream head
`535a7b11358d8f0b4b302e4261b769dbafffc643`
- Linked request: pingdotgg#6780
- Upstream context: all 13 review threads remain resolved; the
current-head bot checks are terminal and acceptable, but are supporting
evidence only

## Import

The new one-commit delta was derived from the pinned Git graph and
cherry-picked with `-x` onto exact LastCode base
`7f9f0ecf7d5cd7865f9453a819390d2852890369`.

It applied without textual conflicts or LastCode-specific adaptations.
The source and port both have stable patch ID
`802299eab4778fd2608662714563aceefacf73eb`.

The fix performs a non-throwing archive-route search lookup before
selecting the Archive-specific breadcrumb. While the route is pending it
renders the ordinary Settings breadcrumb; once matched it renders the
selected Archive project. The new tests cover both a deliberately paused
navigation and a direct selected-project deep link.

## Validation

- dependency installation completed with `vp i`
- Node `24.13.1`; pnpm `11.10.0`
- 9/9 focused Archive tests passed across `SettingsBreadcrumb.test.tsx`
and `archiveProjectFiltering.test.ts`
- targeted formatter and linter checks passed for both changed files
- web package typecheck passed
- committed-range `git diff --check` passed
- the guarded push's `lastcode:ci:quick` hook passed formatting,
workspace typechecks, and every workspace test group

This timing fix does not change the settled Archive UI, so the
final-state evidence from #31 remains representative. The pending-route
regression is deterministic in the focused router test rather than
dependent on recording a transient frame.

Implemented by GPT-5.6-sol through the Codex harness.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant