|
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) |
56 | 61 |
|
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 |
109 | 63 |
|
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). |
0 commit comments