Commit Graph

41 Commits

Author SHA1 Message Date
José Almeida ac3e8eeb7d fix(release): pin optionalDependencies to bootstrap version in committed source
CI was failing because apps/cli/package.json declared optionalDependencies
at 0.16.0 but only 0.0.0-bootstrap exists on npm for those packages. The
lockfile couldn't resolve, and `pnpm install --frozen-lockfile` rejected
the working tree.

Pin optionalDependencies to 0.0.0-bootstrap in the committed source so the
lockfile resolves cleanly. The release workflow now bumps them to the real
version inside publish-npm.sh, just before publishing main kandev — at
which point the matching @kdlbs/runtime-*@VERSION tarballs have already
been published earlier in the same step. This avoids the chicken-and-egg
where the prepare job tried to bump optional deps to a version that didn't
yet exist on npm.

Workflow changes:
- prepare job: only bumps the main package version, not optional deps.
- publish-npm.sh: rewrites optionalDependencies to $VERSION right before
  the main `npm publish`, after the 5 runtime packages have been published.

The published kandev@X.Y.Z still has its optionalDependencies pinned to
matching @kdlbs/runtime-*@X.Y.Z. Only the local source uses the bootstrap
pin for development convenience.
2026-05-04 22:44:26 +01:00
José Almeida 0c5bbb87f4 feat(release): switch npm publishing to Trusted Publishers (OIDC)
The previous flow required an NPM_TOKEN secret. Local testing with that
token failed with EOTP because the granular access token still required a
2FA OTP on publish despite the account-level setting change. npm now
recommends Trusted Publishers (OIDC) over long-lived tokens.

Workflow change (release.yml):
- publish-npm job declares `permissions: id-token: write` so GitHub Actions
  can mint OIDC tokens.
- Removes NODE_AUTH_TOKEN env var. The npm CLI auto-detects the OIDC
  environment and exchanges the GitHub OIDC token for a short-lived
  npmjs.com publish credential.
- Comment block updated to reflect the new auth model. NPM_TOKEN is no
  longer listed in required secrets (already deleted from repo secrets).

Script change (publish-npm.sh):
- Updates `npm publish` calls to include `--provenance` so each published
  package ships with a signed attestation linking it back to this commit
  and workflow run.
- Header comment explains the OIDC auth model.

Setup required on npmjs.com (per package, before first OIDC publish):
For each of the 6 packages — kandev plus @kdlbs/runtime-{linux-x64,
linux-arm64,darwin-x64,darwin-arm64,win32-x64} — go to the package's
"Settings → Publishing access" and add a Trusted Publisher pointing at
this repo (kdlbs/kandev), workflow filename release.yml, and (optionally)
an environment.
2026-05-04 22:44:26 +01:00
José Almeida 8db50791d6 feat(release): unified vX.Y.Z release flow with brew + npm sibling channels
GitHub release artifacts become the canonical build output. npm and Homebrew
are independent sibling channels — both consume the same GitHub release
tarballs; neither depends on the other.

Workflow changes (.github/workflows/release.yml):

- Trigger is now workflow_dispatch only (maintainer-only, gated by repo write
  access). Inputs: bump dropdown (patch/minor/major) + dry_run checkbox.
- Single job graph orchestrates everything in one run:
  prepare (bump, PR, merge, tag) → build-web/build-cli → build-bundles (5
  platforms) → docker → publish-release → publish-npm + update-homebrew-tap.
- The prepare job inlines version bump, optionalDependencies sync, CHANGELOG
  generation, PR create + squash-merge, and tag push. Replaces what
  release-pr.sh used to do locally.
- Tag-push trigger removed; everything runs from the dispatch flow.

New scripts (called by the workflow):

- package-cli.sh: builds + esbuild-bundles the CLI for inclusion in release
  bundles (cli/bin/cli.js + cli/dist/cli.bundle.js + package.json).
- package-npm-runtime.sh: generates per-platform @kdlbs/runtime-* npm
  packages from release bundles. Sets npm os/cpu fields so npm 7+ skips
  non-matching platforms during npx kandev install.
- publish-npm.sh: verifies GitHub assets exist, downloads them, repackages,
  publishes all 5 @kdlbs/runtime-* packages + main kandev@X.Y.Z.
- update-homebrew-tap.sh: clones kdlbs/homebrew-kandev via SSH using the
  HOMEBREW_TAP_DEPLOY_KEY repo secret, generates Formula/kandev.rb pointing
  at the GitHub release assets, pushes directly to main.

Removed scripts:

- release.sh and release-pr.sh — both are redundant with the new workflow.

Required CI secrets:
- NPM_TOKEN: granular access token with publish access to kandev + @kdlbs/*
- HOMEBREW_TAP_DEPLOY_KEY: SSH private key for kdlbs/homebrew-kandev
2026-05-04 22:44:26 +01:00
Carlos Florêncio 5644b0ad18 feat(preview): add PR preview environments via Sprites (#707) 2026-04-26 18:14:41 +01:00
Carlos Florêncio 367700f507 ci: stop Claude code review workflow from committing to PRs (#683) 2026-04-23 18:35:49 +01:00
Carlos Florêncio 4e5f16a0b0 ci: split Claude code review into separate same-repo and fork jobs (#642) 2026-04-18 17:46:20 +01:00
Carlos Florêncio 820e0b963a ci: use Claude App token for same-repo PRs, fallback for forks (#634) 2026-04-18 11:05:47 +01:00
Carlos Florêncio 1cdfc04050 ci: pass GITHUB_TOKEN to claude-code-action to bypass OIDC exchange (#629) 2026-04-17 23:27:49 +01:00
Carlos Florêncio 1ba35225e6 ci: enable claude review on fork PRs via pull_request_target (#628) 2026-04-17 22:53:44 +01:00
Carlos Florêncio 9d88a55350 ci: allow bot-authored PRs in claude code review (#557) 2026-04-07 17:40:58 +01:00
Carlos Florêncio b6c06c337b ci: fix claude code review workflow to use oauth token and skill prompt (#553) 2026-04-06 19:19:54 +01:00
Carlos Florêncio fdeef51865 ci: add claude code github actions (#524) 2026-04-01 23:19:46 +01:00
Carlos Florêncio e2925f9723 ci: extract shared build job from E2E test shards (#498) 2026-03-30 13:42:57 +01:00
Carlos Florêncio db816d4222 fix(web): deduplicate agent and session tabs in task view (#496) 2026-03-30 12:19:55 +01:00
Carlos Florêncio 0cd891d27a fix(test): stabilize flaky e2e tests and increase CI parallelism (#384) 2026-03-07 18:55:03 +00:00
Carlos Florêncio c81fb77f72 ci: improve docker image and KANDEV_DATA_DIR env var (#370) 2026-03-05 20:31:17 +00:00
Carlos Florêncio 44811da702 feat: web e2e tests (#304) 2026-03-02 08:54:58 +00:00
Carlos Florêncio ed461052b2 fix: resolve black terminal on background tab init and reduce resize storm (#334) 2026-02-28 23:00:06 +00:00
Carlos Florêncio 9e995ba1b8 feat: add Dockerfile, K8s manifests, and deployment docs (#303) 2026-02-27 16:38:53 +00:00
Carlos Florêncio 8ee5b56904 feat: release notes (#298) 2026-02-26 23:08:15 +00:00
Carlos Florêncio 3638347a7c feat: default github runners (#275) 2026-02-24 17:53:39 +00:00
Carlos Florêncio b244748217 fix: make github release atomic 2026-02-24 11:30:44 +00:00
Carlos Florêncio 61ef224ec7 style: fix format issues (#255) 2026-02-19 22:18:01 +00:00
Carlos Florêncio 82ea7578dc feat: ci complexity linters (#236) 2026-02-17 09:19:42 +00:00
Carlos Florêncio acaae931e2 feat: homelab-runner (#233) 2026-02-16 23:22:18 +00:00
Carlos Florêncio 0933f4375f feat: improve stepper (#229) 2026-02-16 15:00:14 +00:00
Carlos Florêncio 11316eed0a fix: release bundle
release / build-web (push) Has been cancelled
release / build-bundles (aarch64-linux-gnu-gcc, arm64, linux, ubuntu-latest, linux-arm64) (push) Has been cancelled
release / build-bundles (amd64, darwin, macos-14, macos-x64) (push) Has been cancelled
release / build-bundles (amd64, linux, ubuntu-latest, linux-x64) (push) Has been cancelled
release / build-bundles (arm64, darwin, macos-14, macos-arm64) (push) Has been cancelled
release / build-bundles (x86_64-w64-mingw32-gcc, amd64, windows, ubuntu-latest, windows-x64) (push) Has been cancelled
2026-02-16 12:32:38 +00:00
Carlos Florêncio 613b063787 feat: use tar for bundles 2026-02-16 10:52:46 +00:00
Carlos Florencio 1e54d3263d feat: improve windows support
release / build-web (push) Has been cancelled
release / build-bundles (aarch64-linux-gnu-gcc, arm64, linux, ubuntu-latest, linux-arm64) (push) Has been cancelled
release / build-bundles (amd64, darwin, macos-15-large, macos-x64) (push) Has been cancelled
release / build-bundles (amd64, linux, ubuntu-latest, linux-x64) (push) Has been cancelled
release / build-bundles (amd64, windows, windows-latest, windows-x64) (push) Has been cancelled
release / build-bundles (arm64, darwin, macos-14, macos-arm64) (push) Has been cancelled
2026-02-15 19:43:04 +00:00
Carlos Florêncio 5197f041d6 feat: fix cli org 2026-02-15 18:55:43 +00:00
Carlos Florêncio cad2d783b3 feat: improve windows support (#225)
release / build-web (push) Has been cancelled
release / build-bundles (aarch64-linux-gnu-gcc, arm64, linux, ubuntu-latest, linux-arm64) (push) Has been cancelled
release / build-bundles (amd64, darwin, macos-13, macos-x64) (push) Has been cancelled
release / build-bundles (amd64, linux, ubuntu-latest, linux-x64) (push) Has been cancelled
release / build-bundles (amd64, windows, windows-latest, windows-x64) (push) Has been cancelled
release / build-bundles (arm64, darwin, macos-14, macos-arm64) (push) Has been cancelled
feat: windows support
2026-02-15 18:16:21 +00:00
Carlos Florêncio cf846606a5 ci: make backend workflow faster (#224) 2026-02-14 22:04:22 +00:00
Carlos Florêncio bc6a5f28d9 feat: cli launcher npx kandev (#39)
* feat: cli launcher

* feat: improved debug
2026-01-18 20:42:03 +00:00
Carlos Florêncio a5da45ee80 ci: add pnpm-lock.yaml file 2026-01-15 19:33:02 +00:00
Carlos Florêncio 56a901a3ca ci: only trigger for certain folders 2026-01-15 19:30:56 +00:00
Carlos Florêncio 673d9f7d96 ci: debug 2026-01-15 19:25:27 +00:00
Carlos Florêncio f0a2d2b49b ci: fix node workflow 2026-01-15 19:21:54 +00:00
Carlos Florêncio 45a01f4fd5 ci: fix workflows 2026-01-15 19:19:00 +00:00
Carlos Florêncio 2fa462df0d ci: fix web workflow 2026-01-15 19:06:43 +00:00
Carlos Florêncio e1bce95bac feat: golang linter 2026-01-15 19:05:16 +00:00
jcfs 7dc481e7a7 ci: Add GitHub Actions workflow for backend tests 2026-01-11 00:01:40 +00:00