Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
b602bba
docs(tui): design status line surface
hakula139 May 14, 2026
01aec4f
feat(tui): add configurable status line
hakula139 May 14, 2026
1a864b8
fix(model): retain active opus 4.1 metadata
hakula139 May 14, 2026
1160aa5
fix(agent): count all turn usage for session cost
hakula139 May 14, 2026
47d1d40
fix(session): preserve usage state on failed resume
hakula139 May 14, 2026
93019d8
fix(tui): refresh status time while idle
hakula139 May 14, 2026
2ca8998
fix(config): reject empty status lines
hakula139 May 14, 2026
7488934
docs(tui): align status line follow-up scope
hakula139 May 14, 2026
374f2a7
test(tui): cover status line fitting branches
hakula139 May 14, 2026
264bbe0
test(client): cover prompt cache ttl accessor
hakula139 May 14, 2026
03c4fc9
test(tui): align status line test order with production
hakula139 May 14, 2026
9c93e17
docs(agent): clarify usage observation and per-turn report contracts
hakula139 May 14, 2026
dc97336
fix(config): make empty status_line error actionable
hakula139 May 14, 2026
f5e1a5c
fix(config): reject stray commas in OX_STATUS_LINE
hakula139 May 14, 2026
eeb9a21
test(config): cover TOML status_line unknown segment
hakula139 May 14, 2026
65fd240
test(tui): pin status-line priority drops and current-time gate
hakula139 May 14, 2026
eaa7b2f
fix(agent): bill cancelled and failed turns for completed rounds
hakula139 May 14, 2026
56fbdf5
feat(tui): tighten status-bar model label width
hakula139 May 14, 2026
a8f95d3
refactor(util): consolidate git branch probe and log failures
hakula139 May 15, 2026
b770974
feat(tui): refresh git branch on tick
hakula139 May 15, 2026
488c89e
feat(tui): add pull-request status-line segment
hakula139 May 15, 2026
7a9f5b8
feat(tui): bump current-dir to the muted slot for better contrast
hakula139 May 15, 2026
2faaa23
test(agent): pin swap-config preserves running session cost
hakula139 May 15, 2026
3a789a4
docs(tui): trim restating docstrings on status-line state
hakula139 May 15, 2026
b4d0b9b
docs(slash): drop narrating comment from model command test
hakula139 May 15, 2026
9eaeb6f
docs(tui): explain segment_utility ranking and format_cost cutover
hakula139 May 15, 2026
1db3696
docs(config): note ALL/serde coupling on StatusLineSegment
hakula139 May 15, 2026
77e5728
refactor(model): extract pricing into its own submodule
hakula139 May 15, 2026
3079df5
docs(guide): expand status-line segment reference
hakula139 May 15, 2026
8c7f88a
docs(design): synthesize status-line rationale into one prose section
hakula139 May 15, 2026
2fa3110
docs(README): link status-line bullet to configuration guide
hakula139 May 15, 2026
6f3ecc3
docs(theming): clarify separator slot styles glyph but doesn't replac…
hakula139 May 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ ox # Start an interactive session
├── main.rs # CLI entry point, mode dispatch (TUI / REPL / headless), signal handling
├── message.rs # Conversation message types
├── model.rs # Ground-truth table: display name, cutoff, capabilities, and unknown raw-id fallback
├── model/
│ └── pricing.rs # Per-million-token cost rates + USD estimator (excludes account / marketplace adjustments)
├── prompt.rs # System prompt builder (section assembly)
├── prompt/
│ ├── environment.rs # Runtime environment detection (platform, git, date, knowledge cutoff)
Expand Down Expand Up @@ -131,7 +133,9 @@ ox # Start an interactive session
│ │ │ ├── popup.rs # Slash-command autocomplete overlay: dim non-selected, bold selected, alias parens
│ │ │ └── snapshots/ # `cargo insta` baselines for popup render tests
│ │ ├── snapshots/ # `cargo insta` baselines for chat, input, status, and welcome render tests
│ │ ├── status.rs # Status bar (model, spinner, status, working directory)
│ │ ├── status.rs # Configurable status-line component state + run-state spinner
│ │ ├── status/
│ │ │ └── line.rs # Ordered segment rendering for the status line
│ │ └── welcome.rs # Empty-state welcome screen: identity ribbon + body column, themed via `accent`/`text`/`dim`
│ ├── cursor.rs # `place_clamped`: shared right-edge-clamp cursor placement for input surfaces
│ ├── event.rs # ChannelSink (mpsc transport for the TUI)
Expand All @@ -158,6 +162,7 @@ ox # Start an interactive session
└── util/
├── env.rs # Environment-variable helpers (`string`, `bool`: empty-is-absent semantics)
├── fs.rs # Filesystem helpers: `create_private_dir_all` (0o700) + `atomic_write_private` (0o600 temp+rename)
├── git.rs # Git / `gh` probes for branch + open PR (best-effort, debug-logged failures)
├── lock.rs # Async retry helper for advisory locks (used by oauth)
├── log.rs # `tracing` subscriber init: file under $XDG_STATE_HOME in TUI mode, stderr otherwise
├── path.rs # Path display + expansion helpers (`tildify`: $HOME → ~/, `expand_user`: ~/ → $HOME)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ oxide-code is a Rust reimplementation of Claude Code, an interactive CLI agent t

Early development. What works today:

- Terminal UI: streaming output, markdown rendering, syntax-highlighted code blocks, and 5 built-in themes with custom-TOML overrides
- Terminal UI: streaming output, markdown rendering, syntax-highlighted code blocks, [configurable status line](docs/guide/configuration.md#tui-terminal-ui), and 5 built-in themes with custom-TOML overrides
- Agent loop with extended thinking and tool-use round-trip
- File and search tools: `read`, `write`, `edit`, `glob`, `grep`, `bash`
- Turn interruption (Esc / Ctrl+C) plus mid-turn queued follow-up prompts that splice into the same turn between tool calls, with double-press Ctrl+C exit confirmation
Expand Down
Loading