Skip to content

Commit da58e04

Browse files
CSResselnori-agent
andauthored
Rename codex-rs workspace and codex-acp package (#443)
## Summary 🤖 Generated with [Nori](https://www.npmjs.com/package/nori-ai) - rename the Rust workspace directory from `codex-rs/` to `nori-rs/` - rename the ACP crate/package from `codex-acp`/`codex_acp` to `nori-acp`/`nori_acp` - update repo docs, CI, release scripts, and package selectors to use the new names ## Test Plan - [x] `cargo test -p nori-acp` - [x] `cargo test -p nori-tui` - [x] `cargo test -p nori-cli` - [x] `cargo test` - [x] `cargo build --bin nori && cargo test -p tui-pty-e2e` - [x] live tmux smoke test launching `./target/debug/nori --agent elizacp --skip-trust-directory` - [x] `just fmt` - [x] `just fix` Share Nori with your team: https://www.npmjs.com/package/nori-skillsets --------- Co-authored-by: Nori <contact@tilework.tech>
1 parent 65fe683 commit da58e04

1,166 files changed

Lines changed: 553 additions & 573 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/codex/labels/codex-rust-review.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Things to look out for when doing the review:
1515

1616
## Code Organization
1717

18-
- Each create in the Cargo workspace in `codex-rs` has a specific purpose: make a note if you believe new code is not introduced in the correct crate.
19-
- When possible, try to keep the `core` crate as small as possible. Non-core but shared logic is often a good candidate for `codex-rs/common`.
18+
- Each create in the Cargo workspace in `nori-rs` has a specific purpose: make a note if you believe new code is not introduced in the correct crate.
19+
- When possible, try to keep the `core` crate as small as possible. Non-core but shared logic is often a good candidate for `nori-rs/common`.
2020
- Be wary of large files and offer suggestions for how to break things into more reasonably-sized files.
2121
- Rust files should generally be organized such that the public parts of the API appear near the top of the file and helper functions go below. This is analagous to the "inverted pyramid" structure that is favored in journalism.
2222

@@ -131,7 +131,7 @@ fn test_get_latest_messages() {
131131

132132
## Pull Request Body
133133

134-
- If the nature of the change seems to have a visual component (which is often the case for changes to `codex-rs/tui`), recommend including a screenshot or video to demonstrate the change, if appropriate.
134+
- If the nature of the change seems to have a visual component (which is often the case for changes to `nori-rs/tui`), recommend including a screenshot or video to demonstrate the change, if appropriate.
135135
- References to existing GitHub issues and PRs are encouraged, where appropriate, though you likely do not have network access, so may not be able to help here.
136136

137137
# PR Information

.github/dependabot.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ updates:
88
interval: weekly
99
- package-ecosystem: cargo
1010
directories:
11-
- codex-rs
12-
- codex-rs/*
11+
- nori-rs
12+
- nori-rs/*
1313
schedule:
1414
interval: weekly
1515
- package-ecosystem: devcontainers
@@ -21,6 +21,6 @@ updates:
2121
schedule:
2222
interval: weekly
2323
- package-ecosystem: rust-toolchain
24-
directory: codex-rs
24+
directory: nori-rs
2525
schedule:
2626
interval: weekly

.github/workflows/cargo-deny.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: blacksmith-4vcpu-ubuntu-2404
1111
defaults:
1212
run:
13-
working-directory: ./codex-rs
13+
working-directory: ./nori-rs
1414
env:
1515
# Disable sccache wrapper from .cargo/config.toml since it's not available
1616
# in the cargo-deny Docker container.
@@ -26,7 +26,7 @@ jobs:
2626
uses: EmbarkStudios/cargo-deny-action@v2
2727
with:
2828
rust-version: nightly
29-
manifest-path: ./codex-rs/Cargo.toml
29+
manifest-path: ./nori-rs/Cargo.toml
3030
log-level: warn
3131
command: check
3232
arguments: --all-features

.github/workflows/docs.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Path: @/.github/workflows
1010

1111
### How it fits into the larger codebase
1212

13-
- The release workflow builds Rust binaries from `@/codex-rs/` and packages them via the Node.js launcher in `@/nori-cli/`
13+
- The release workflow builds Rust binaries from `@/nori-rs/` and packages them via the Node.js launcher in `@/nori-cli/`
1414
- Version detection delegates to `@/scripts/create_nori_release --get-next-version`, which queries git tags (via the GitHub API) as the single source of truth for version numbering
1515
- Stable releases use "synthetic commits" created by the `create_nori_release` script -- release tags point to commits that exist only for the release (not on any branch), with `Cargo.toml` updated to the release version, keeping the `main` branch's `Cargo.toml` at a placeholder `0.0.0`
1616
- The `nori-release.yml` workflow publishes to npm under the package name `nori-ai-cli`, with stable releases tagged `@latest` and snapshots tagged `@next`
@@ -25,7 +25,7 @@ Path: @/.github/workflows
2525
| Main branch push | Push to `main` (e.g., merged PR) with path filters | `publish_next=true` -- publishes a `@next` snapshot |
2626
| Manual dispatch | `workflow_dispatch` with inputs | Either `publish_next=true` or explicit version + optional `dry_run` |
2727

28-
**Path filters for main branch pushes** restrict triggering to changes in `codex-rs/**`, `nori-cli/**`, `scripts/**`, and the workflow file itself, so docs-only changes do not trigger a release.
28+
**Path filters for main branch pushes** restrict triggering to changes in `nori-rs/**`, `nori-cli/**`, `scripts/**`, and the workflow file itself, so docs-only changes do not trigger a release.
2929

3030
**Concurrency control** uses group `nori-release-${{ github.ref }}` with `cancel-in-progress` enabled only for main branch pushes. This means if two PRs merge in quick succession, the second run cancels the first since only the latest snapshot matters.
3131

.github/workflows/nori-release.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ on:
3838
branches:
3939
- main
4040
paths:
41-
- "codex-rs/**"
41+
- "nori-rs/**"
4242
- "nori-cli/**"
4343
- "scripts/**"
4444
- ".github/workflows/nori-release.yml"
@@ -225,24 +225,24 @@ jobs:
225225
uses: rui314/setup-mold@v1
226226

227227
- name: cargo check
228-
working-directory: codex-rs
228+
working-directory: nori-rs
229229
run: cargo check --profile ci-test --target ${{ env.MUSL_TARGET }} --all-targets
230230

231231
# - name: cargo clippy
232-
# working-directory: codex-rs
232+
# working-directory: nori-rs
233233
# run: cargo clippy --target ${{ env.MUSL_TARGET }} --all-features -- -D warnings
234234

235235
# - name: cargo build
236-
# working-directory: codex-rs
236+
# working-directory: nori-rs
237237
# run: |
238238
# cargo build --profile ci-test --target ${{ env.MUSL_TARGET }} -p nori-cli
239239
# cargo build --profile ci-test --target ${{ env.MUSL_TARGET }} -p mock-acp-agent
240240

241241
# - name: cargo test
242-
# working-directory: codex-rs
242+
# working-directory: nori-rs
243243
# run: |
244244
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package tui-pty-e2e
245-
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package codex-acp
245+
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package nori-acp
246246
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package nori-tui
247247
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package nori-cli
248248
# cargo test --profile ci-test --target ${{ env.MUSL_TARGET }} --package codex-protocol
@@ -352,15 +352,15 @@ jobs:
352352
353353
- name: Set version in Cargo.toml
354354
if: ${{ needs.validate.outputs.publish_next == 'true' }}
355-
working-directory: codex-rs
355+
working-directory: nori-rs
356356
run: |
357357
VERSION="${{ needs.validate.outputs.version }}"
358358
echo "Injecting version $VERSION into Cargo.toml"
359359
perl -i -pe 's/^version = "[^"]*"/version = "'"$VERSION"'"/ && ($done=1) unless $done' Cargo.toml
360360
grep '^version' Cargo.toml | head -1
361361
362362
- name: Build release binaries
363-
working-directory: codex-rs
363+
working-directory: nori-rs
364364
run: |
365365
cargo build --release --target ${{ matrix.target }} -p nori-cli
366366
@@ -377,9 +377,9 @@ jobs:
377377
378378
# Copy the main binary
379379
if [[ "$RUNNER_OS" == "Windows" ]]; then
380-
cp codex-rs/target/$TARGET/release/nori.exe artifacts/vendor/$TARGET/nori/nori.exe
380+
cp nori-rs/target/$TARGET/release/nori.exe artifacts/vendor/$TARGET/nori/nori.exe
381381
else
382-
cp codex-rs/target/$TARGET/release/nori artifacts/vendor/$TARGET/nori/nori
382+
cp nori-rs/target/$TARGET/release/nori artifacts/vendor/$TARGET/nori/nori
383383
chmod +x artifacts/vendor/$TARGET/nori/nori
384384
fi
385385
@@ -527,7 +527,7 @@ jobs:
527527
run: |
528528
VERSION="${{ needs.validate.outputs.version }}"
529529
TAG_NAME="${{ needs.validate.outputs.tag_name }}"
530-
CARGO_TOML_PATH="codex-rs/Cargo.toml"
530+
CARGO_TOML_PATH="nori-rs/Cargo.toml"
531531
532532
echo "Creating synthetic commit for version $VERSION"
533533

.github/workflows/rust-ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
timeout-minutes: 30
1212
defaults:
1313
run:
14-
working-directory: codex-rs
14+
working-directory: nori-rs
1515
env:
1616
CARGO_INCREMENTAL: "0"
1717
# Speed up repeated builds across CI runs by caching compiled objects.
@@ -60,8 +60,8 @@ jobs:
6060
shell: bash
6161
run: |
6262
set -euo pipefail
63-
echo "hash=${{ hashFiles('codex-rs/Cargo.lock') }}" >> "$GITHUB_OUTPUT"
64-
echo "toolchain_hash=${{ hashFiles('codex-rs/rust-toolchain.toml') }}" >> "$GITHUB_OUTPUT"
63+
echo "hash=${{ hashFiles('nori-rs/Cargo.lock') }}" >> "$GITHUB_OUTPUT"
64+
echo "toolchain_hash=${{ hashFiles('nori-rs/rust-toolchain.toml') }}" >> "$GITHUB_OUTPUT"
6565
6666
# Cache cargo home directory (registry, git deps, etc.)
6767
- name: Restore cargo home cache
@@ -129,10 +129,10 @@ jobs:
129129
cargo build -p nori-cli --profile ci-test --target ${{ matrix.target }}
130130
- name: cargo test nori
131131
env:
132-
MOCK_ACP_AGENT_BIN: ${{ github.workspace }}/codex-rs/target/mock-acp-out/mock_acp_agent
132+
MOCK_ACP_AGENT_BIN: ${{ github.workspace }}/nori-rs/target/mock-acp-out/mock_acp_agent
133133
run: |
134134
cargo test --profile ci-test --target ${{ matrix.target }} --package tui-pty-e2e
135-
cargo test --profile ci-test --target ${{ matrix.target }} --package codex-acp
135+
cargo test --profile ci-test --target ${{ matrix.target }} --package nori-acp
136136
cargo test --profile ci-test --target ${{ matrix.target }} --package nori-tui
137137
cargo test --profile ci-test --target ${{ matrix.target }} --package nori-cli
138138
cargo test --profile ci-test --target ${{ matrix.target }} --package codex-protocol

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ CHANGELOG.ignore.md
9797
# git worktrees
9898
.worktree/
9999
.worktrees/
100-
/codex-rs/tui/target/
100+
/nori-rs/tui/target/
101101
/target
102102

103103
# Local code/doc references for ACP work

AGENTS.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
We only care about the ACP backend and the code that compiles into the nori bin. We do not care about the default codex backend or the code that compiles into the codex bin. Make sure all changes and responses are aligned to this critical fact. For example, if I ask 'add notifications to the cli', you should assume I mean 'add notification support to the ACP backend for the nori cli'.
44

5-
# Rust/codex-rs
5+
# Rust/nori-rs
66

7-
In the codex-rs folder where the rust code lives:
7+
In the nori-rs folder where the rust code lives:
88

99
- Crate names are prefixed with `codex-`. For example, the `core` folder's crate is named `codex-core`
1010
- When using format! and you can inline variables into {}, always do that.
@@ -23,21 +23,21 @@ In the codex-rs folder where the rust code lives:
2323
- Prefer adding new modules instead of growing existing ones.
2424
- Target Rust modules under 500 LoC, excluding tests.
2525
- If a file exceeds roughly 800 LoC, add new functionality in a new module instead of extending the existing file unless there is a strong documented reason not to.
26-
- This rule applies especially to high-touch files such as `codex-rs/tui/src/app.rs`, `codex-rs/tui/src/bottom_pane/chat_composer.rs`, `codex-rs/tui/src/bottom_pane/footer.rs`, `codex-rs/tui/src/chatwidget.rs`, `codex-rs/tui/src/bottom_pane/mod.rs`, and similarly central orchestration modules.
26+
- This rule applies especially to high-touch files such as `nori-rs/tui/src/app.rs`, `nori-rs/tui/src/bottom_pane/chat_composer.rs`, `nori-rs/tui/src/bottom_pane/footer.rs`, `nori-rs/tui/src/chatwidget.rs`, `nori-rs/tui/src/bottom_pane/mod.rs`, and similarly central orchestration modules.
2727
- When extracting code from a large module, move the related tests and module/type docs toward the new implementation so the invariants stay close to the code that owns them.
2828
- When running Rust commands (e.g. `just fix` or `cargo test`) be patient and never try to kill them using the PID. Rust lock contention can make execution slow; this is expected.
2929

30-
Run `just fmt` (in `codex-rs` directory) automatically after you have finished making Rust code changes; do not ask for approval to run it. Additionally, run the tests:
30+
Run `just fmt` (in `nori-rs` directory) automatically after you have finished making Rust code changes; do not ask for approval to run it. Additionally, run the tests:
3131

32-
1. Run the test for the specific project that was changed. For example, if changes were made in `codex-rs/tui`, run `cargo test -p nori-tui`.
32+
1. Run the test for the specific project that was changed. For example, if changes were made in `nori-rs/tui`, run `cargo test -p nori-tui`.
3333
2. Once those pass, if any changes were made in common, core, or protocol, run the complete test suite with `cargo test`. Avoid `--all-features` for routine local runs because it expands the build matrix and can significantly increase `target/` disk usage; use it only when you specifically need full feature coverage.
3434
3. If any changes were made in tui, cli, or acp, run `cargo build --bin nori && cargo test -p tui-pty-e2e`. The E2E tests require the `nori` binary (from the `cli` crate), not `nori-tui`.
3535

36-
Before finalizing a change to `codex-rs`, run `just fix -p <project>` (in `codex-rs` directory) to fix any linter issues in the code. Prefer scoping with `-p` to avoid slow workspace‑wide Clippy builds; only run `just fix` without `-p` if you changed shared crates. Do not re-run tests after running `fix` or `fmt`.
36+
Before finalizing a change to `nori-rs`, run `just fix -p <project>` (in `nori-rs` directory) to fix any linter issues in the code. Prefer scoping with `-p` to avoid slow workspace‑wide Clippy builds; only run `just fix` without `-p` if you changed shared crates. Do not re-run tests after running `fix` or `fmt`.
3737

3838
## TUI style conventions
3939

40-
See `codex-rs/tui/styles.md`.
40+
See `nori-rs/tui/styles.md`.
4141

4242
## TUI code conventions
4343

@@ -62,7 +62,7 @@ See `codex-rs/tui/styles.md`.
6262

6363
### Snapshot tests
6464

65-
This repo uses snapshot tests (via `insta`), especially in `codex-rs/tui`, to validate rendered output.
65+
This repo uses snapshot tests (via `insta`), especially in `nori-rs/tui`, to validate rendered output.
6666

6767
**Requirement:** Any change that affects user-visible UI (including adding new UI) must include corresponding `insta` snapshot coverage (add a new snapshot test if one doesn't exist yet, or update the existing snapshot). Review and accept snapshot updates as part of the PR so UI impact is easy to review and future diffs stay visual.
6868

@@ -114,13 +114,13 @@ below. Choose the option that matches the area of the codebase you changed.
114114

115115
### Option 1: Build and Drive the TUI
116116

117-
**When to use:** Any change to `codex-rs/tui/`, `codex-rs/cli/`, or `codex-rs/acp/` crates. Also consider running this for changes to shared crates (`core/`, `common/`, `protocol/`) that affect TUI behavior.
117+
**When to use:** Any change to `nori-rs/tui/`, `nori-rs/cli/`, or `nori-rs/acp/` crates. Also consider running this for changes to shared crates (`core/`, `common/`, `protocol/`) that affect TUI behavior.
118118

119119
**Skill:** `tui-puppeteering-with-tmux`
120120

121121
**Steps:**
122122

123-
Run all steps from the `codex-rs/` directory.
123+
Run all steps from the `nori-rs/` directory.
124124

125125
1. Build the `nori` binary: `cargo build --bin nori`
126126
2. Ensure `elizacp` is installed: `which elizacp || cargo install --locked elizacp`

codex-rs/.github/workflows/cargo-audit.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)