Commit Graph
1615 Commits
Author SHA1 Message Date
James Peter 9eb55fdff7 fix(tui/input): only inline images; stop replacing non-image paths with [file:] and remove pending file tracking. Non-image paths remain as plain text so the model chooses whether to read them. 2025-09-05 23:10:37 +10:00
James Peter 8e24c5ac5a feat(tui/layout): align composer/history wrap; add sanitize markers
Introduce layout_consts and replace hardcoded paddings to keep composer and history wrapping identical.

Extend sanitize::Options with debug_markers (default false) and plumb to history cell render paths.

Use codex-version crate for version reporting in TUI and wire crate deps.

Cleanup GitHub CI: remove unused workflows/assets; update issue-triage.
2025-09-05 23:07:36 +10:00
James Peter 81654f23bd feat(versioning): embed display version via tiny crate and remove dependence on CODE_VERSION env
- Generate  at build time from  (CI) or  (local)
- Replace all version lookups in CLI, TUI banners, exec output, MCP client/server, and core headers with
- Ensures sccache invalidates correctly when version changes, preventing stale binaries (e.g., 0.2.59 inside 0.2.62)

Validation: ./build-fast.sh passes with no warnings.
2025-09-05 22:27:34 +10:00
James Peter bfa1a2126b Resolve merge: keep version 0.2.62 for @just-every/code and per-target optionals v0.2.62 2025-09-05 21:48:41 +10:00
James Peter 59a4ef8d1c ci(release): ensure unique npm version across packages; idempotent publish steps; bump codex-cli to 0.2.62 2025-09-05 21:47:50 +10:00
GitHub Action f850be8164 docs(changelog): update for v0.2.61 [skip ci] 2025-09-05 11:03:55 +00:00
GitHub Action b7935d4c61 chore(release): 0.2.61 [skip ci] v0.2.61 2025-09-05 11:01:51 +00:00
James Peter 7a98c9f2e0 chore: touch .gitignore to trigger release workflow 2025-09-05 20:52:36 +10:00
James Peter a5bfb8725e Merge origin/main before pushing (release.yml: enforce [skip ci] on notes-only; ignore codex-cli/package.json) 2025-09-05 20:49:33 +10:00
James Peter 31e6a14efd ci(release): require and enforce [skip ci] on notes-only commits; ignore codex-cli/package.json; keep push-to-main with paths-ignore 2025-09-05 20:49:18 +10:00
James Peter 1660daa3e1 ci(release): remove guard job to avoid canceling in-flight runs; rely on paths-ignore (including release.yml) to prevent notes-only triggers 2025-09-05 20:38:53 +10:00
James Peter a507a8a05d ci(release): add guard job to skip entire workflow when only CHANGELOG.md and release-notes/RELEASE_NOTES.md changed; keep push-on-main trigger with paths-ignore 2025-09-05 20:30:52 +10:00
James Peter 14f73e15bf ci(release): trigger only on tags (v*) or manual dispatch; parse version from tag; avoid push-to-main auto-releases 2025-09-05 20:27:50 +10:00
GitHub Action 95fc7468a2 docs(changelog): update for v0.2.60 2025-09-05 10:23:35 +00:00
GitHub Action 71d840c6a5 chore(release): 0.2.60 [skip ci] v0.2.60 2025-09-05 10:22:38 +00:00
James Peter ebec2fb1e1 ci(release): robust asset collection — find all code-* files recursively from artifacts and copy into release-assets 2025-09-05 20:15:19 +10:00
James Peter f50f45016e docs(release-notes): add real Compare link; keep strict sections + optional Thanks; no retrigger on notes 2025-09-05 20:03:56 +10:00
James Peter 11040a25d9 docs(release-notes): add optional '### Thanks' section for external contributors; exclude @zemaj and @andrej-griniuk 2025-09-05 19:59:59 +10:00
James Peter f445723759 Merge origin/main before pushing: keep our new issue-triage workflow, .gitignore additions, and release.yml prompt tweaks; remove CLA workflow 2025-09-05 19:41:58 +10:00
James Peter 811ceede89 ci(release): tighten notes format, use '@latest' in install snippet, and ignore CHANGELOG/release-notes pushes; chore(gitignore): ignore codex-rs/target and CI scratch; ci: remove CLA workflow 2025-09-05 19:41:32 +10:00
GitHub Action bd142d4ace docs(changelog): update for v0.2.59 2025-09-05 09:32:51 +00:00
GitHub Action 8c8ef7bbaf chore(release): 0.2.59 [skip ci] v0.2.59 2025-09-05 09:31:33 +00:00
James Peter 835e60f638 ci(smoke): remove stray status echo causing 'unbound variable' under set -u 2025-09-05 19:23:40 +10:00
James Peter 57c6f21f0e ci(smoke): use a trivial prompt (ls + brief description) to avoid toolchain/build steps and finish quickly 2025-09-05 19:20:58 +10:00
James Peter d04634bc25 ci(smoke): default to live run with OPENAI_API_KEY and default model; remove use_api/model inputs 2025-09-05 19:17:04 +10:00
James Peter de4f2671ea ci(smoke): add options to use OPENAI_API_KEY + model for live request; keep default parse-only mode 2025-09-05 19:15:06 +10:00
James Peter 3f5e6d0644 ci(smoke): switch to npx @just-every/code to test published release; fix inputs context and minor typo 2025-09-05 19:09:09 +10:00
James Peter f759fc447c ci(smoke): add fast workflow to validate 'code exec --cd' parsing and stdin redirection without full release pipeline 2025-09-05 19:05:44 +10:00
James Peter fd0ce53829 ci(release): use 'exec --cd' instead of unknown top-level '--cwd' and verify locally 2025-09-05 19:02:33 +10:00
James Peter b3c20f07e2 ci(release): publish npm packages last; bump codex-cli to 0.2.58 and compute version across all npm targets to avoid E403 overwrite 2025-09-05 18:51:00 +10:00
James Peter a9cd4aa891 fix(tui/sanitize): centralize diff/output sanitization; strip OSC/DCS/C1/zero-width and expand tabs via shared util\n\n- Add with and modes\n- Expand tabs (Unicode-aware) and remove zero-width/BiDi controls\n- Strip OSC/DCS/APC/PM/SOS strings and raw C0/C1 bytes; keep CSI when preserving ANSI\n- Apply to diff_render (plain) and history_cell (ANSI-preserving)\n\nValidated with ./build-fast.sh (no warnings).\n\nFixes #22 2025-09-05 17:50:39 +10:00
James Peter f3671c9653 feat(tui/streaming): animate streaming ellipsis as rotating three dots\n\nReplace static ellipsis (… ) in StreamingContentCell with a subtle three-dot\nanimation using a middle dot (·) cycling through frames: ..., ·.., .·., ..·, ...\nShown only while streaming, in the same places the previous ellipsis appeared.\nFrame cadence ~200ms. Validated via ./build-fast.sh (no warnings). 2025-09-05 17:34:15 +10:00
James Peter 4292ae3f26 ci(release): fix YAML by indenting heredoc content in run block 2025-09-05 17:26:02 +10:00
James Peter 7cc196b545 feat(tui/history): add WebFetchToolCell and fix streaming header\n\n- Preserve first content line during streaming by prepending hidden header when absent\n- Replace tool call lines with sectioned web_fetch preview and dim styling\n- Update release notes guidance in workflow docs\n\nValidated with ./build-fast.sh (no warnings) 2025-09-05 17:22:25 +10:00
James Peter 851428379b ci(release): align CLI agent prompt with new CHANGELOG/notes house style and idempotent update rules 2025-09-05 16:58:16 +10:00
James Peter aea39328b3 docs(changelog): add v0.1.7–v0.1.2 entries 2025-09-05 16:53:35 +10:00
James Peter a53bdaeba2 docs(changelog): add v0.1.13–v0.1.8 entries 2025-09-05 16:53:07 +10:00
James Peter f1200e7b65 docs(changelog): add v0.2.9–v0.2.1 entries 2025-09-05 16:52:16 +10:00
James Peter 0c79134eda docs(changelog): add v0.2.24–v0.2.10 entries 2025-09-05 16:51:39 +10:00
James Peter 62b133ee13 docs(changelog): add v0.2.36–v0.2.25 entries from tag ranges 2025-09-05 16:50:19 +10:00
James Peter ca0aeb9fae docs(changelog): add v0.2.46–v0.2.37 and correct v0.2.38/0.2.37 mapping 2025-09-05 16:49:08 +10:00
James Peter 0e126f0919 docs(changelog): reconstruct notes for v0.2.47–v0.2.56 from tags and commit history 2025-09-05 16:43:40 +10:00
James Peter 3d2ac84a6d fix(tui/history): guard missing OrderMeta; synthesize order keys
- Make `order_key_from_order_meta` take `&OrderMeta` to remove panicking unwraps.
- Replace `ensure_stream_order_key_strict` with `try_stream_order_key`; synthesize keys via `next_internal_key()` when id/key is missing.
- Add guarded fallbacks across Answer/Reasoning/PlanUpdate/Exec/MCP paths, logging warnings rather than panicking to preserve strict per‑turn ordering.
- Interrupt manager tolerates missing metadata for queued Exec begin/end.
- Update exec_tools call sites for new signature.
- Refresh CHANGELOG with 0.2.56 summaries and ordering notes.
2025-09-05 16:42:21 +10:00
James Peter 8da07e99aa fix(tui/render): clamp bottom spacer compensation to 1 row at end of viewport
Users saw blank bottom when final/user messages inserted: our targeted spacer compensation used full gap (content_y - scroll_pos) which could push the draw cursor past the viewport. Clamp strictly to a single spacer row when at bottom and rendering the last item. No ordering changes.
2025-09-05 16:25:17 +10:00
James Peter 4a70edaed7 feat(tui/history): enforce strict global ordering and stream IDs
- Replace legacy turn-window logic with stable  per insert
- Require non-empty stream IDs; seed order keys per (kind,id)
- Pair out-of-order ExecEnd/Begin and drop canceled execs
- Surface init/submit errors as BackgroundEvent diagnostics
- Improve status panes, borders, and preview truncation by display width
- Update release workflow; docs: AGENTS.md, prompt_coder.md; add MERGE.md and postmortem

Build: ./build-fast.sh passes locally with no warnings.
2025-09-05 16:13:31 +10:00
James Peter 5003cbfcda chore: commit all code 2025-09-05 13:05:25 +10:00
James Peter 19b7374890 fix(tui/status): remove duplicate 'Ctrl+R hide reasoning' hint from top bar (footer already shows it) 2025-09-05 10:12:35 +10:00
James Peter 6b209c8e10 fix(tui/redraw): ensure scheduled animation frames are not suppressed by debounce
- Add  flag independent of
- Arm exactly one timer for AppEvent::ScheduleFrameIn while allowing immediate redraw debounce
- Prevents welcome logo animation from stalling until input

Also: revert intro color fade profile to original (no visual change request).
2025-09-05 08:21:47 +10:00
James Peter d8bb30e266 fix(tui/animation): ensure intro logo visibly completes without perf cost
- Remove per-frame debug log in intro renderer
- Delay internal fade to last ~2% and force final frame vivid
- Defer any fade-out to AnimatedWelcomeCell alpha blending

Keeps animation smooth and visually complete on all terminals.
2025-09-05 08:17:03 +10:00
James Peter 41ce5d757c feat(tui/order): enforce strict global ordering and remove turn-window logic\n\n- Add strict and global ordered inserts\n- Require for LLM/tool events; panic if missing\n- Replace unordered pushes with ordered using synthetic internal keys (out=-1)\n- Remove turn-window fields/logic; delete legacy helpers\n- Seed per-stream keys from ; enforce for Answer/Reasoning/MCP\n- Carry with pending ExecEnd and flush with correct order\n- Simplify interrupts queue; drop window fields and pass through \n- Clean up dead code and fix warnings (0 warnings)\n\nValidated with ./build-fast.sh (no warnings). 2025-09-04 11:50:16 +10:00