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