The GitHub account is gone again, so git.zacharyzhang.com/ZacharyZhang-NY/Kigi-CLI is the canonical repo. Reversef7a4cb6: - .gitea/workflows/release.yml: restore the Gitea edition retired inf7a4cb6(draft release, per-target upload, SHA256SUMS, then publish). The Windows leg runs on the windows-amd64 label the current runner advertises. - .github/workflows/{release,warm-cache}.yml: drop them; they target hosted GitHub runners and softprops, and Gitea ignores them once .gitea exists. - kigi-env: update_base_url defaults to the Gitea Releases API again. - install.sh / install.ps1: resolve releases from git.zacharyzhang.com. - feedback, /docs, SECURITY.md, frontend worker + site: repo, issues and raw-file links point at git.zacharyzhang.com. - docs/RELEASE.md: Gitea edition of the checklist with the current runners. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kigicli.dev
The Kigi landing site and the Worker that fronts it, deployed to Cloudflare as
the kigi-frontend Worker on kigicli.dev and www.kigicli.dev.
Layout
| Path | What it is |
|---|---|
worker/index.ts |
Worker entry point: installer proxy, /health, asset fallthrough |
wrangler.jsonc |
Deployment config (custom domains, assets binding, SPA fallback) |
dist/ |
The built site served by the assets binding |
dist/is build output, not source. It was recovered by mirroring the livekigicli.devdeployment — the original Vite/React project that produced these bundles is not in this repo. Content and copy changes therefore have to be made against the hasheddist/assets/index-*.jsandindex-*.cssfiles directly. If the upstream source ever turns up, drop it in besidedist/and switchwrangler.jsoncto point at its build directory.
Routes
Assets are matched first and served directly. Requests with no matching file fall through to the Worker, which owns:
GET /install.sh— proxiesinstall.shfrom the Kigi repo on GiteaGET /install.ps1— proxiesinstall.ps1from the Kigi repo on GiteaGET /health— plain-text liveness check- everything else —
env.ASSETS.fetch(), which servesindex.htmlfor unknown paths (single-page-application fallback)
The installer routes are proxied rather than linked so the published install
command (curl -fsSL https://kigicli.dev/install.sh | bash) stays stable no
matter where the repo is hosted. Responses are cached for 10 minutes at the
edge, so a push to main takes up to that long to show up.
Because assets win over the Worker, never add install.sh or install.ps1 to
dist/ — they would shadow the proxy routes.
Deploy
npm install
npx wrangler deploy
Cloudflare Web Analytics injects its beacon <script> at the edge; that is why
dist/index.html does not contain one and must not have one added.