Skip to content

Commit ba002eb

Browse files
committed
feat: improve status codex workspace and session surfaces
1 parent 35ff36f commit ba002eb

51 files changed

Lines changed: 6799 additions & 1791 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/gettokens-domain-engineering/SKILL.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,24 @@ This skill unifies the technical rules for building, styling, and debugging GetT
3737
- First move the page body into `features/<domain>/<Domain>Feature.tsx`
3838
- Then shrink the page file to a thin prop-forwarding wrapper
3939
- Then split feature internals into `components / hooks / model / tests`
40+
- **Refactor Cadence for Large Features**:
41+
- When a feature is already live and the file is too large, do not jump straight into many tiny components.
42+
- Preferred reduction order is:
43+
1. keep the page working and stabilize the page shell + bridge/data loop first
44+
2. extract heavy view blocks into a dedicated view file
45+
3. extract copy/text factories and pure constants/helpers
46+
4. extract focused mutation hooks such as modal/editor flows
47+
5. extract data-loading hooks such as `snapshot` / `detail`
48+
6. only then consider a final view-state hook for selectors and derived UI state
49+
- The goal is to turn the main `*Feature.tsx` into a page controller instead of a second catch-all file.
50+
- **Session Management Baseline**:
51+
- For Wails-backed workbench pages like `session-management`, the stable split target is:
52+
- `*Feature.tsx` -> page controller
53+
- `*View.tsx` -> business presentation blocks
54+
- `*Copy.ts` -> copy factory
55+
- `*Utils.ts` -> pure constants/helpers
56+
- `use*Snapshot` / `use*Detail` / `use*Mutation` -> focused async hooks
57+
- If the page also has browser-dev fallback data or dev bridge logic, keep that outside the controller and do not mix it back into JSX-heavy files.
4058
- **Current Baseline**:
4159
- `AccountsPage` -> `features/accounts/AccountsFeature.tsx`
4260
- `StatusPage` -> `features/status/StatusFeature.tsx`
@@ -50,6 +68,14 @@ This skill unifies the technical rules for building, styling, and debugging GetT
5068
- Relay key editing may be multi-value; preserve order, trim blanks, and deduplicate exact duplicates.
5169
- Relay endpoint previews should expose `localhost`, hostname, and LAN IP forms when available.
5270
- If relay config is meant for LAN clients, sidecar bind host must not be restricted to `127.0.0.1`.
71+
- “Apply to local Codex” is a local workbench flow, not a sidecar truth editor:
72+
- `provider / model / reasoning effort` are local Codex defaults for future sessions
73+
- provider options should merge the page-local options with existing `[model_providers.*]` read from `~/.codex/config.toml`
74+
- model options should prefer aggregated account-pool catalogs, and only fall back to `~/.codex/models_cache.json` when the aggregated result is empty
75+
- Writing local Codex config must be preservative:
76+
- `config.toml` uses minimal text patch updates for owned keys
77+
- `auth.json` uses field-level merge
78+
- do not rewrite the whole file and destroy user ordering, comments, or unknown fields
5379

5480
## 4. Quota Rules
5581
- **Path**: `AccountsPage` -> `GetCodexQuota` -> Wails -> `POST /v0/management/api-call`.
@@ -103,8 +129,10 @@ This skill unifies the technical rules for building, styling, and debugging GetT
103129
- **Tools**: Use `@linhey/react-debug-inspector` in `main.tsx` (dev-only).
104130
- **Config**: Use `createViteDebugInspectorPlugin()` in `vite.config.js` for stable JSX metadata.
105131
- **Workflow**: Prove handler -> bridge call -> backend response. Use `data-collaboration-id` for markers.
132+
- **Overlay Rule**: When a dropdown, listbox, or popover inside a card “has DOM but is not visible”, inspect the full ancestor `overflow` chain before touching `z-index`. In Status/Settings style panels, `overflow-hidden` on the owning card is the first suspect.
106133
- **Chart Layering Rule**: For charts that mix `svg` paths/areas with HTML point labels or hit targets, all layers must share the same width coordinate system. Do not let `svg` scale to container width while HTML points still use the original logical width.
107134
- **Chart Verification Rule**: For visual fixes in `UsageDesk` or similar chart-heavy surfaces, static code reasoning is not sufficient. Re-open the real page, switch the relevant time ranges, and keep traceable screenshots under the owning `space/screenshots/` directory before claiming the fix is live.
135+
- **Status Surface Verification Rule**: For browser-checkable Wails surfaces such as `#frame=status` or `#frame=session-management`, use `bb-browser` to verify the real rendered interaction and keep acceptance screenshots under `docs-linhay/screenshots/<date>/<module>/` when the fix is visual or interaction-sensitive.
108136

109137
## 8. CLIProxyAPI Fork Maintenance
110138
- **Remotes**: `origin` (AxApp), `linhay` (legacy fork backup), `upstream` (router-for-me).

0 commit comments

Comments
 (0)