Commit Graph
58 Commits
Author SHA1 Message Date
James Peter a1965499d3 fix(ci-tests): call --tests for migrated crates 2025-10-06 10:09:39 +10:00
James Peter 536c1aec8a chore(upstream): strip code branding in docs during diff 2025-10-06 09:07:04 +10:00
James Peter 5f74f7ca81 chore(upstream): drop .DS_Store noise in diff-crates 2025-10-06 09:05:14 +10:00
James Peter bc744fad6f chore(upstream): ignore code prefix in diff crate comparisons 2025-10-06 09:01:17 +10:00
James Peter d5a124fd3a chore(upstream): normalize crate rename noise in diff-crates 2025-10-06 08:59:57 +10:00
James Peter 0089b863d8 fix(workflows): restore release and point to code-rs 2025-10-06 08:54:53 +10:00
James Peter f2f0a07b38 docs: reset roadmap and add maintenance guides 2025-10-05 20:48:06 +10:00
Code Snapshot 337213efa0 code snapshot 2025-10-05 16:22:02 +10:00
James Peter 224af74fc0 chore(workspace): sync codex tree and finish reset plan 2025-10-05 09:04:09 +10:00
James Peter 05cf8e3924 merge(upstream): add automation prompts and exec docs 2025-10-03 14:26:48 +10:00
James Peter 2b8f6d7f2c chore(ci): defer log fetch until run stops 2025-09-25 13:53:51 +10:00
James Peter 8786068dbb fix(ci): exit wait script on first failed job 2025-09-25 13:49:40 +10:00
just-every-code d3a5508879 merge(upstream): sync with openai/codex main; build + guards OK
- Resolve merge conflict in codex-rs/Cargo.lock by adopting upstream version (outside prefer-ours globs).
- Add RUSTUP_HOME export in scripts/upstream-merge/verify.sh to avoid CI HOME permission issues during cargo check.
- Verified via scripts/upstream-merge/verify.sh: build-fast OK, API check OK, static guards OK, branding clean.
2025-09-24 17:21:07 +00:00
James Peter 73c76dde73 feat(scripts): add failure log dump option
Extend wait-for-gh-run.sh with --failure-logs and fold docs under a How to Git Push section.
2025-09-22 13:31:37 +10:00
James Peter f9c92a7cd1 feat(scripts): add gh run waiter utility
Introduce wait-for-gh-run.sh to poll workflows and document usage in AGENTS.md.
2025-09-22 12:53:17 +10:00
James Peter 8b3a076fe8 fix(scripts/test-responses): prefer .code directory 2025-09-19 14:41:25 +10:00
James Peter 35e3f53306 feat: add long run calculator script 2025-09-18 17:15:28 +10:00
Michael BolinandGitHub 280db51126 fix: make GitHub Action publish to npm using trusted publishing (#3431) 2025-09-16 20:33:59 -07:00
James Peter d0e710dc05 ci(upstream-merge): make branding guide-only
- Remove auto-branding worktree + commit and failing guard
- Keep perma-deleted guard; generate VERIFY_branding.log for guidance
- verify.sh: record branding findings as notice, never fail rc; write branding log

Rationale: branding should be a suggestion, not a gate. Code/maintainers can
apply suggested changes explicitly in follow-ups while upstream merge is gated
solely by build + API invariants.
2025-09-15 10:25:20 +10:00
James Peter d359017037 chore(ci/upstream-merge): add branding guard + auto-fix step for TUI/CLI\n\nAdd non-fixing verify step to flag newly introduced user-visible 'Codex' strings\nunder TUI/CLI paths vs origin/<branch>. Add CI job to auto-fix branding in the\nmerge worktree using a safe single-line quoted-string replacement script. 2025-09-13 13:47:39 +10:00
James Peter 8386ed45ba fix(core/client): switch tool type to 'web_search' to avoid 400 Unsupported tool error\n\nThe Responses API rejects 'web_search_preview' with 400 (Unsupported tool type).\nUse the supported 'web_search' tool id. Update test payload generator accordingly. 2025-09-13 13:47:34 +10:00
James Peter 235fe713cd fix(tui/spinner): use active auth preference for custom spinner generation\n\n- Prefer ChatGPT auth when session uses ChatGPT; otherwise use API key\n- Avoids 401 retry loops when background thread created a fresh AuthManager\n- Matches request shape that succeeds in harness (responses=v1, session handling) 2025-09-13 00:33:37 +10:00
James Peter 993b7e419c feat(dev): add scripts/test-responses.js to probe Responses API with ChatGPT/API-key auth\n\n- Reads /auth.json; supports --auth chatgpt|api-key|auto\n- Tests: base, json-schema, tools-web-search, tools-web-search-preview, store\n- Uses Responses v1; non-streaming by default for clear error capture\n- Prints status + x-request-id and error excerpts 2025-09-13 00:02:33 +10:00
James Peter 73db995f1f ci(proxy): set Responses v1 and fail-fast on 5xx\n\n- scripts/openai-proxy.js default RESPONSES_BETA=responses=v1\n- Workflows (issue-code, issue-comment, release, upstream-merge): EXIT_ON_5XX=1 and RESPONSES_BETA=responses=v1\n\nFix: API-key 2nd-call 500s addressed in client; proxy now aligned with production headers 2025-09-12 23:57:18 +10:00
James Peter 169c80f972 chore(proxy): add STRICT_HEADERS and RESPONSES_BETA override; minimal allowlist mode 2025-09-12 23:24:59 +10:00
James Peter fa3518f5f7 chore(proxy): add debug toggles and error-body logging\n\n- Options: DISABLE_KEEPALIVE, FORCE_CLOSE, NO_GZIP, STRIP_SESSION_ID, IDEMPOTENCY_KEY=auto, LOG_ERROR_BODY(+_BYTES)\n- Helps isolate Responses API 500s on subsequent requests 2025-09-12 23:11:31 +10:00
James Peter 6fee6e3e95 ci(proxy): centralize OpenAI proxy to scripts/openai-proxy.js and use across workflows\n\n- Replace inline JS proxies in upstream-merge, issue-code, issue-comment, release\n- Shared behavior: SSE defaults, allowlist, header scrubbing, structured logs\n- Supports PORT/OPENAI_BASE_URL/LOG_DEST/EXIT_ON_5XX via env\n- Keeps existing port assignments (5055/5056/5057/5058)\n 2025-09-12 22:43:05 +10:00
James Peter 17f3ea5f15 chore(dev): add local OpenAI proxy script replicating upstream-merge settings\n\n- scripts/openai-proxy.js mirrors CI proxy (allowlist, SSE defaults, header scrubbing)\n- Usage docs in file header; supports PORT and OPENAI_BASE_URL\n- For local runs: set proxy with real OPENAI_API_KEY; run code with OPENAI_BASE_URL=http://127.0.0.1:<port>/v1 and dummy key 2025-09-12 22:18:08 +10:00
James Peter 4b93553dc5 fix(release/homebrew): use local artifacts for sha256; add retry/backoff on remote fetch; avoid failing on CDN propagation
- Prefer release-assets/* when present to compute sha256 for Homebrew formula.\n- Retry curl with backoff if local file missing; print warnings instead of failing.\n- Keep formula URLs pointing to GitHub Releases; add best-effort HEAD checks.\n- Eliminates 404-induced failures right after uploading assets.
2025-09-12 21:51:05 +10:00
James Peter 32561af3aa fix(core/mcp): honor per-server startup_timeout_ms and make tools/list failures non-fatal; add test MCP server + smoke harness to validate slow/fast scenarios
- Add  to  and parse/write in config
- Apply per-server timeout to  and initial
- Treat per-server  errors as non-fatal; record and skip those servers
- Keep manager creation successful even if some servers time out
- Export  so local smoke tool can exercise it
- Add  (stdio JSON-RPC) and  binary for manual validation
- Update TUI  to set  by default

This resolves GitHub issue #91 where a slow MCP server caused manager creation to time out and fail entirely.
2025-09-12 00:10:56 +10:00
James Peter 95a3b15a22 Merge upstream-merge into main: restore fork features and keep upstream improvements
- Core: keep browser_*/agent_* tool exposure and web_fetch in openai_tools; preserve browser gating + screenshot UX; adapt recorder API
- Protocol: keep TS model changes for protocol-ts; align image shape
- Default client: reinstate UA helpers (USER_AGENT_SUFFIX, get_codex_user_agent_default)
- CI/Docs: carry remote minor updates

Build: ./build-fast.sh clean
2025-09-11 20:55:52 +10:00
James Peter 01368915b8 ci(upstream-merge): expand agent context with fork enhancements + generic guards
- Add docs/fork-enhancements.md (initial list; instruct agent to scan repo for more)
- Inject the overview into the merge prompt
- Generalize verify guards to handler↔tool parity by family (browser_*, agent_*, web_fetch), and keep UA/version check

Prevents silent loss of fork features and gives the agent richer context.
2025-09-11 20:12:17 +10:00
James Peter ced6307578 ci(upstream-merge): preserve fork features via policy + guards
- Policy: prefer ours for core files that contain forked functionality (openai_tools, codex.rs, agent_tool, default_client, protocol models)
- Verify: add static guards to fail if browser/agent tools are dropped or UA/version handling is removed
- Workflow: embed explicit invariants in agent prompt (browser/agent tools, screenshot queue, version UA); reference verify guards

Keeps our model-driven tools and UX intact while still adopting safe upstream changes.
2025-09-11 19:34:32 +10:00
just-every-code c4ce551883 Merge remote-tracking branch 'origin/main' into upstream-merge 2025-09-10 02:39:25 +00:00
James Peter 23366b26c8 ux(spinners): keep grouped order and render group headers as dim title rows; add selector arrow back\n\n- Sort spinners by (group,name) from JSON (grouped or flat)\n- Spinner list shows dim group header rows (non-selectable) between groups\n- Selected row gets '› ' arrow and info-colored preview; others dim\n- Add Node script to upgrade spinners.json to grouped format with labels 2025-09-10 12:11:41 +10:00
James Peter 6a28917b7c chore(spinners): add labels + groups to spinners.json via Node script; keep runtime fallbacks\n\n- Script: scripts/upgrade-spinners.js (idempotent; --dry-run supported)\n- JSON now includes {label, group} for each spinner; easier to curate manually\n- spinner.rs reads label/group (with humanize/derive fallback) 2025-09-10 11:57:20 +10:00
just-every-code aedc0cbd76 merge(upstream): merge upstream/main into upstream-merge with policy
- Keep ours for  (resume picker not reintroduced)
- Initially took upstream for core, but reverted to ours to maintain API compatibility and pass build
- Adopted upstream elsewhere where non-conflicting
- Guard: keep codex-core re-exports and models alias intact
- Verify script: disable sccache outside GHA to allow local verify
- Fix: remove unused imports in theme selection view (warnings-as-failure policy)

Build: scripts/upstream-merge/verify.sh => build_fast=ok api_check=ok
2025-09-10 01:15:15 +00:00
just-every-code c09eeb10f0 Merge remote-tracking branch 'origin/main' into upstream-merge 2025-09-10 01:02:55 +00:00
James Peter 45006c1669 ci(upstream-merge): unify Cargo env/caches; drop duplicate caches; keep sccache
Use one CARGO_HOME/CARGO_TARGET_DIR across agent and verify. Remove redundant actions/cache steps; rely on Swatinem/rust-cache and sccache GHA backend for incremental builds. verify.sh now respects env and uses KEEP_ENV=1 so builds share caches.
2025-09-10 08:17:45 +10:00
just-every-code 9bc4d0359b merge(upstream): incorporate openai/codex@83e90ede9 (by-bucket)
- Prefer ours for TUI/CLI and workflows; theirs for protocol where safe
- Adopt upstream rollout_path in NewConversationResponse; wire through SessionConfiguredEvent
- Add TS derives for protocol types to satisfy upstream TS schema
- Keep core API re-exports and models alias intact

Verification: scripts/upstream-merge/verify.sh passed; ./build-fast.sh clean (no warnings)
2025-09-09 07:34:28 +00:00
just-every-code c6e4412afb merge(upstream): merge upstream/main into upstream-merge (by-bucket)
- Keep ours for TUI/CLI/workflows/docs; purge reintroduced rust-ci.yml
- Prefer theirs in protocol/deps; add serde_bytes + ICU/sys-locale/serde_with
- Keep our core codex/shell to preserve API; fix exec AuthMode import
- Make verify.sh CI-safe (no sccache; local CARGO dirs); check api_surface only

Build: ok; Verify: ok
2025-09-09 01:56:14 +00:00
James Peter a7350b8dc3 ci(upstream-merge): add scripts/upstream-merge/verify.sh and switch checks/remediation to use it; agent instructed to run verify before pushing 2025-09-09 11:37:05 +10:00
James Peter 8da0ef15bd ci(release): add preflight E2E tests and per-target post-build smokes; fix duplicate workflow block 2025-09-09 10:59:49 +10:00
James Peter 83e07abd99 revert: drop unintended preflight test files and release.yml edits; keep only core API tests and upstream-merge prompt/checks 2025-09-09 10:56:07 +10:00
James Peter 74b0c1ca1c test(core/api): add compile-only API surface checks for core re-exports and models alias 2025-09-09 10:54:43 +10:00
James Peter 61f0550d98 chore(repo,tui): remove labels/scripts; update TUI sources
- Remove obsolete GitHub label templates and demo assets
- Remove unused helper scripts under `scripts/`
- Update Rust TUI sources (`codex-rs/tui/src/*`)

Staged summary:

 .github/codex/labels/codex-attempt.md     |   9 --
 .github/codex/labels/codex-review.md      |   7 --
 .github/codex/labels/codex-rust-review.md | 139 ------------------------------
 .github/codex/labels/codex-triage.md      |   7 --
 .github/demo.gif                          | Bin 19750111 -> 0 bytes
 .github/pull_request_template.md          |   6 --
 codex-rs/tui/src/app.rs                   |   7 ++
 codex-rs/tui/src/app_event.rs             |   4 +
 codex-rs/tui/src/bottom_pane/mod.rs       |  52 ++++++-----
 codex-rs/tui/src/chatwidget.rs            |  48 ++++++++++-
 codex-rs/tui/src/history_cell.rs          |  26 ++++--
 codex-rs/tui/src/user_approval_widget.rs  |  71 ++++-----------
 scripts/asciicheck.py                     | 127 ---------------------------
 scripts/pr-cleanup.sh                     | 131 ----------------------------
 scripts/publish_to_npm.py                 | 118 -------------------------
 scripts/readme_toc.py                     | 119 -------------------------
 16 files changed, 123 insertions(+), 748 deletions(-)
2025-09-08 22:15:28 +10:00
James Peter ca1010b225 chore: restore files removed unintentionally in previous commit
Re-add .github/codex labels, .vscode config, and root scripts that were dropped while updating upstream-merge workflow. Only intended change is the PR zero-diff guard.
2025-09-08 09:02:26 +10:00
James Peter f0ebd1ec5c ci(upstream-merge): skip PR on zero diff; close existing no-op PRs
- Guard PR step when upstream merge is a true no-op (no file deltas vs base).
- Add workflow-level 'if' on PR step to honor earlier skip short-circuit.
- Leaves agent + policy steps unchanged; avoids empty PRs like #83.
2025-09-08 09:01:51 +10:00
James Peter 589835d793 ci(pr-cleanup): remove GitHub Actions cleanup workflow; use scripts/pr-cleanup.sh for local maintenance 2025-09-07 11:06:34 +10:00
James Peter 4de65f4db7 fix(tui/input): normalize KeyEvent kind on non-enhanced terminals to restore typing on Git Bash/mintty (Windows)
This maps Release-only key events to Press when keyboard enhancement flags are unsupported, fixing unresponsive input and Ctrl+C on some Windows terminals.

Closes #18. Closes #14.
2025-09-03 21:44:29 +10:00