Commit Graph

24 Commits

Author SHA1 Message Date
Jordan Ritter 385f412fba Fix GitHub Actions template injection (CWE-78) in workflow shell commands
Move untrusted PR event data (title, head ref, base ref, SHAs) from
inline ${{ }} interpolation in shell run: blocks to env: blocks,
referencing them as shell variables instead. This prevents arbitrary
code execution via crafted PR titles or branch names.

Affected workflows:
- test_smoke-starter.yml: PR title, user login, head SHA
- publish-release.yml: PR head ref (branch name)
- static_quality.yml: PR base ref, base SHA, head SHA
2026-05-03 13:27:35 -07:00
Sam Julien 49058ccb8e ci: exclude lockfiles from format-glob to unblock lockfile-only PRs
The format job in static_quality.yml globs *.json (and *.yaml) to feed
oxfmt --write on PR-changed files. Lockfiles match those globs but oxfmt
rejects them internally (likely a size threshold or filename heuristic),
so lockfile-only PRs failed with 'Expected at least one target file' and
exit 123 even though the count check thought there were 18 files to format.

Exclude package-lock.json, pnpm-lock.yaml, and yarn.lock from the glob.
Lockfiles are auto-generated and should never be hand-formatted regardless,
so this is corrective — small JSON/YAML config files (tsconfig.json,
package.json, *.yml workflow files) still get formatted as before.

Caused PR #4438's format check to fail; surfaced again on this PR which
only touches lockfiles.
2026-04-29 15:56:06 -07:00
Sam Julien a0aded5ba1 ci(format): drop .mdx from oxfmt candidate glob
oxfmt 0.36 supports .md but not .mdx — including .mdx in the file-list
glob causes MDX-only PRs to fail with "Expected at least one target
file" because oxfmt drops every input as an unknown target and then
errors on the empty target set. Mixed PRs (.mdx + .tsx/.json/etc) pass
because the non-MDX files keep the target set non-empty, which is why
this has only surfaced now on a shell-docs-only sync PR.

Removing .mdx from the glob lets MDX-only PRs hit the existing count=0
skip path and pass cleanly. Add .mdx back when oxfmt ships MDX support.
2026-04-24 11:42:58 -07:00
Claude 5f1acd9044 ci(format): unconditionally fetch full history and diff against current base
Two bugs in the earlier version, both surfaced once main advanced and
was merged into the branch:

- `fetch-depth: ${{ ... && 0 || 1 }}` evaluated to `1` on PRs because
  the short-circuit treats `0` as falsy, so the base SHA was missing
  locally and `git diff` exited 128.
- Diffing against the PR's stored `base.sha` includes every file main
  touched since the PR opened once main is merged into the branch, which
  defeats the whole point of this change. Diff against the current tip
  of the base branch instead.
2026-04-23 20:01:11 +00:00
Claude 8e12410201 ci(format): note upstream source of oxfmt extension list 2026-04-23 19:56:09 +00:00
Claude e81381d723 ci(format): scope auto-format to files changed in the PR
The static / quality "format" job ran oxfmt across the whole tree on
every PR. When main advanced with stale files, unrelated PRs picked up
those re-formats and ended up with a noisy `style: auto-fix formatting`
commit.

Now the job collects `git diff --name-only base...HEAD` for oxfmt-
supported extensions and passes only those paths to oxfmt. Push events
on main continue to check the whole repo so the baseline is still
enforced.
2026-04-23 18:42:06 +00:00
Jordan Ritter daa248388f chore(commitlint): skip merge commits from subject validation
GitHub's "Create a merge commit" merge option builds the commit message
from the PR body. When the body contains markdown lists or blank lines
(e.g. PR #4113 → merge 5ed233f01), commitlint parses subsequent
paragraphs as additional commit subjects and fails with subject-empty /
type-empty.

Two-layer fix:
  - commitlint.config.js: ignore standard "Merge " prefixed messages.
  - static_quality.yml: guard the push-path `--last` step with a
    parent-count check so true merge commits (which keep the PR-title
    header and thus don't match the "Merge " prefix) are skipped
    before commitlint runs at all.
2026-04-22 12:16:39 -07:00
Tyler Slaton ab74b737f0 ci: remove changesets infrastructure
Remove the entire changesets-based release system:
- .changeset/ config directory
- .github/actions/changesets-action/ custom fork (34 files)
- @changesets/assemble-release-plan patch
- @changesets/cli dependency
- Old release and prerelease workflows
- Legacy release scripts (check-allowed, generate-changelog, publish-snapshot)
- Stale paths-ignore entries in CI workflows
2026-04-10 22:20:32 -07:00
Jordan Ritter d55870c499 ci: consolidate commitlint into static_quality, add auto-fix on PRs
Merged standalone commitlint into static_quality as 4th parallel job.
Upgraded all actions to v4, added concurrency group. Format job now
auto-fixes and commits back to same-repo PR branches. Commitlint
posts helpful PR comment with valid prefixes on failure.
2026-04-10 10:37:51 -07:00
Alem Tuzlak 9a6ee39d96 chore(runtime): update package config, CI workflows, and docs
- Add package.json exports for v2/{express,hono,node} subpaths
- Add elysia devDependency and tsdown entry points
- Exclude bun integration tests from vitest config
- Update CI workflows to include runtime-servers test job
- Add runtime-server-adapter docs page
- Add changeset for the fetch-based runtime feature
2026-04-03 18:41:27 +02:00
Alem Tuzlak e9d026577b ci: add NX_VERBOSE_LOGGING to all workflows
https://claude.ai/code/session_01GMkSf29p78HuMR1mbXn8He
2026-04-02 16:39:06 +02:00
Alem Tuzlak 79ce60c580 chore: migrate from eslint+prettier to oxlint+oxfmt
Replace eslint and prettier with oxlint and oxfmt for faster linting
and formatting across the monorepo. Remove all eslint and prettier
configs, dependencies, and related packages. Add .oxlintrc.json and
.oxfmtrc.json for the new tooling. Update CI workflows and lefthook
hooks accordingly. Reformat codebase with oxfmt.

https://claude.ai/code/session_01GMkSf29p78HuMR1mbXn8He
2026-04-02 16:39:05 +02:00
Tyler Slaton 96885b5959 refactor: consolidate V1/V2 packages into flat @copilotkit/* structure
Flatten all packages from packages/v1/* and packages/v2/* into packages/* —
every package now lives directly under the @copilotkit/ scope with no v1/v2
subdirectories.

- Move all v1 packages (react-core, react-ui, runtime, shared, etc.) from
  packages/v1/* to packages/*
- Absorb v2 react code into packages/react-core/src/v2/ (exported via /v2 subpath)
- Absorb v2 agent code into packages/runtime/src/agent/ (exported via /v2 subpath)
- Move v2 packages (core, angular, demo-agents, etc.) to packages/*
- Replace all @copilotkitnext/* imports with @copilotkit/* equivalents
- Keep @copilotkitnext/angular as the sole exception (angular remains on next)
- Update CI workflows, renovate config, release scripts for flat structure
- No public API surface changes — all exports fields are preserved

Co-authored-by: Alem Tuzlak <t.zlak@hotmail.com>
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-03-28 16:45:10 -07:00
Alem Tuzlak 08e356df74 ci: remove unused uv install step from node-only workflows
These 8 workflows install uv but never invoke it. Only e2e_dojo.yml
actually needs uv (the dojo scripts use uv sync/run for Python agents).
Removing the unnecessary step saves CI time and reduces confusion.
2026-03-13 15:03:39 +01:00
Alem Tuzlak b854810d71 ci: add stable NX_CI_EXECUTION_ID across all PR workflows
Parallel CI workflows were each getting a different Nx Cloud execution
ID, resulting in separate CIPEs instead of one unified view. Set a
stable NX_CI_EXECUTION_ID env var using head_ref + sha + run_attempt
so all workflows for the same push are grouped together. Also add
NX_CI_EXECUTION_ENV per workflow to create labeled tab sections in the
Nx Cloud CIPE page.
2026-03-06 13:36:23 +01:00
Jordan Ritter 543275ad91 ci: double Node.js heap size to 4GB for CI builds
The @copilotkitnext/runtime:build step OOMs on GitHub Actions runners
with the default ~2GB heap. Set NODE_OPTIONS=--max-old-space-size=4096
on all three failing workflows.
2026-02-28 20:29:58 -08:00
Alem Tuzlak 98ed92c4ef Feat/speed up build system (#3213) 2026-02-17 18:34:26 +01:00
Tyler Slaton dbe747d31b ci: ensure tests run on exiting pre-mode or changing changesets
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-02-16 16:59:44 -08:00
Alem Tuzlak 7cd968d6a6 refactor: migrate from Turborepo to Nx for task management (#3207) 2026-02-13 16:53:35 +01:00
Alem Tuzlak 7b838547a9 feat: re-architeture the monorepo setup (#3187) 2026-02-13 11:01:44 +01:00
Tyler Slaton 0a6fb12084 fix: address issue with lint failing due to version incompatibilities (#3082)
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-01-22 17:54:41 -05:00
Max Korp e49f607133 Fix: integrate example e2e tests into monorepo (#3056) 2026-01-21 16:21:42 -07:00
Max Korp 2839a15827 feat: Combine v1 and v2 into a single pnpm workspace (#2984) 2026-01-09 14:09:25 -07:00
Tyler Slaton 48504c4816 refactor: standardize CI for clarity (#2887)
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2025-12-18 17:08:01 -05:00