From 7251dec160d860bb1cdaa5f32b0edbb1884b3cd2 Mon Sep 17 00:00:00 2001 From: BarshonClintonSarkar Date: Fri, 17 Jul 2026 21:20:58 +0800 Subject: [PATCH] chore: remove dead release workflow; make config template honest - Delete .github/workflows/release.yml. It published opencode binaries to THIS repo's releases (the installers fetch from ClintonSarkar/opencode instead), built a bare windows .exe the installer never looks for (it wants a .zip), and ran a python build+twine publish for a PyPI package that no longer exists in the repo. Nothing consumes any of it (#4) - Annotate config/clawde.toml so it only claims what clawde actually reads: mark [active] keys (proxy port/host, opencode auto_start) vs [reserved] keys not yet consumed (auth_method, cli_token_path, models, logging), and drop the misleading provider_name = "clawde" (the real provider id is ccproxy-claude, defined authoritatively in opencode.json) (#5, #8) Refs #4, #5, #8 Co-Authored-By: Claude Fable 5 --- .github/workflows/release.yml | 69 ----------------------------------- config/clawde.toml | 28 ++++++++------ docs/ARCHITECTURE.md | 20 ++++++---- 3 files changed, 29 insertions(+), 88 deletions(-) delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 1180429..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Release - -on: - push: - tags: - - "v*" - -permissions: - contents: write - -jobs: - build-opencode: - name: Build OpenCode binary - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - os: ubuntu-latest - target: linux-x64 - - os: ubuntu-latest - target: linux-arm64 - - os: windows-latest - target: windows-x64 - steps: - - name: Checkout OpenCode fork - uses: actions/checkout@v4 - with: - repository: ClintonSarkar/opencode - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: "1.23" - - - name: Build - env: - GOOS: ${{ contains(matrix.target, 'linux') && 'linux' || 'windows' }} - GOARCH: ${{ contains(matrix.target, 'arm64') && 'arm64' || 'amd64' }} - run: | - go build -o opencode-${{ matrix.target }}${{ contains(matrix.target, 'windows') && '.exe' || '' }} . - - - name: Upload to release - uses: softprops/action-gh-release@v2 - with: - files: opencode-${{ matrix.target }}* - - publish-cli: - name: Publish clawde CLI to PyPI - runs-on: ubuntu-latest - needs: build-opencode - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Build package - run: | - pip install build - python -m build - - - name: Publish to PyPI - env: - PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - run: | - pip install twine - twine upload dist/* diff --git a/config/clawde.toml b/config/clawde.toml index 70e574b..3a776a9 100644 --- a/config/clawde.toml +++ b/config/clawde.toml @@ -1,31 +1,37 @@ # clawde configuration file # Generated during install — edit with `clawde config` +# +# Only the keys marked [active] below change clawde's behaviour today. Keys +# marked [reserved] are written for forward compatibility but are not read yet; +# editing them has no effect until a release wires them up. [proxy] -# CCProxy settings +# [active] CCProxy listen address. Read by `clawde start` / `status`. port = 8080 host = "127.0.0.1" [claude] -# Authentication method: "oauth" or "cli_token" +# [reserved] Authentication is always the browser OAuth flow via `clawde auth` +# today. auth_method / cli_token_path are not consumed yet. auth_method = "oauth" -# Path to existing Claude CLI token (used when auth_method = "cli_token") cli_token_path = "" [opencode] -# OpenCode provider config -provider_name = "clawde" -# Auto-start services on boot +# [active] auto_start controls whether the installer sets up boot/login +# auto-start of the proxy (systemd user service / scheduled task). auto_start = false +# NOTE: the OpenCode provider itself (id "ccproxy-claude", baseURL, apiKey) is +# defined in opencode.json by the installer, not here — that file is the single +# source of truth for provider wiring. [models] -# Which models to expose from Claude Work plan -# "all" = discover dynamically, or specify a list +# [reserved] Model exposure is currently fixed by the provider entry in +# opencode.json; this key is not consumed yet. expose = "all" [logging] -# Log directory (defaults to platform-specific) -# Linux/WSL: ~/.local/share/clawde/logs -# Windows: %APPDATA%\clawde\logs +# [reserved] Logs always go to the platform log dir (Linux/WSL: +# ~/.local/share/clawde/logs, Windows: %LOCALAPPDATA%\clawde\logs). level / +# rotation_days are not consumed yet. level = "info" rotation_days = 7 diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 4b92e34..898ba92 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -50,8 +50,7 @@ clawde/ ├── docs/ │ └── ARCHITECTURE.md # This file └── .github/ - └── workflows/ - └── release.yml # Build + publish releases + └── workflows/ # CI (lint / script checks) ``` ## Install flow @@ -85,10 +84,15 @@ clawde/ Custom OpenCode agent modes are developed in the OpenCode fork (`ClintonSarkar/opencode`), not in this repo. clawde installs the binary from that fork's releases, so any agent modes you add there are automatically available to clawde users. -## Release workflow +## Updates -GitHub Actions in this repo: -1. Triggered on tag push (e.g., `v0.1.0`) -2. Downloads/builds OpenCode binary for linux-x64, linux-arm64, windows-x64 -3. Publishes as GitHub release assets -4. Users get updates via `clawde update` +This repo does **not** publish its own release artifacts. Updates flow through +`clawde update`, which: +1. Self-updates the `clawde` CLI script from `raw.githubusercontent.com/.../main` + (hash-compared; backed up before replacing). +2. Upgrades OpenCode via the binary's own `opencode upgrade`. +3. Pulls the latest CCProxy binary from the `ClintonSarkar/ccproxy-api` fork's + GitHub releases. + +The OpenCode binary itself comes from the `ClintonSarkar/opencode` fork's +releases (see External dependencies above), not from this repo.