Repo tidy + version unification for v0.10.0 - #2
Merged
Conversation
The six manifests had drifted apart (root 0.1.0, bridge 0.9.3, mobile/tauri/
Cargo 0.9.5, core 0.9.3, protocol 0.9.4, testkit 0.9.3). Set every one to a
single number for the first CodeDeck+ release: a minor step over upstream's last
release (0.9.5), reflecting the features the fork adds (Tor/SOCKS5, Orbot,
NIP-42, monorepo, CI/release automation) while staying in 0.x.
- All package.json + apps/mobile/src-tauri/{tauri.conf.json,Cargo.toml}.
- Cargo.lock: the codedeck-mobile entry only (third-party 0.9.x crates
untouched); `cargo test --locked` in CI verifies Cargo.toml/Cargo.lock agree.
- gen/android build.gradle.kts is not touched — Tauri regenerates
tauri.properties (versionName/versionCode) from tauri.conf.json at build time.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
main.js is a three-line runtime shim (install a WebSocket global, then import
the built bridge CLI) that only ever runs inside the container. It belongs next
to Dockerfile and entrypoint.sh, not at the repo root.
- git mv main.js -> docker/main.js
- docker/Dockerfile: COPY source path updated; the destination stays
/app/main.js, so entrypoint.sh (`node /app/main.js run`) and the shim's own
`import('./apps/bridge/out/main.js')` (resolved at runtime from /app) are
unchanged.
- .claude/CLAUDE.md: reference updated.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The published bridge package still carried upstream's coordinates: repository.url -> JeroenOnNostr/codedeck-next-bridge, repository.directory -> apps/bridge-cli (a path that no longer exists), and a README install line pointing at upstream's v0.9.3 release asset. Update all three to deymosh/codedeck-plus / apps/bridge and the v0.10.0 tarball name the release workflow produces. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Repository layout: add .github/, .claude/, docs/PROTOCOL.md; show docker/main.js in its new home; note that vendor/* carry their own package.json / pnpm-* which are inert (not in the workspace glob); list ./codedeck. - New Releases section: what a vX.Y.Z tag produces (signed APK, bridge npm tarball, GHCR image), the prerelease-on-hyphen rule, workflow_dispatch dry run, and the four signing secrets, linking the cut-release skill. - CI status badge. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Cargo.lock never got regenerated when tauri-plugin-tor-proxy was added to
src-tauri/Cargo.toml (the Orbot work): the crate was declared as a dependency
but had no [[package]] entry and no edge in codedeck-mobile's dependency list.
`cargo * --locked` fails on it ("cannot update the lock file"). It went
unnoticed because the CI cargo job is path-filtered to src-tauri/** and no PR
had touched that tree until the 0.10.0 version bump did.
Verified with `cargo metadata --locked` (Rust 1.98) for both the host and the
aarch64-linux-android target — clean, +11 lines, no other churn.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final ordering pass before the first CodeDeck+ release. No behaviour changes — version strings, one file move, npm metadata, docs, and a stale-lockfile fix.
Organization review
docker-compose.ymlstays at the root. Itsbuild.contextis.(the Dockerfile COPYspackages/andapps/bridge/), Compose autoloads.envfrom where it runs,docker compose upfrom the root is the idiomatic entrypoint, and./codedeckalready wraps the day-to-day commands. Moving it todocker/would force-f docker/docker-compose.yml --project-directory .on every raw call for a cosmetic gain.package.jsonand the pnpm files are not duplicated. Rootpackage.json+pnpm-lock.yaml+pnpm-workspace.yaml+tsconfig.base.jsonare the workspace definition — one each, required at the root, not movable. Thevendor/bridge/andvendor/mobile/copies of those files are the pristine git-subtree mirrors: not in the workspace glob, never installed, must not be edited (breaksgit subtree pull). The only genuine double-declaration isws(root +packages/core) and it is deliberate —docker/main.jsruns as/app/main.jsand needswsresolvable at the image's workspace root. The real disorder was version drift, fixed below.Changes
chore: unify all package versions to 0.10.0— the six manifests had drifted (0.1.0 / 0.9.3 / 0.9.4 / 0.9.5). One number for the first release: a minor step over upstream's 0.9.5 reflecting the fork's added features (Tor/SOCKS5, Orbot, NIP-42, monorepo, CI/release), still 0.x. Touches everypackage.json+apps/mobile/src-tauri/{tauri.conf.json,Cargo.toml}+ thecodedeck-mobileentry inCargo.lock(third-party 0.9.x crates left alone).gen/androidis untouched — Tauri regeneratesversionName/versionCodefromtauri.conf.jsonat build time.chore: move the Docker entry shim to docker/main.js—main.jswas a 3-line container-only shim sitting at the repo root.git mvtodocker/; the Dockerfile COPY source path changes, the/app/main.jsdestination does not, soentrypoint.shand the shim's own import are unchanged. Verified with a fulldocker compose build codedeck-bridge.chore(bridge): point npm metadata at the codedeck-plus repo— the published bridge package still hadrepository.url->JeroenOnNostr/codedeck-next-bridgeandrepository.directory->apps/bridge-cli(gone), plus a README install line for upstream's v0.9.3 asset. Updated todeymosh/codedeck-plus/apps/bridge/ the v0.10.0 tarball name.docs: refresh the README— layout diagram now shows.github/,.claude/,docs/,docker/main.js,./codedeck, and notes the inertvendor/*manifests; new Releases section (what avX.Y.Ztag produces, prerelease-on-hyphen,workflow_dispatchdry run, the four signing secrets); CI badge.fix(mobile): add the missing tauri-plugin-tor-proxy entry to Cargo.lock— pre-existing breakage this PR surfaced: the Orbot plugin was added tosrc-tauri/Cargo.tomlbutCargo.lockwas never regenerated, socargo --lockedfails on it. It went unnoticed because the CI cargo job is path-filtered tosrc-tauri/**and no prior PR touched that tree.cargo metadata --locked(Rust 1.98) now passes for host and the aarch64-linux-android target; +11 lines, no other churn.Out of scope (agreed)
Not moving
docker-compose.yml; not editing thevendor/*mirror manifests; no ESLint config or hand-written CHANGELOG (releases usegenerate_release_notes). Thev0.10.0tag itself is left for the maintainer to cut via thecut-releaseskill once the signing secrets are set.Verification
./codedeck check(Docker typecheck + test, 6 packages) — green (765 mobile + 454 core + ...).docker compose build codedeck-bridge— green (validates thedocker/main.jsCOPY).typecheck + test + buildgreen,cargo test --lockedgreen (5m Rust run).git grep -nE "0\.9\.[345]" -- '*.json' '*.toml'clean outside third-partyCargo.lockcrates, thevendor/*mirrors, and historicalzapstore.yamlcomments.