Skip to content

Commit 63a4157

Browse files
authored
Merge pull request #33 from OnlineChefGroep/chore/fork-identity
chore: OnlineChefGroep fork identity (package URLs, ROADMAP, release model)
2 parents 9755369 + 41e9e70 commit 63a4157

51 files changed

Lines changed: 244 additions & 159 deletions

Some content is hidden

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

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
blank_issues_enabled: false
22
contact_links:
3-
- name: Report a security vulnerability (private)
4-
url: https://github.com/lidge-jun/opencodex/security/advisories/new
5-
about: Report undisclosed vulnerabilities privately to the maintainers. Do not open a public issue.
63
- name: Security policy
7-
url: https://github.com/lidge-jun/opencodex/blob/main/SECURITY.md
4+
url: https://github.com/OnlineChefGroep/opencodex/blob/main/SECURITY.md
85
about: Read the supported-version and reporting guidance before sharing security-sensitive details.
96
- name: Contributing guide
10-
url: https://opencodex.me/contributing/
7+
url: https://github.com/OnlineChefGroep/opencodex/blob/dev/CONTRIBUTING.md
118
about: Review setup, build, and verification guidance for contributors.

.github/ISSUE_TEMPLATE/documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ body:
2828
attributes:
2929
label: Documentation location
3030
description: Public documentation URL or repository path.
31-
placeholder: "https://opencodex.me/providers/ or docs/providers.md"
31+
placeholder: "https://github.com/OnlineChefGroep/opencodex or docs/providers.md"
3232
validations:
3333
required: true
3434

.github/scripts/issue-quality.test.cjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,7 @@ describe("validateIssue - documentation", () => {
10031003
"### Documentation problem type",
10041004
"Incorrect documentation",
10051005
"### Documentation location",
1006-
"https://lidge-jun.github.io/opencodex/providers/",
1006+
"https://github.com/OnlineChefGroep/opencodex",
10071007
"### What is wrong or missing?",
10081008
"The page says kimi uses /v1/chat/completions but it actually uses /v1/responses.",
10091009
"### What should the documentation explain instead?",
@@ -1164,7 +1164,7 @@ describe("shouldReopen", () => {
11641164
state: "closed",
11651165
closed_at: "2026-07-20T10:00:00Z",
11661166
state_reason: "not_planned",
1167-
closed_by: "lidge-jun",
1167+
closed_by: "OnlineChefGroep",
11681168
};
11691169
assert.equal(shouldReopen(baseBotState, issue, false), false);
11701170
});

.github/workflows/enforce-issue-quality.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1040,7 +1040,7 @@ jobs:
10401040
"",
10411041
guidanceList,
10421042
"",
1043-
"See the [Contributing guide](https://lidge-jun.github.io/opencodex/contributing/) for details.",
1043+
"See the [README](https://github.com/OnlineChefGroep/opencodex) for details.",
10441044
"",
10451045
"Once the report passes the automated checks, it will be reopened automatically unless a maintainer has changed its state.",
10461046
].join("\n"));

.github/workflows/enforce-pr-target.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
"",
212212
`This pull request currently targets ${inlineCode(pr.base.ref)}, but pull requests must target one of ${ALLOWED_BASES.map(inlineCode).join(" or ")}.`,
213213
"",
214-
`@${pr.user.login} Please retarget this PR to ${inlineCode(DEFAULT_BASE)}. All contributions go to ${inlineCode(DEFAULT_BASE)}; \`main\` receives only release promotions. See our [Contributing guide](https://lidge-jun.github.io/opencodex/contributing/) for details. Thanks! 🙏`
214+
`@${pr.user.login} Please retarget this PR to ${inlineCode(DEFAULT_BASE)}. All contributions go to ${inlineCode(DEFAULT_BASE)}; \`main\` receives only release promotions. See our [Contributing guide](https://github.com/OnlineChefGroep/opencodex/blob/dev/CONTRIBUTING.md) for details. Thanks! 🙏`
215215
);
216216
}
217217

.github/workflows/release.yml

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -111,32 +111,38 @@ jobs:
111111
run: |
112112
set -euo pipefail
113113
114+
# All releases run from main. Stable versions (no pre-release suffix) get dist-tag "latest".
115+
# Pre-release versions (e.g. 1.0.0-alpha.1) get dist-tag "preview".
114116
case "$GITHUB_REF" in
115117
refs/heads/main)
116-
expected_tag="latest"
117118
if [[ "$RELEASE_VERSION" == *-* ]]; then
118-
echo "::error::main releases must use a stable semver version; got ${RELEASE_VERSION}"
119-
exit 1
120-
fi
121-
;;
122-
refs/heads/preview)
123-
expected_tag="preview"
124-
if [[ "$RELEASE_VERSION" != *-preview.* ]]; then
125-
echo "::error::preview releases must use a preview prerelease version; got ${RELEASE_VERSION}"
126-
exit 1
119+
# The only supported prerelease shape is X.Y.Z-preview.N: the update
120+
# client (src/update/notify.ts, bin/ocx.mjs) and the release-notes
121+
# helper both key off that exact suffix, so an -alpha/-beta/-rc build
122+
# would publish to preview and then never be seen as an update.
123+
if [[ ! "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+-preview\.[0-9]+$ ]]; then
124+
echo "::error::Pre-release versions must be X.Y.Z-preview.N (got ${RELEASE_VERSION})"
125+
exit 1
126+
fi
127+
# Pre-release version — must use "preview" dist-tag
128+
if [ "$NPM_DIST_TAG" != "preview" ]; then
129+
echo "::error::Pre-release versions (${RELEASE_VERSION}) must use dist-tag 'preview', got '${NPM_DIST_TAG}'"
130+
exit 1
131+
fi
132+
else
133+
# Stable version — must use "latest" dist-tag
134+
if [ "$NPM_DIST_TAG" != "latest" ]; then
135+
echo "::error::Stable releases (${RELEASE_VERSION}) must use dist-tag 'latest', got '${NPM_DIST_TAG}'"
136+
exit 1
137+
fi
127138
fi
128139
;;
129140
*)
130-
echo "::error::Release must run from main or preview; got ${GITHUB_REF}"
141+
echo "::error::Release must run from main; got ${GITHUB_REF}"
131142
exit 1
132143
;;
133144
esac
134145
135-
if [ "$NPM_DIST_TAG" != "$expected_tag" ]; then
136-
echo "::error::${GITHUB_REF#refs/heads/} releases must publish with npm dist-tag '${expected_tag}', got '${NPM_DIST_TAG}'"
137-
exit 1
138-
fi
139-
140146
ci_url="$(
141147
gh run list \
142148
--workflow ci.yml \
@@ -306,7 +312,7 @@ jobs:
306312
# Preview builds must be marked prerelease so GitHub "latest" keeps pointing at the
307313
# stable channel (matching npm dist-tags); see issue #64.
308314
prerelease_flag=""
309-
if [[ "$RELEASE_VERSION" == *-preview.* ]]; then
315+
if [[ "$RELEASE_VERSION" == *-* ]]; then
310316
prerelease_flag="--prerelease"
311317
fi
312318
@@ -329,7 +335,10 @@ jobs:
329335
# advance the baseline to a later preview that is missing/empty — that would
330336
# drop the gap between the last carried preview and that later tag.
331337
notes_range_start="$previous_tag"
332-
if [[ "$RELEASE_VERSION" != *-preview.* ]]; then
338+
# Same hyphen predicate as the dist-tag gate and prerelease_flag above: any
339+
# pre-release suffix ships on the preview channel, so only truly stable
340+
# versions take the carry path.
341+
if [[ "$RELEASE_VERSION" != *-* ]]; then
333342
preview_carry_tags="$(
334343
git tag --list "v${RELEASE_VERSION}-preview.*" |
335344
bun scripts/release-notes.ts matching-preview-tags "$RELEASE_VERSION"

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Thanks for helping with opencodex.
1515
- `preview` — prerelease train.
1616

1717
The `dev2-go` Go native-port line has been retired. Its history is archived at
18-
[lidge-jun/opencodex-go-archive](https://github.com/lidge-jun/opencodex-go-archive),
18+
[OnlineChefGroep/opencodex-go-archive](https://github.com/OnlineChefGroep/opencodex-go-archive),
1919
and everything now goes to `dev`. See [`MAINTAINERS.md`](./MAINTAINERS.md) for
2020
the reasoning.
2121

MAINTAINERS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ defects. Bun-native TypeScript on `dev` is the single runtime line again.
6060

6161
- The branch has been deleted from this repository. Its full history is
6262
published at
63-
[lidge-jun/opencodex-go-archive](https://github.com/lidge-jun/opencodex-go-archive),
63+
[OnlineChefGroep/opencodex-go-archive](https://github.com/OnlineChefGroep/opencodex-go-archive),
6464
and its final tip stays reachable here as the `archive/dev2-go` tag.
6565
- A merge into `dev` carries no port obligation. The nine open `needs-go-port`
6666
issues (#661, #663, #666, #670, #674, #678, #680, #685, #703) were closed as

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Two commands, and every one of them runs any LLM you point it at.</p>
55
<p align="center">
66
<a href="https://x.com/claudeebum"><img src="https://img.shields.io/badge/%40claudeebum-000000?logo=x&logoColor=white" alt="Follow @claudeebum on X"></a>
77
<a href="https://www.npmjs.com/package/@bitkyc08/opencodex"><img src="https://img.shields.io/npm/v/@bitkyc08/opencodex?color=cb3837&label=npm&logo=npm" alt="npm version"></a>
8-
<a href="https://github.com/lidge-jun/opencodex/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@bitkyc08/opencodex?color=blue" alt="license"></a>
8+
<a href="https://github.com/OnlineChefGroep/opencodex/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@bitkyc08/opencodex?color=blue" alt="license"></a>
99
<img src="https://img.shields.io/node/v/@bitkyc08/opencodex?logo=node.js&label=node" alt="node version">
1010
</p>
1111

@@ -263,7 +263,7 @@ next Codex session. opencodex keeps these behaviors:
263263
- **Log in once, skip the API key.** OAuth support for xAI, Anthropic, and Kimi means you can authenticate with your existing account. Tokens auto-refresh. Or forward your `codex login`, paste an API key, or use `${ENV_VAR}` references — your call.
264264
- **Works everywhere Codex does.** Injects into Codex CLI, TUI, App, and SDK automatically. Routed models show up in Codex's model picker just like native ones.
265265
- **History-safe injection.** On local installs the proxy points Codex's own built-in `openai` provider at itself via a single `openai_base_url` line — new threads keep their native provider tag, so ongoing chat history is never remapped and an unclean shutdown can't hide it. (Threads re-tagged by older versions are migrated back once on the first start; remote/LAN binds use a dedicated provider entry instead, since they need an API-key header.)
266-
- **Delegate to the right model.** Feature up to five routed or native models in Codex's subagent picker from the dashboard or config — route complex tasks to a reasoning model, fast tasks to a cheap one. On the v2 multi-agent surface (GPT-5.6 Sol/Terra) the proxy injects compact, schema-agnostic delegation guidance: an eligible preferred sub-agent model and effort (`injectionModel` / `injectionEffort`), the configured intersection of Codex's picker-visible, v2-compatible, priority-sorted first five with available effort ladders, and the `fork_turns` rules that let cross-model `spawn_agent` calls apply their overrides. Known limitation: when a native parent spawns a routed child, the task body can currently arrive backend-encrypted and be lost ([#92](https://github.com/lidge-jun/opencodex/issues/92)) — use the v1 surface for reliable cross-provider delegation. Want your own wording? Set `injectionPrompt` with `{{model}}` / `{{effort}}` / `{{roster}}` placeholders.
266+
- **Delegate to the right model.** Feature up to five routed or native models in Codex's subagent picker from the dashboard or config — route complex tasks to a reasoning model, fast tasks to a cheap one. On the v2 multi-agent surface (GPT-5.6 Sol/Terra) the proxy injects compact, schema-agnostic delegation guidance: an eligible preferred sub-agent model and effort (`injectionModel` / `injectionEffort`), the configured intersection of Codex's picker-visible, v2-compatible, priority-sorted first five with available effort ladders, and the `fork_turns` rules that let cross-model `spawn_agent` calls apply their overrides. Known limitation: when a native parent spawns a routed child, the task body can currently arrive backend-encrypted and be lost ([#92](https://github.com/OnlineChefGroep/opencodex/issues/92)) — use the v1 surface for reliable cross-provider delegation. Want your own wording? Set `injectionPrompt` with `{{model}}` / `{{effort}}` / `{{roster}}` placeholders.
267267
- **Prepare for preview-gated OpenAI rollouts.** GPT-5.6 Sol/Terra/Luna entries preserve the upstream effort ladders. Direct/Multi use the 372k Codex contract; OpenAI API and OpenRouter use 1.05M metadata when upstream access is available.
268268
- **Give any model superpowers.** Non-OpenAI models get real web search and image understanding via a `gpt-5.4-mini` sidecar over your ChatGPT login.
269269
- **Generate images natively.** Codex's standalone `image_gen` tool uses `POST /v1/images/generations` for generation and `POST /v1/images/edits` for edits; it is separate from the hosted Responses `image_generation` tool.
@@ -510,7 +510,7 @@ Maintainer source-of-truth notes live under [`structure/`](./structure). Histori
510510
Contributor setup lives in [`CONTRIBUTING.md`](./CONTRIBUTING.md), and security reporting guidance
511511
lives in [`SECURITY.md`](./SECURITY.md).
512512
Report undisclosed vulnerabilities privately through
513-
[GitHub private vulnerability reporting](https://github.com/lidge-jun/opencodex/security/advisories/new),
513+
[GitHub private vulnerability reporting](https://github.com/OnlineChefGroep/opencodex/security/advisories/new),
514514
not a public issue.
515515

516516
## Development
@@ -519,7 +519,7 @@ Source development requires the `bun` CLI on your `PATH`. This is separate from
519519
package's bundled Bun runtime, which is used only by installed `ocx` commands.
520520

521521
```bash
522-
git clone https://github.com/lidge-jun/opencodex.git
522+
git clone https://github.com/OnlineChefGroep/opencodex.git
523523
cd opencodex
524524
bun install
525525
bun run dev:proxy # start the proxy API in dev mode

ROADMAP.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Roadmap
2+
3+
Roadmap for [OnlineChefGroep/opencodex](https://github.com/OnlineChefGroep/opencodex).
4+
5+
## Vision
6+
7+
A fully self-sufficient fork with our own release cadence, feature set, and quality bar —
8+
no longer dependent on upstream decisions or timelines.
9+
10+
## Short term (done)
11+
12+
- [x] **Independent versioning** — fully detached from upstream, own semver scheme
13+
- [x] **All closed PRs merged** — Dutch GUI, Claude Desktop, combo/alias, cursor fixes, etc.
14+
- [x] **Enhanced CI** — CodeQL, dependabot, security audit, workflow linting
15+
- [x] **Release process**: main-only publishing via `.github/workflows/release.yml`
16+
and `scripts/release.ts`, with review and promotion policy in `MAINTAINERS.md`
17+
18+
## Near term (next)
19+
20+
- [ ] **First fork release (`2.7.43`)**: publish from `main` on npm dist-tag `latest`
21+
(prereleases use `X.Y.Z-preview.N` and ship on `preview`)
22+
- [ ] **Release documentation**: add `VERSIONING.md`, `RELEASE_PROCESS.md`, and
23+
`CHANGELOG.md` for the fork's release model
24+
- [ ] **Update READMEs** — ensure all translated READMEs (ko, zh, ru, ja) reflect fork status
25+
- [ ] **Clean up old tags** — remove stale upstream tags that don't point to our commits
26+
- [ ] **Dependency audit** — review and update all dependencies (gui + root)
27+
- [ ] **TypeScript strict mode** — enable `strict` in tsconfig and fix all violations
28+
29+
## Medium term
30+
31+
- [ ] **Custom provider: OnlineChef AI gateway** — first-party provider integration
32+
- [ ] **Performance benchmarks** — proxy latency regression tests in CI
33+
- [ ] **Improved documentation** — deploy docs to GitHub Pages for our fork
34+
- [ ] **Automated dependency upgrades** — Dependabot auto-merge for non-breaking updates
35+
- [ ] **Smoke test suite** — end-to-end tests that spin up the proxy and make real API calls
36+
37+
## Long term
38+
39+
- [ ] **Own GUI theme** — custom branding for the dashboard
40+
- [ ] **Plugin system** — third-party provider adapters
41+
- [ ] **Service mode improvements** — better systemd/launchd integration
42+
- [ ] **Multi-host fleet management** — centralized config across machines

0 commit comments

Comments
 (0)