fix(codex): make controls and usage easier to navigate #5

Merged
eleith merged 2 commits from feat/codex-ux into main 2026-11-02 02:50:30 +00:00

Status

Ready for fresh owner UX smoke and landing. No further commits are currently planned in this PR. Release preparation remains separate and parked: no version bump, tag, publication, or personal installation change. No manual npm release yet.

Command surface

/eleith:codex
/eleith:codex context [on|off|toggle]
/eleith:codex fast [on|off|toggle]
/eleith:codex usage
  • Bare root, bare context, and bare fast show exactly the same local dashboard, without quota/catalog requests or authentication resolution.
  • Context on uses the larger local window, off restores the catalog baseline, and toggle flips the saved branch preference. Existing reduction confirmation, selection/interference guards, and historical eleith-context replay remain intact.
  • Fast controls expose only on, off, and toggle, retaining higher-consumption confirmation and the existing direct official legacy Codex scope. Historical inherit entries still replay; removing the reset command does not migrate persisted state.
  • Removed root extend/restore and fast status/reset commands, technical diagnostics, and their orphaned requested-tier bookkeeping. Next-request policy, observed response tiers, and conflicts remain distinct.
  • Descriptive native completions cover both control groups. Type context o or fast o for on/off suggestions. No promise that empty-prefix Tab opens argument suggestions: real native editor/provider regressions cover the file-completion gate and whole-argument replacement.

Usage and dashboard UX

  • Context occupancy uses Pi's effective usage window. A differing selected local window is labeled separately, including routed/virtual selections; fast support scope is unchanged.
  • Fast labels distinguish provider default, standard requested, priority requested, paused, and unavailable. Reported standard is not presented as confirmed priority processing.
  • Usage leads with remaining allowance, uses advertised window durations, displays local reset dates/time zones and relative intervals, surfaces restrictions before healthy quotas, and consolidates unavailable data without inventing allowance.
  • TUI usage displays native BorderedLoader in an owned overlay with “Fetching Codex usage…” and Escape cancellation. Completion/errors close it before final notification; cancellation, supersession, model/tree changes, disposal, and shutdown abort and close only that operation. Late replies cannot touch expired contexts or dismiss newer UI.
  • RPC/print/JSON use progress notifications instead of terminal custom UI. No background quota polling or extension-owned animation loop.

Review corrections

  • Owned overlays avoid Pi 1.3's unconditional non-overlay editor/focus restoration, which could otherwise dismiss a newer extension dialog during a streaming run. The approach remains compatible with Pi 1.4's dialog stack.
  • A single narrowly scoped custom-interaction fake is shared by unit and SDK usage tests. Shared editor/overlay regressions exercise newer-dialog survival; early-completion regressions verify old animation stops before manual cleanup while a replacement loader continues.
  • Cancellation no longer requires a surviving context. Lifecycle helpers describe their separate request, cancellation, loader, and completion responsibilities; overlay focus repair is separate from completion.
  • Context scenarios precede fixture plumbing. Existing confirmation, branch replay, provider/auth, cache TTL, payload conflict, and response-tier invariants remain covered.

Verification

  • Fresh integrated code, readability, and regression-test reviews: clear, including final correction reviews.
  • 1,309 repository tests / 73 files passed. Native Codex SSE and WebSocket SDK serialization coverage remains intact.
  • All extension builds, lint, typecheck, formatting, whitespace, and Changesets status passed.
  • Initial typecheck found a test-helper mock annotation that permitted a constructable rather than callable mock. Explicit callable annotations fixed it; the delta was reviewed and every gate rerun successfully.
  • Pending minor codex-controls plus patch codex-ux still plan 0.2.0 from source version 0.1.1. No versioning has been applied.

Temporary owner smoke

Use the fresh built bundle, not the older cached/unpacked 0.2.0 tarball:

pi --no-session --no-extensions \
  --model openai-codex/gpt-6-sol \
  -e ./extensions/codex/dist/index.js

Compare the three bare forms; try context and fast on/off/toggle, typed-prefix completions, and usage success/Escape cancellation. Context reduction and enabling fast can require confirmation. Only usage contacts the quota endpoint; enabling/preparing fast can contact the catalog, while bare dashboards remain local. This is temporary loading, not installation or publication. The latest revision has not yet received the owner's manual terminal smoke.

Scope and next step

No new login, credential-file reads, token persistence, provider replacement, accounting adjustment, dependency, README rewrite, duplicate-install safeguard, or expanded fast-provider scope. Physical request provenance, live catalog/scheduling behavior, and registry publication permissions are not established by these offline checks.

After owner smoke and landing, regenerate release preparation from both pending Changesets rather than blindly applying the earlier stashed versioning diff. Release preparation and separately authorized publication remain later work.

## Status Ready for fresh owner UX smoke and landing. **No further commits are currently planned in this PR.** Release preparation remains separate and parked: no version bump, tag, publication, or personal installation change. No manual npm release yet. ## Command surface ```text /eleith:codex /eleith:codex context [on|off|toggle] /eleith:codex fast [on|off|toggle] /eleith:codex usage ``` - Bare root, bare `context`, and bare `fast` show exactly the same local dashboard, without quota/catalog requests or authentication resolution. - Context `on` uses the larger local window, `off` restores the catalog baseline, and `toggle` flips the saved branch preference. Existing reduction confirmation, selection/interference guards, and historical `eleith-context` replay remain intact. - Fast controls expose only `on`, `off`, and `toggle`, retaining higher-consumption confirmation and the existing direct official legacy Codex scope. Historical `inherit` entries still replay; removing the reset command does not migrate persisted state. - Removed root `extend`/`restore` and fast `status`/`reset` commands, technical diagnostics, and their orphaned requested-tier bookkeeping. Next-request policy, observed response tiers, and conflicts remain distinct. - Descriptive native completions cover both control groups. Type `context o` or `fast o` for on/off suggestions. No promise that empty-prefix Tab opens argument suggestions: real native editor/provider regressions cover the file-completion gate and whole-argument replacement. ## Usage and dashboard UX - Context occupancy uses Pi's effective usage window. A differing selected local window is labeled separately, including routed/virtual selections; fast support scope is unchanged. - Fast labels distinguish provider default, standard requested, priority requested, paused, and unavailable. Reported standard is not presented as confirmed priority processing. - Usage leads with remaining allowance, uses advertised window durations, displays local reset dates/time zones and relative intervals, surfaces restrictions before healthy quotas, and consolidates unavailable data without inventing allowance. - TUI usage displays native `BorderedLoader` in an owned overlay with “Fetching Codex usage…” and Escape cancellation. Completion/errors close it before final notification; cancellation, supersession, model/tree changes, disposal, and shutdown abort and close only that operation. Late replies cannot touch expired contexts or dismiss newer UI. - RPC/print/JSON use progress notifications instead of terminal custom UI. No background quota polling or extension-owned animation loop. ## Review corrections - Owned overlays avoid Pi 1.3's unconditional non-overlay editor/focus restoration, which could otherwise dismiss a newer extension dialog during a streaming run. The approach remains compatible with Pi 1.4's dialog stack. - A single narrowly scoped custom-interaction fake is shared by unit and SDK usage tests. Shared editor/overlay regressions exercise newer-dialog survival; early-completion regressions verify old animation stops before manual cleanup while a replacement loader continues. - Cancellation no longer requires a surviving context. Lifecycle helpers describe their separate request, cancellation, loader, and completion responsibilities; overlay focus repair is separate from completion. - Context scenarios precede fixture plumbing. Existing confirmation, branch replay, provider/auth, cache TTL, payload conflict, and response-tier invariants remain covered. ## Verification - Fresh integrated code, readability, and regression-test reviews: **clear**, including final correction reviews. - **1,309 repository tests / 73 files passed.** Native Codex SSE and WebSocket SDK serialization coverage remains intact. - All extension builds, lint, typecheck, formatting, whitespace, and Changesets status passed. - Initial typecheck found a test-helper mock annotation that permitted a constructable rather than callable mock. Explicit callable annotations fixed it; the delta was reviewed and every gate rerun successfully. - Pending minor `codex-controls` plus patch `codex-ux` still plan **0.2.0** from source version **0.1.1**. No versioning has been applied. ## Temporary owner smoke Use the fresh built bundle, **not the older cached/unpacked 0.2.0 tarball**: ```sh pi --no-session --no-extensions \ --model openai-codex/gpt-6-sol \ -e ./extensions/codex/dist/index.js ``` Compare the three bare forms; try context and fast on/off/toggle, typed-prefix completions, and usage success/Escape cancellation. Context reduction and enabling fast can require confirmation. Only usage contacts the quota endpoint; enabling/preparing fast can contact the catalog, while bare dashboards remain local. This is temporary loading, not installation or publication. The latest revision has not yet received the owner's manual terminal smoke. ## Scope and next step No new login, credential-file reads, token persistence, provider replacement, accounting adjustment, dependency, README rewrite, duplicate-install safeguard, or expanded fast-provider scope. Physical request provenance, live catalog/scheduling behavior, and registry publication permissions are not established by these offline checks. After owner smoke and landing, regenerate release preparation from both pending Changesets rather than blindly applying the earlier stashed versioning diff. Release preparation and separately authorized publication remain later work.
eleith-gitea-agent Bot added 1 commit 2026-11-01 19:03:31 +00:00
fix(codex): make controls and usage easier to navigate
ci/woodpecker/pr/codex Pipeline was successful
ci/woodpecker/pr/compact-editor-chrome Pipeline was successful
ci/woodpecker/pr/notifications Pipeline was successful
ci/woodpecker/pr/progress Pipeline was successful
ci/woodpecker/pr/title-status Pipeline was successful
ci/woodpecker/pr/tool-rendering Pipeline was successful
ci/woodpecker/pr/web-fetch Pipeline was successful
ci/woodpecker/pr/web-search-codex Pipeline was successful
ci/woodpecker/pr/welcome Pipeline was successful
4b19b7d6ee
eleith added 1 commit 2026-11-02 02:18:32 +00:00
fix(codex): simplify controls and make usage loading visible
ci/woodpecker/pr/codex Pipeline was successful
ci/woodpecker/pr/compact-editor-chrome Pipeline was successful
ci/woodpecker/pr/notifications Pipeline was successful
ci/woodpecker/pr/progress Pipeline was successful
ci/woodpecker/pr/title-status Pipeline was successful
ci/woodpecker/pr/tool-rendering Pipeline was successful
ci/woodpecker/pr/web-fetch Pipeline was successful
ci/woodpecker/pr/web-search-codex Pipeline was successful
ci/woodpecker/pr/welcome Pipeline was successful
ci/woodpecker/push/codex Pipeline was successful
ci/woodpecker/push/compact-editor-chrome Pipeline was successful
ci/woodpecker/push/notifications Pipeline was successful
ci/woodpecker/push/progress Pipeline was successful
ci/woodpecker/push/title-status Pipeline was successful
ci/woodpecker/push/tool-rendering Pipeline was successful
ci/woodpecker/push/web-fetch Pipeline was successful
ci/woodpecker/push/web-search-codex Pipeline was successful
ci/woodpecker/push/welcome Pipeline was successful
3f059ea887
Mirror context and fast on/off/toggle controls and share a local dashboard across all bare forms. Replace footer progress with an owned native cancellable loader, preserving non-TUI notifications and historical branch replay.

Add shared-UI ownership and early-completion regressions, remove orphaned diagnostics tracking, and keep context scenarios ahead of fixture plumbing.
eleith merged commit 3f059ea887 into main 2026-11-02 02:50:30 +00:00
eleith deleted branch feat/codex-ux 2026-11-02 02:50:30 +00:00
Sign in to join this conversation.