Skip to content

Commit bbded06

Browse files
author
Cody
committed
rebrand: second-pass comprehensive user-facing rebrand (coven-code)
- install.sh/install.ps1: full coven-code rebrand (APP, REPO, paths, help text) - npm/bin/coven-code: binary lookup, error messages rebranded - index.html: CLAURST→COVEN CODE, Rustle→Rune, Kuberwastaken→OpenCoven URLs - .gitignore: .claurst/ → .coven-code/ - .devcontainer: volume names and mount paths rebranded - .github/workflows: artifact names, user-agent, actor gate updated - src-rust/crates/cli: CLI help, system_prompt.txt, upgrade strings, build.rs - src-rust/crates/commands: named_commands, lib, stats — all user-visible strings - src-rust/crates/query: auth provider error messages - src-rust/crates/api: User-Agent headers, provider comments, URLs - src-rust/crates/core: tips.rs paths, skill_discovery cache dir, share_export template - src-rust/crates/tui: app.rs doc comments, lib.rs, rustle.rs doc comments - src-rust/crates/acp: server identity, registry-template agent.json - src-rust/crates/plugins: Cargo.toml description - AGENTS.md, COVEN.md: updated coven-code binary references - ATTRIBUTION.md: documented internal crate name boundary + full changes list Internal Rust crate names (claurst-core, claurst-tui, etc.) intentionally preserved — documented in ATTRIBUTION.md as merge-friendliness boundary. cargo check: PASSING
1 parent 0ddf0e4 commit bbded06

31 files changed

Lines changed: 9579 additions & 9553 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "claurst-rust",
2+
"name": "coven-code-rust",
33
"build": {
44
"dockerfile": "Dockerfile",
55
"context": ".."
@@ -18,9 +18,9 @@
1818
},
1919
"remoteUser": "vscode",
2020
"mounts": [
21-
"source=claurst-cargo-registry,target=/usr/local/cargo/registry,type=volume",
22-
"source=claurst-cargo-git,target=/usr/local/cargo/git,type=volume",
23-
"source=${localWorkspaceFolder}/.claurst,target=/home/vscode/.claurst,type=bind"
21+
"source=coven-code-cargo-registry,target=/usr/local/cargo/registry,type=volume",
22+
"source=coven-code-cargo-git,target=/usr/local/cargo/git,type=volume",
23+
"source=/.coven-code,target=/home/vscode/.coven-code,type=bind"
2424
],
2525
"remoteEnv": {
2626
"GNUPGHOME": "/home/vscode/.gnupg",

.github/workflows/auto-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ name: Auto Release (commit marker)
99
# ACP registry, commits the bump as github-actions[bot] with [skip ci],
1010
# then dispatches .github/workflows/release.yml.
1111
#
12-
# --patch (restricted to kuberwastaken)
12+
# --patch (restricted to OpenCoven maintainers)
1313
# Patch the currently-shipped release in place. Reads the version from
1414
# src-rust/Cargo.toml, builds a bullet from the commit subject + sha,
1515
# then dispatches .github/workflows/patch-release.yml with that bullet
@@ -180,7 +180,7 @@ jobs:
180180
# is not.
181181
auto-patch:
182182
runs-on: ubuntu-latest
183-
if: github.actor == 'kuberwastaken'
183+
if: github.actor == 'opencoven-bot'
184184

185185
steps:
186186
- name: Skip bot commits

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ refs/
1616

1717
# VSCode / unsolicited devcontainers mounts
1818
.vscode/
19-
.claurst/
19+
.coven-code/
2020

AGENTS.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Development Rules
22

3-
Agent-facing rules for working on Claurst. Mirrors and extends `src-rust/.claude/CLAUDE.md`; when the two disagree, the rule closer to the code wins.
3+
Agent-facing rules for working on Coven Code. Mirrors and extends `src-rust/.claude/CLAUDE.md`; when the two disagree, the rule closer to the code wins.
44

55
## Conversational Style
66

@@ -49,19 +49,19 @@ The ratatui frontend is sensitive to terminal size and key encoding. For repeata
4949
cargo build
5050

5151
# 80×24 session
52-
tmux new-session -d -s claurst-test -x 80 -y 24
53-
tmux send-keys -t claurst-test "./target/debug/claurst" Enter
52+
tmux new-session -d -s coven-code-test -x 80 -y 24
53+
tmux send-keys -t coven-code-test "./target/debug/coven-code" Enter
5454

5555
# Give it time to redraw, then capture
56-
sleep 2 && tmux capture-pane -t claurst-test -p
56+
sleep 2 && tmux capture-pane -t coven-code-test -p
5757

5858
# Drive input
59-
tmux send-keys -t claurst-test "your prompt here" Enter
60-
tmux send-keys -t claurst-test Escape
61-
tmux send-keys -t claurst-test C-o # ctrl+o
59+
tmux send-keys -t coven-code-test "your prompt here" Enter
60+
tmux send-keys -t coven-code-test Escape
61+
tmux send-keys -t coven-code-test C-o # ctrl+o
6262

6363
# Cleanup
64-
tmux kill-session -t claurst-test
64+
tmux kill-session -t coven-code-test
6565
```
6666

6767
On Windows hosts, prefer `cargo run -- --print "..."` against the headless path. The Windows console has known quirks with the kitty keyboard protocol — see `crates/tui` for the push/pop workaround.
@@ -116,7 +116,7 @@ If the provider uses an env var (e.g. `FOO_API_KEY`), wire it into the auth-stor
116116

117117
## Releasing
118118

119-
Claurst uses a **single workspace version** stamped across every surface (Cargo workspace, Cargo.lock entries for the 12 `claurst*` crates, `npm/package.json`, README badge, docs, ACP registry template). Versioning is forward-only — the release workflow refuses to ship a tag less than or equal to the highest existing tag.
119+
Coven Code uses a **single workspace version** stamped across every surface (Cargo workspace, Cargo.lock entries for the 12 `claurst*` crates (internal crate names, intentionally preserved), `npm/package.json`, README badge, docs, ACP registry template). Versioning is forward-only — the release workflow refuses to ship a tag less than or equal to the highest existing tag.
120120

121121
## **CRITICAL** Git Rules for Parallel Agents
122122

ATTRIBUTION.md

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,37 @@ The original Claurst license is preserved in full in `LICENSE.md`.
99

1010
- Product name rebranded to **Coven Code** (`coven-code` binary)
1111
- npm package renamed to `@opencoven/coven-code`
12-
- Data/cache directories changed from `claurst/``coven-code/`
12+
- Data/cache directories changed from `~/.claurst/``~/.coven-code/`
1313
- Environment variable prefix changed from `CLAURST_``COVEN_CODE_`
14-
- User-Agent strings updated
14+
- User-Agent strings updated to `coven-code/<version>`
1515
- System prompt identity updated to reflect OpenCoven fork
16-
- Repository and homepage URLs updated to reflect OpenCoven fork
16+
- Repository and homepage URLs updated to OpenCoven GitHub
17+
- Landing page (`index.html`), docs, and installer scripts rebranded
18+
- Mascot renamed from "Rustle" to "Rune" (doc comments; internal Rust identifiers `RustlePose`/`rustle_lines` intentionally preserved for merge-friendliness)
19+
- ACP server identity updated to `coven-code`
20+
- Share viewer URL updated to `opencoven.github.io/coven-codes/session/`
21+
- `CNAME` file removed (upstream pointed to `claurst.kuber.studio`)
22+
- `.gitignore` entry updated from `.claurst/` to `.coven-code/`
23+
- Devcontainer updated to `coven-code` volume names
24+
25+
## Internal Crate Name Boundary
26+
27+
The following Rust crate names are **intentionally preserved** from upstream:
28+
29+
- `claurst` (Cargo package name for the binary crate; binary output is `coven-code`)
30+
- `claurst-core`, `claurst-api`, `claurst-tui`, `claurst-tools`, `claurst-query`
31+
- `claurst-commands`, `claurst-mcp`, `claurst-bridge`, `claurst-buddy`
32+
- `claurst-plugins`, `claurst-acp`
33+
34+
Rationale: These names appear in `[package] name` fields and across dozens of
35+
`[dependencies]` sections in `Cargo.toml` files throughout the workspace. Renaming
36+
them would require updating every `use claurst_*` import and every `Cargo.toml`
37+
dependency reference — a high-risk bulk change with no user-visible benefit.
38+
This boundary makes `git merge upstream/main` low-friction.
39+
40+
If you fork this repo and want to do a full internal rename, start with
41+
`src-rust/Cargo.toml` workspace dependencies, then each crate's `[package] name`,
42+
then all `use claurst_*` imports across the codebase.
1743

1844
All original copyright notices, the GPL-3.0 license text, and upstream attribution
1945
remain intact and unmodified. Source code is available at:

COVEN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ Replace `default_theme()` return values when brand assets are finalized.
8080

8181
### 6. Companion mascot — `src-rust/crates/tui/src/rustle.rs`
8282

83-
ASCII mascot renderer. Currently "Rustle" from upstream.
84-
To rebrand: rename `RustlePose``CompanionPose`, update art in `rustle_lines()`, update call-sites in `render.rs` and `app.rs`.
83+
ASCII mascot renderer. Currently "Rune" (renamed from "Rustle" upstream).
84+
To rebrand: rename `RustlePose``CompanionPose` (pending — "Rune" is the mascot name), update art in `rustle_lines()`, update call-sites in `render.rs` and `app.rs`.
8585

8686
### 7. Memory / session hooks — `src-rust/crates/core/src/memdir.rs`, `session_storage.rs`
8787

npm/bin/coven-code

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ const os = require('os');
77
const fs = require('fs');
88

99
const ext = os.platform() === 'win32' ? '.exe' : '';
10-
const binary = path.join(__dirname, '..', 'native', `claurst${ext}`);
10+
const binary = path.join(__dirname, '..', 'native', `coven-code`);
1111

1212
if (!fs.existsSync(binary)) {
1313
console.error(
14-
'claurst: native binary not found.\n' +
15-
'Try reinstalling: npm install -g claurst\n' +
14+
'coven-code: native binary not found.\n' +
15+
'Try reinstalling: npm install -g /coven-code\n' +
1616
`Expected: ${binary}`
1717
);
1818
process.exit(1);

session/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<title>CLAURST · Session</title>
7-
<link rel="icon" type="image/png" href="/public/Rustle.png">
7+
<link rel="icon" type="image/png" href="/public/Rune.png">
88
<link rel="preconnect" href="https://fonts.googleapis.com">
99
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
1010
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&display=swap" rel="stylesheet">
@@ -182,7 +182,7 @@
182182
<div class="cross-top-right"></div>
183183
<nav>
184184
<div class="nav-left">
185-
<img src="/public/Rustle.png" alt="Rustle" class="nav-logo" onerror="this.style.display='none'">
185+
<img src="/public/Rune.png" alt="Rune" class="nav-logo" onerror="this.style.display='none'">
186186
<div class="nav-brand">CLAURST</div>
187187
</div>
188188
<div class="nav-tag">Session</div>

src-rust/crates/acp/src/server.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ impl AgentServer {
136136
);
137137
*self.client_capabilities.write() = req.client_capabilities.clone();
138138

139-
let agent_info = acp::Implementation::new("claurst", env!("CARGO_PKG_VERSION"))
139+
let agent_info = acp::Implementation::new("coven-code", env!("CARGO_PKG_VERSION"))
140140
.title(Some("Coven Code".to_string()));
141141

142142
let mut response = acp::InitializeResponse::new(acp::ProtocolVersion::V1)

src-rust/crates/api/src/providers/codex.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ impl CodexProvider {
226226
) -> reqwest::RequestBuilder {
227227
let builder = builder
228228
.bearer_auth(token)
229-
.header("User-Agent", concat!("claurst/", env!("CARGO_PKG_VERSION")));
229+
.header("User-Agent", concat!("coven-code/", env!("CARGO_PKG_VERSION")));
230230

231231
if let Some(id) = account_id {
232232
builder.header("ChatGPT-Account-Id", id)

0 commit comments

Comments
 (0)