Skip to content

Add navbar techstack selector (codex) - #2485

Merged
numnx merged 1 commit into
feature/CODUX-157-techstack-settings-quickactions-for-webapp-desktop-appfrom
task/feature-codux-157-techstack-settings-quickaction-t03-codex-mra5lsx5
Jul 7, 2026
Merged

Add navbar techstack selector (codex)#2485
numnx merged 1 commit into
feature/CODUX-157-techstack-settings-quickactions-for-webapp-desktop-appfrom
task/feature-codux-157-techstack-settings-quickaction-t03-codex-mra5lsx5

Conversation

@numnx

@numnx numnx commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

🧩 Task: Add navbar techstack selector

Automated task PR opened by Code UX for T03.

📋 Summary

Sprint: Sprint 157 · Techstack Settings + Quickactions for Webapp + Desktop App · Task: T03

Add a system-managed techstack catalog and project techstack selection, expose Settings and navbar controls, and add Create Web App/Create Desktop App quickactions that apply the selected/default techstack only to newly created projects while setup can detect techstacks for imported projects.

📝 Full Task Prompt
## Objective
Add a compact navbar selector that shows the active project techstack, lets operators switch it, and defaults display/actions to the built-in internal stack when no project stack is selected.

## Scope
- `dashboard/src/v2/components/TopNav.tsx`
- `dashboard/src/v2/hooks/use-project-effective-settings.ts`
- `dashboard/src/v2/lib/settings-api.ts`
- `dashboard/src/v2/lib/settings/techstack-view-models.ts` (new, if a shared view model helper is useful)
- `tests/dashboard/v2/top-nav-browser-menu.test.tsx` or a new `tests/dashboard/v2/top-nav-techstack.test.tsx`
- `docs/dashboard/dashboard-guide.md`
- `docs-web/user/dashboard/overview.md`

## Implementation Requirements
1. Derive the active techstack label from effective project settings plus the system catalog, returning the catalog default when `selectedTechstackId` is null for display-only quickaction fallback.
2. Render a navbar techstack selector near the project/sprint selectors when a project is selected, with `Unassigned`, built-in default, and custom catalog options.
3. Use existing dropdown/listbox patterns: `role="listbox"`, `role="option"`, `useDropdownKeyboard`, filter-safe focus handling, outside-click close, Escape close, and polite `aria-live` announcements.
4. Persist project selection by saving only the project techstack fields through existing settings API helpers; clear the effective settings cache for that project after save.
5. Keep the selector disabled with visible helper copy when no project is active or settings are still loading.
6. Add tests for selected label rendering, keyboard option selection, unassigned state, cache invalidation after save, and fallback label when the project has no selected techstack.
7. Document the navbar selector behavior and the unassigned imported-project state.

## Constraints
- Do not add Create Web App or Create Desktop App buttons in this task.
- Do not mutate the system techstack catalog from the navbar selector.
- Do not assign the built-in techstack to imported projects just because the selector displays the default fallback.
- Preserve existing project and sprint dropdown behavior and navbar wrapping on small viewports.

## Verification
- Run `pnpm exec vitest run tests/dashboard/v2/top-nav-techstack.test.tsx` if added, otherwise run the updated TopNav test file.
- Run `pnpm run test:dashboard` when TopNav shared behavior changes.
- Success means the navbar selector is keyboard accessible, announces changes, saves project techstack selection, and leaves unassigned projects unassigned until the operator chooses a stack.

✅ QA Review

⏳ QA review runs after this PR is opened. Check the task card in the dashboard for the outcome once it lands.

🤖 Model & Provider

Provider Codex CLI
Model gpt-5.5

⏱️ Timing

Started 2026-07-07 04:33:29 UTC
Finished 2026-07-07 04:43:32 UTC
Duration 10m 3s

📊 Token Usage

Metric Value
Input tokens 124,298
Cached input tokens 2,828,032
Output tokens 17,658
Total tokens 2,969,988
Invocations 1
Tool calls 55
Active time 9m 14s

Included usage estimate (subscription/local login): $2.57

🌿 Branch Info

Base: feature/CODUX-157-techstack-settings-quickactions-for-webapp-desktop-app
Head: task/feature-codux-157-techstack-settings-quickaction-t03-codex-mra5lsx5


🤖 Generated by Code UX

@numnx
numnx merged commit 9a3fea2 into feature/CODUX-157-techstack-settings-quickactions-for-webapp-desktop-app Jul 7, 2026
6 checks passed
@numnx
numnx deleted the task/feature-codux-157-techstack-settings-quickaction-t03-codex-mra5lsx5 branch July 7, 2026 04:45
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