feat(web): add repo tab strip, move nav into shell - #26
Merged
Conversation
Topbar belongs to the window now: it carries the open-repo strip, switcher and account. The page tree for the current scope moved into the shell (`ShellNav`), so org pages keep their nav on mobile where the footer is the tab strip. Tabs persist to localStorage, keyed off the matched /$org/$repo route rather than the pathname so /$org/home and /admin/* can't open one. Each tab remembers its own last page. - drop OrgSubnav, folded into ShellNav - MobileFooter is now just the tab strip - org Settings link stays on the current page instead of bouncing to /$org/home - dark --surface-1 #171717 -> #1f1f21
The re-run scope hangs off repo.org_id, which only gets set when an install is claimed. The fixture predates claims and synced its repos with the 4-arg call, so org_id stayed null, the scope block in loadRunView was skipped and repoName came back null. Claiming the install exercises that block for the first time, which surfaced a second problem: apps/web dynamically imports drizzle-orm in ~14 server modules without declaring it. Bundled builds resolve it through the root, bun test does not. Declared it. - test seeds an org + organization_installations claim, syncs with the resolved org id - user-1 stays a non-member, so the session view surfaces the scope and still refuses the re-run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
the topbar belongs to the window now — open-repo strip, switcher,
account. the page tree for whatever scope the url is in moved down
into the page shell (
ShellNav), so org pages carry their nav onevery breakpoint, mobile included, where the footer is the strip.
tabs
tripwire.repo-tabs.v2)/$org/$reporoute, not the pathname, so/$org/homeand/admin/*can never open onereturns you there
links, palette, pasted urls and back all land the same tab
state is a pure reducer with unit tests. no stored "active tab":
the url is the scope (§8), so the active one is whatever the route
resolves to.
also
OrgSubnavdropped, folded intoShellNavMobileFooteris now just the stripto
/$org/home--surface-1#171717->#1f1f21checks
biome, typecheck, boundaries all pass. tabs suite 11/11.
full
bun testhas 21 integration failures locally — allcreateTestDatabaseunable to reach the docker daemon, nonerelated to this diff. ci will settle those.
follow-ups (not blocking)
parseStoredRepoTabsdoesn't dedupe by id