Repository navigation
Add directory commands, simplify Pace and fix terminal web links - #81
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Valid editor input can exceed the encoded command cap, and titled Markdown links do not follow the documented rendering behavior.
3 open findings
What changed in this PR
Adds directory commands, consolidates quota graphs under Pace, improves terminal links/history navigation, and documents slash-command coverage.
Changes:
- Adds confirmed
/cdplus read-only/cwdand/pwd. - Renames Zone to Pace with preference and URL migration.
- Adds safe terminal hyperlinks, macOS opening, and Option-arrow history navigation.
| File | Description |
|---|---|
web/tests/browser.spec.ts |
Expands browser regressions. |
web/src/SessionCommands.svelte |
Generalizes command input for directories. |
web/src/Quota.svelte |
Consolidates quota graph routing. |
web/src/preferences.svelte.ts |
Migrates legacy graph preferences. |
web/src/ConsumptionPace.svelte |
Retains former Zone visualization. |
README.md |
Documents new behavior. |
internal/web/dist/index.html |
References rebuilt assets. |
internal/web/dist/assets/index-ED7GoxW0.css |
Adds rebuilt stylesheet. |
internal/web/dist/assets/index-4j3sNB-h.css |
Removes previous stylesheet. |
internal/web/dist/assets/index-KFu7j0xL.js |
Adds rebuilt frontend bundle. |
internal/web/dist/assets/index-LUN8vjss.js |
Removes previous frontend bundle. |
internal/web/control_commands.go |
Reports directory-change success. |
internal/web/control_commands_test.go |
Tests confirmed directory changes. |
internal/ui/view.go |
Displays link-opening failures. |
internal/ui/view_test.go |
Updates view coverage. |
internal/ui/theme.go |
Removes the Zone view ID. |
internal/ui/tabs.go |
Removes the Zone tab. |
internal/ui/tabs_test.go |
Updates tab expectations. |
internal/ui/session_links.go |
Implements terminal web links. |
internal/ui/session_links_test.go |
Tests link rendering and safety. |
internal/ui/session_links_other.go |
Disables app opening off macOS. |
internal/ui/session_links_darwin.go |
Adds macOS URL opening. |
internal/ui/session_links_darwin_test.go |
Tests macOS opening scope. |
internal/ui/quota_graph.go |
Retains one Pace graph. |
internal/ui/quota_graph_test.go |
Updates graph regressions. |
internal/ui/preferences.go |
Migrates saved Zone selections. |
internal/ui/monitor_working.go |
Links working-session prose. |
internal/ui/monitor_history.go |
Adds links and macOS history keys. |
internal/ui/monitor_history_test.go |
Tests history key encodings. |
internal/ui/monitor_detail.go |
Links full-detail prose. |
internal/ui/monitor_context.go |
Links session previews. |
internal/ui/monitor_context_modes.go |
Links expanded contexts. |
internal/ui/monitor_commands.go |
Adds directory command editing. |
internal/ui/monitor_commands_test.go |
Tests directory review flow. |
internal/ui/model.go |
Handles link clicks and failures. |
internal/ui/meters.go |
Removes Zone rendering paths. |
internal/ui/meters_test.go |
Updates meter-view coverage. |
internal/ui/english_snapshot_test.go |
Refreshes presentation snapshot. |
internal/quotagraph/graph.go |
Removes transformed Pace segments. |
internal/quotagraph/graph_test.go |
Updates segment tests. |
internal/i18n/locales/zh-Hans.json |
Translates link-opening failure. |
internal/i18n/locales/tr.json |
Translates link-opening failure. |
internal/i18n/locales/sv.json |
Translates link-opening failure. |
internal/i18n/locales/ru.json |
Translates link-opening failure. |
internal/i18n/locales/pt-PT.json |
Translates link-opening failure. |
internal/i18n/locales/pt-BR.json |
Translates link-opening failure. |
internal/i18n/locales/nl.json |
Translates link-opening failure. |
internal/i18n/locales/nb.json |
Translates link-opening failure. |
internal/i18n/locales/ja.json |
Translates link-opening failure. |
internal/i18n/locales/it.json |
Translates link-opening failure. |
internal/i18n/locales/fr.json |
Translates link-opening failure. |
internal/i18n/locales/fi.json |
Translates link-opening failure. |
internal/i18n/locales/et.json |
Translates link-opening failure. |
internal/i18n/locales/es.json |
Translates link-opening failure. |
internal/i18n/locales/en-GB.json |
Adds canonical failure text. |
internal/i18n/locales/de.json |
Translates link-opening failure. |
internal/i18n/locales/da.json |
Translates link-opening failure. |
internal/codex/session_settings_unix_test.go |
Extends daemon directory fixtures. |
internal/codex/session_directory_unix.go |
Implements directory commands. |
internal/codex/session_directory_unix_test.go |
Covers directory validation and telemetry. |
internal/codex/session_commands.go |
Adds input metadata fields. |
internal/codex/session_commands_unix.go |
Registers and executes directory commands. |
internal/codex/live_usage.go |
Applies live working directories. |
internal/codex/live_usage_test.go |
Tests runtime directory fallback. |
internal/codex/daemon_status.go |
Adds directory snapshot data. |
internal/codex/daemon_status_unix.go |
Tracks runtime directories. |
docs/slash-command-support.md |
Adds the command-support audit. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.


Codexometer did not offer
/cd,/cwdor/pwd, so users could neither change nor inspect a session’s working directory through its command browser. Add a directory editor and read-only aliases to the terminal and writable browser interfaces./cdresolves absolute, session-relative and home paths, requires an existing local directory, and uses the existing review/confirmation flow. It revalidates the session, target/symlinks and empty server queue, sends onlythreadId/cwd, and verifies running configuration before reporting success. Directory telemetry/footer and directory-scoped inventories follow live settings rather than captured original metadata. Input widgets continue to pass background telemetry and ticks through. Shared transport validation handles percent-encoding expansion and enforces the decoded 512-character rename and 1,024-character directory limits in both the daemon adapter and browser handler.Scope: this updates the selected thread’s server directory while retaining its ID/history. It does not reproduce native
/cd’s project configuration/trust reload and possible conversation fork. Other attached clients may send directory overrides. The confirmation and documentation explain this difference.Add
docs/slash-command-support.md, a version-matched audit of all 63 registered CLI 0.162.1 command variants plus three aliases (66 upstream command names). It distinguishes implemented/partial/browse-only adapters, missing server workflows, native client UI, debug entries and older documented names, with a reason for each gap and follow-up priorities. Missing commands such as/compact,/fork,/goal,/review,/psand/stopalready have APIs; their Codexometer workflows are missing.The audit now rates every entry by proposed priority (P1/P2/P3, Defer, Done or Exclude) and implementation complexity (Low to Very high). Each estimate names the next increment and dependencies; delivery order starts with existing-view aliases and read-only diagnostics, then session controls and shared lifecycle/project-context foundations.
Remove the old distance-from-safety Pace view from the terminal and browser, then rename the retained Zone view to Pace. Preserve its consumption-versus-elapsed-time coordinates, diagonal safety line, colours, trace and trend behaviour. Both frontends now offer a single Pace graph. Saved
zoneselections and legacy browser graph URLs resolve to Pace; persisted preferences and navigation use the canonicalpacename.Terminal session text previously depended on each terminal detecting raw URLs, which failed for wrapped text and macOS mouse capture. Add explicit HTTP/HTTPS OSC 8 links with underlined Markdown labels and visible destinations. Every wrapped line restores and closes its own link and underline, keeping scroll slices clickable without affecting borders or adjacent columns. Local macOS consumes session link clicks before navigation/approval handling and opens the unchanged URL as a literal
/usr/bin/openargument; SSH markers disable this fallback. Windows and other platforms retain terminal-owned opening.Complete inline Markdown links, including optional double-quoted, single-quoted and parenthesized titles, in prose to
github.com,openai.comandchatgpt.com, including subdomains matched at domain boundaries, display only the underlined label. Other destinations keep their labels and URLs visible. Bare URLs, code and approval requests preserve their visible text; inline code protects only its matched span so a commit hash beside a link does not prevent cooking; copying and stored action payloads retain the original source. Unsupported schemes, credentials, truncated/oversized targets and supplied OSC links cannot become app-opening actions. Add a translated error if the macOS opener fails.Recognise the default Terminal.app/Ghostty macOS Option-arrow encodings (
ESC b/ESC f) for previous/next history in full session Detail. The fallback is macOS-only and yields to focused reply editors, so word movement remains available while composing. Native Alt-arrow navigation and other platforms retain their existing behaviour; command, queue and schedule editors keep their keys.Validation:
Full Go core suite with race detection/coverage; all 17 locale rendering checks.
Go vet and Windows amd64 cross-build.
Frontend type/format checks, regenerated embedded assets and all 61 browser tests using installed Chrome.
Regression coverage for confirmation/target scope, relative/home paths, whitespace/Unicode, stale directory/state/connection, symlink retargeting, queued messages, pending approvals, server rejection/ignored fields, delayed application, remote environments and live footer fallback after disconnect.
Read-only metadata check against the installed daemon confirmed its local environment identifier. Local binary rebuilt.
Byte-for-byte comparison of the retained terminal plot with the previous Zone renderer across themes, sizes, consumption levels, trace settings and trend modes; browser regressions cover retained dot/trace coordinates, diagonal safety line, trend clipping/colours and bookmark/preference migration.
Link regressions cover exact destinations, domain lookalikes/subdomains, code and approval fidelity, Unicode labels, wrapping/scroll slices, border isolation, truecolour/256-colour rendering, source/clipboard preservation, local/SSH opening scope, literal arguments and opener failure feedback. Tests never launch a real browser.
History-key regressions decode real native and macOS terminal escape sequences, verify previous/next/live navigation, preserve editor word movement and isolate other views/editors. Windows application and UI test binaries cross-compile.
Command-input regressions cover maximum CJK/four-byte Unicode names, long encoded directory paths, browser list/prepare/commit preservation, invalid UTF-8/escapes and decoded limits. Titled-link tests cover all title delimiters, escaped quotes, angle destinations, exact punctuation/query targets, URLs inside titles, malformed titles and literal/source fidelity.
Inline-code regressions reproduce the PR link beside a commit hash and cover code before/after links, mixed backtick lengths, escaped and unmatched delimiters, multiline spans, paragraph/fence boundaries, full Detail modes, colour profiles and original clipboard text.