Skip to content

Commit 8573eae

Browse files
ericjutacodex
andcommitted
docs: split fork intent from release notes
Separate the fork-rationale doc from the public release and legal guidance, and surface both from the root README. Co-authored-by: Codex <noreply@openai.com>
1 parent 7637de8 commit 8573eae

4 files changed

Lines changed: 183 additions & 114 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ You can also use Codex with an API key, but this requires [additional setup](htt
5656
- [**Contributing**](./docs/contributing.md)
5757
- [**Installing & building**](./docs/install.md)
5858
- [**Fork Intent**](./docs/fork-intent.md)
59+
- [**Public Release Notes**](./docs/public-release-notes.md)
5960
- [**Open source fund**](./docs/open-source-fund.md)
6061

6162
This repository is licensed under the [Apache-2.0 License](LICENSE). See

docs/fork-intent.md

Lines changed: 63 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,65 @@
1-
## Public Release Notes
2-
3-
This document records the current licensing and release posture for making the
4-
repository public and for shipping public release artifacts.
5-
6-
Current intent: this is a publicly available source repository. Official public
7-
Linux binary releases are not currently provided by this document.
8-
9-
## Scope
10-
11-
There are two separate compliance questions:
12-
13-
1. Can the source repository be public?
14-
2. Can we distribute public binaries built from this repository?
15-
16-
The answer to the first is mostly a documentation and attribution question. The
17-
answer to the second also depends on what third-party code is compiled into the
18-
released artifacts.
19-
20-
## Repository Authored Code
21-
22-
Repository-authored code is licensed under [Apache-2.0](../LICENSE), unless a
23-
particular file or bundled third-party subtree states otherwise.
24-
25-
The root [NOTICE](../NOTICE) file and [license.md](./license.md) document the
26-
non-Apache material currently kept in-tree.
27-
28-
## Bundled Third-Party Material
29-
30-
The repository currently includes the following notable third-party materials:
31-
32-
- Ratatui-derived files in `codex-rs/tui/src/custom_terminal.rs` and
33-
`codex-rs/tui_app_server/src/custom_terminal.rs`, with inline MIT notices.
34-
- WezTerm-derived Windows PTY files in `codex-rs/utils/pty/src/win/`, with
35-
inline MIT notices and local-modification notes.
36-
- A bundled Meriyah parser asset at
37-
`codex-rs/core/src/tools/js_repl/meriyah.umd.min.js`, with its license kept
38-
at `third_party/meriyah/LICENSE`.
39-
- A vendored bubblewrap source tree at `codex-rs/vendor/bubblewrap`, under
40-
`LGPL-2.0-or-later`.
41-
42-
## Source Repository Publication
43-
44-
For a public source repository, the baseline requirements are:
45-
46-
- Keep the root `LICENSE` file.
47-
- Keep the root `NOTICE` file accurate when new bundled third-party material is
48-
added or removed.
49-
- Preserve inline notices on copied or derived files.
50-
- Keep bundled third-party license texts in-tree when referenced by shipped
51-
assets.
52-
- Continue running `cargo deny check licenses` for the Rust workspace.
53-
54-
This repository currently meets that baseline more cleanly than before, but it
55-
still requires release discipline when third-party code is updated.
1+
# Fork Intent
2+
3+
This repository is a public fork of
4+
[openai/codex](https://github.com/openai/codex).
5+
6+
The intent of this fork is not to rename or replace the upstream project. The
7+
intent is to keep a Codex-compatible fork while adapting the runtime to use
8+
`agentmemory` as the primary long-term memory backend, expand the public hook
9+
surface toward Claude-style lifecycle parity, keep the memory UX coherent
10+
across both TUIs, and trim hosted CI and release machinery to the lanes this
11+
fork actually needs.
12+
13+
This document explains why this fork exists and which parts of the tree changed
14+
to support that goal.
15+
16+
For the release and legal posture for making the repository public and for
17+
shipping public release artifacts, see
18+
[`docs/public-release-notes.md`](./public-release-notes.md).
19+
20+
## Fork Goals
21+
22+
1. Make `agentmemory` the authoritative memory engine instead of keeping two
23+
competing long-term memory systems.
24+
2. Expose a runtime memory surface that is coherent for both humans and the
25+
assistant across `tui` and `tui_app_server`.
26+
3. Move Codex hooks closer to Claude Code's documented lifecycle model so
27+
existing hook setups port with fewer custom patches.
28+
4. Keep the fork operationally legible by retaining only the CI, docs, and
29+
release machinery that still matters here.
30+
5. Keep provenance, licensing, and release constraints explicit rather than
31+
burying fork-specific decisions in commit history.
32+
33+
## Change Map
34+
35+
| Area | Intent | Key files |
36+
|---|---|---|
37+
| Memory backend replacement | Make `agentmemory` the primary long-term memory engine and bypass native Codex memory generation when that backend is selected. | [`docs/agentmemory-codex-memory-replacement-spec.md`](./agentmemory-codex-memory-replacement-spec.md), [`../codex-rs/core/src/agentmemory/mod.rs`](../codex-rs/core/src/agentmemory/mod.rs), [`../codex-rs/core/src/codex.rs`](../codex-rs/core/src/codex.rs), [`../codex-rs/core/src/memories/phase2.rs`](../codex-rs/core/src/memories/phase2.rs), [`../codex-rs/core/src/memories/tests.rs`](../codex-rs/core/src/memories/tests.rs) |
38+
| Runtime memory surface and UX | Keep memory recall/update/drop visible and coherent across both TUIs, with assistant-triggered recall routed through the same backend semantics. | [`../codex-rs/docs/agentmemory_runtime_surface_spec.md`](../codex-rs/docs/agentmemory_runtime_surface_spec.md), [`../codex-rs/docs/agentmemory_followup_spec.md`](../codex-rs/docs/agentmemory_followup_spec.md), [`../codex-rs/tui/src/chatwidget.rs`](../codex-rs/tui/src/chatwidget.rs), [`../codex-rs/tui/src/bottom_pane/footer.rs`](../codex-rs/tui/src/bottom_pane/footer.rs), [`../codex-rs/tui_app_server/src/chatwidget.rs`](../codex-rs/tui_app_server/src/chatwidget.rs), [`../codex-rs/tui_app_server/src/bottom_pane/footer.rs`](../codex-rs/tui_app_server/src/bottom_pane/footer.rs) |
39+
| Hook parity and lifecycle capture | Expand the public `hooks.json` surface so Claude-oriented hook configurations map onto Codex with fewer surprises and clearer runtime contracts. | [`./claude-code-hooks-parity.md`](./claude-code-hooks-parity.md), [`../codex-rs/hooks/README.md`](../codex-rs/hooks/README.md), [`../codex-rs/hooks/src/engine/config.rs`](../codex-rs/hooks/src/engine/config.rs), [`../codex-rs/hooks/src/engine/discovery.rs`](../codex-rs/hooks/src/engine/discovery.rs), [`../codex-rs/hooks/src/engine/dispatcher.rs`](../codex-rs/hooks/src/engine/dispatcher.rs), [`../codex-rs/hooks/src/schema.rs`](../codex-rs/hooks/src/schema.rs) |
40+
| Fork-scoped CI and release posture | Remove or narrow upstream maintainer workflows that do not add value in this fork, while keeping enough CI and packaging signal for the paths still used here. | [`../codex-rs/docs/github_actions_private_fork_spec.md`](../codex-rs/docs/github_actions_private_fork_spec.md), [`../.github/workflows/rust-ci.yml`](../.github/workflows/rust-ci.yml), [`../.github/workflows/cargo-deny.yml`](../.github/workflows/cargo-deny.yml), [`../.github/workflows/ci.bazelrc`](../.github/workflows/ci.bazelrc), [`../.github/workflows/v8-ci.bazelrc`](../.github/workflows/v8-ci.bazelrc), [`../scripts/stage_npm_packages.py`](../scripts/stage_npm_packages.py) |
41+
| Public source and licensing clarity | Keep the fork publishable as source, preserve third-party notices, and document the remaining constraints around public binary distribution. | [`../README.md`](../README.md), [`./license.md`](./license.md), [`../NOTICE`](../NOTICE), [`../LICENSE`](../LICENSE) |
42+
43+
## What This Fork Is Not
44+
45+
- It is not a claim to authorship over upstream `openai/codex`.
46+
- It is not a separate product with a new license or package identity.
47+
- It is not a promise that upstream release automation or contributor-governance
48+
workflows remain enabled here.
49+
- It is not a statement that this repository currently provides official public
50+
Linux binaries.
51+
52+
## Related Docs
53+
54+
- [`README.md`](../README.md)
55+
- [`docs/agentmemory-codex-memory-replacement-spec.md`](./agentmemory-codex-memory-replacement-spec.md)
56+
- [`docs/claude-code-hooks-parity.md`](./claude-code-hooks-parity.md)
57+
- [`codex-rs/docs/agentmemory_runtime_surface_spec.md`](../codex-rs/docs/agentmemory_runtime_surface_spec.md)
58+
- [`codex-rs/docs/github_actions_private_fork_spec.md`](../codex-rs/docs/github_actions_private_fork_spec.md)
59+
- [`docs/public-release-notes.md`](./public-release-notes.md)
60+
- [`docs/license.md`](./license.md)
5661

57-
## Binary Distribution
58-
59-
Binary distribution needs a stricter release gate than source publication.
60-
Public binaries should ship with:
61-
62-
- `LICENSE`
63-
- `NOTICE`
64-
- any third-party license texts required by bundled or compiled components
65-
- release notes that explain material third-party inclusions when relevant
66-
67-
If a release artifact includes code under obligations beyond simple attribution,
68-
the release process must explicitly account for that component.
69-
70-
## Vendored Bubblewrap
71-
72-
This is the main component that needs product and legal clarity before broad
73-
public Linux binary distribution.
74-
75-
Current state:
76-
77-
- `codex-rs/linux-sandbox/build.rs` compiles vendored bubblewrap C sources on
78-
Linux targets.
79-
- `codex-rs/linux-sandbox/src/vendored_bwrap.rs` exposes that compiled entry
80-
point for runtime use.
81-
- `codex-rs/linux-sandbox/README.md` documents that the helper prefers system
82-
`/usr/bin/bwrap`, but falls back to the vendored build path when needed.
83-
84-
That means vendored bubblewrap is not just present in source form; it can also
85-
be part of Linux builds and therefore affects binary-distribution compliance.
86-
87-
## Recommendation
88-
89-
Default recommendation: do not ship public Linux release binaries that rely on
90-
the vendored bubblewrap fallback until that lane has an explicit legal and
91-
release-process owner.
92-
93-
Preferred short-term approach:
94-
95-
- Make public Linux release builds rely on system `bwrap`, or otherwise disable
96-
the vendored fallback in distributed binaries.
97-
- Keep the vendored bubblewrap tree in source if it is still useful for local
98-
development, CI, or non-public builds.
99-
- Revisit vendored-bubblewrap distribution only with a dedicated compliance
100-
review.
101-
102-
If the project later decides to ship vendored bubblewrap in public binaries, the
103-
release process should be updated deliberately rather than relying on the source
104-
repository notices alone.
105-
106-
## Working Rule
107-
108-
Until a separate decision is recorded, treat these as the default release rules:
62+
## Public Release Notes
10963

110-
- Public source repo: allowed with current notices and license files kept up to
111-
date.
112-
- Public Linux binaries using vendored bubblewrap: not allowed by default.
113-
- Public Linux binaries using system bubblewrap only: preferred interim path,
114-
subject to normal release review.
115-
- No official public Linux release build pipeline is assumed by this document.
64+
The release and legal guidance now lives in
65+
[`docs/public-release-notes.md`](./public-release-notes.md).

docs/license.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The root [NOTICE](../NOTICE) file summarizes the bundled third-party materials
2626
that currently require explicit attribution in this source tree.
2727

2828
For release and publication guidance, including the current recommendation for
29-
vendored bubblewrap, see [fork-intent.md](./fork-intent.md).
29+
vendored bubblewrap, see [public-release-notes.md](./public-release-notes.md).
3030

3131
## Package Metadata
3232

docs/public-release-notes.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Public Release Notes
2+
3+
This document records the current licensing and release posture for making the
4+
repository public and for shipping public release artifacts.
5+
6+
For the fork-rationale document that explains why this repository diverges from
7+
upstream `openai/codex`, see [fork-intent.md](./fork-intent.md).
8+
9+
Current intent: this is a publicly available source repository. Official public
10+
Linux binary releases are not currently provided by this document.
11+
12+
## Scope
13+
14+
There are two separate compliance questions:
15+
16+
1. Can the source repository be public?
17+
2. Can we distribute public binaries built from this repository?
18+
19+
The answer to the first is mostly a documentation and attribution question. The
20+
answer to the second also depends on what third-party code is compiled into the
21+
released artifacts.
22+
23+
## Repository Authored Code
24+
25+
Repository-authored code is licensed under [Apache-2.0](../LICENSE), unless a
26+
particular file or bundled third-party subtree states otherwise.
27+
28+
The root [NOTICE](../NOTICE) file and [license.md](./license.md) document the
29+
non-Apache material currently kept in-tree.
30+
31+
## Bundled Third-Party Material
32+
33+
The repository currently includes the following notable third-party materials:
34+
35+
- Ratatui-derived files in `codex-rs/tui/src/custom_terminal.rs` and
36+
`codex-rs/tui_app_server/src/custom_terminal.rs`, with inline MIT notices.
37+
- WezTerm-derived Windows PTY files in `codex-rs/utils/pty/src/win/`, with
38+
inline MIT notices and local-modification notes.
39+
- A bundled Meriyah parser asset at
40+
`codex-rs/core/src/tools/js_repl/meriyah.umd.min.js`, with its license kept
41+
at `third_party/meriyah/LICENSE`.
42+
- A vendored bubblewrap source tree at `codex-rs/vendor/bubblewrap`, under
43+
`LGPL-2.0-or-later`.
44+
45+
## Source Repository Publication
46+
47+
For a public source repository, the baseline requirements are:
48+
49+
- Keep the root `LICENSE` file.
50+
- Keep the root `NOTICE` file accurate when new bundled third-party material is
51+
added or removed.
52+
- Preserve inline notices on copied or derived files.
53+
- Keep bundled third-party license texts in-tree when referenced by shipped
54+
assets.
55+
- Continue running `cargo deny check licenses` for the Rust workspace.
56+
57+
This repository currently meets that baseline more cleanly than before, but it
58+
still requires release discipline when third-party code is updated.
59+
60+
## Binary Distribution
61+
62+
Binary distribution needs a stricter release gate than source publication.
63+
Public binaries should ship with:
64+
65+
- `LICENSE`
66+
- `NOTICE`
67+
- any third-party license texts required by bundled or compiled components
68+
- release notes that explain material third-party inclusions when relevant
69+
70+
If a release artifact includes code under obligations beyond simple attribution,
71+
the release process must explicitly account for that component.
72+
73+
## Vendored Bubblewrap
74+
75+
This is the main component that needs product and legal clarity before broad
76+
public Linux binary distribution.
77+
78+
Current state:
79+
80+
- `codex-rs/linux-sandbox/build.rs` compiles vendored bubblewrap C sources on
81+
Linux targets.
82+
- `codex-rs/linux-sandbox/src/vendored_bwrap.rs` exposes that compiled entry
83+
point for runtime use.
84+
- `codex-rs/linux-sandbox/README.md` documents that the helper prefers system
85+
`/usr/bin/bwrap`, but falls back to the vendored build path when needed.
86+
87+
That means vendored bubblewrap is not just present in source form; it can also
88+
be part of Linux builds and therefore affects binary-distribution compliance.
89+
90+
## Recommendation
91+
92+
Default recommendation: do not ship public Linux release binaries that rely on
93+
the vendored bubblewrap fallback until that lane has an explicit legal and
94+
release-process owner.
95+
96+
Preferred short-term approach:
97+
98+
- Make public Linux release builds rely on system `bwrap`, or otherwise disable
99+
the vendored fallback in distributed binaries.
100+
- Keep the vendored bubblewrap tree in source if it is still useful for local
101+
development, CI, or non-public builds.
102+
- Revisit vendored-bubblewrap distribution only with a dedicated compliance
103+
review.
104+
105+
If the project later decides to ship vendored bubblewrap in public binaries, the
106+
release process should be updated deliberately rather than relying on the source
107+
repository notices alone.
108+
109+
## Working Rule
110+
111+
Until a separate decision is recorded, treat these as the default release rules:
112+
113+
- Public source repo: allowed with current notices and license files kept up to
114+
date.
115+
- Public Linux binaries using vendored bubblewrap: not allowed by default.
116+
- Public Linux binaries using system bubblewrap only: preferred interim path,
117+
subject to normal release review.
118+
- No official public Linux release build pipeline is assumed by this document.

0 commit comments

Comments
 (0)