Commit Graph

237 Commits

Author SHA1 Message Date
Argenis
dcffa4d7fb
fix(ci): add missing ci-run.yml workflow (#3268)
The ci-run.yml workflow was referenced in docs/contributing/ci-map.md
and branch protection rules but never existed in the repository,
causing push-triggered CI runs to fail immediately with zero jobs
and no logs.

This adds the workflow with all documented jobs: lint, strict delta
lint, test, build (linux + macOS), docs quality, and the CI Required
Gate composite check. Triggers on both push and pull_request to master.

Fixes #2853

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:48:16 +00:00
Argenis
3fe3fe23b1
feat(build): add 32-bit system support via feature gates (#3245)
Closes #3174
2026-03-12 00:06:08 -04:00
Alix-007
138ada0fd6
fix(release): lower GNU Linux build runner baseline (#3257)
Co-authored-by: Argenis <theonlyhennygod@gmail.com>
2026-03-11 23:43:14 -04:00
Darren.Zeng
7ddf10f86d
feat(onboard): add --reinit flag to prevent accidental config overwrite (#3102)
* feat(onboard): add --reinit flag to prevent accidental config overwrite

Add --reinit flag to onboard command that:
- Backs up existing ~/.zeroclaw directory with timestamp
- Starts fresh initialization after backup
- Requires --interactive mode to work
- Prevents accidental configuration loss

This addresses issue #3013 where onboard could accidentally
overwrite all configuration without warning.

Closes #3013

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(ci): SHA-pin all third-party GitHub Actions

Replace mutable version tags with immutable commit SHAs to prevent
tag-hijacking supply chain attacks (P1 finding).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: retrigger CI after startup_failure

* fix(onboard): address PR #3102 review issues for --reinit flag

- Use resolve_runtime_dirs_for_onboarding() instead of hardcoded ~/.zeroclaw
- Remove unsafe relative path fallback, bail instead
- Add user confirmation prompt before reinitializing config
- Update docs/reference/cli/commands-reference.md with --reinit docs

* style: fix cargo fmt and clippy violations

- Fix import ordering in src/config/mod.rs (rustfmt)
- Collapse single-arg encrypt/decrypt calls in src/config/schema.rs (rustfmt)
- Box::pin large onboard futures to fix clippy::large_futures in src/main.rs

These violations were blocking CI lint checks.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Simian Astronaut 7 <simianastronaut7@gmail.com>
2026-03-11 22:09:39 -04:00
Argenis
4da85cee6e
chore(github): update review ownership routing (#3216)
- Add @theonlyhennygod as first-listed code owner on all CODEOWNERS paths
- Add SimianAstronaut7 as maintainer with PR approval authority in docs
- Normalize WORKFLOW_OWNER_LOGINS casing to canonical GitHub logins
2026-03-11 19:11:53 -04:00
Simian Astronaut 7
71f013af49 chore: update action-gh-release to version 2.4.2 in release workflows 2026-03-11 15:39:00 -04:00
Simian Astronaut 7
0af0f0344e fix: remove data directory copy from Dockerfile and update artifact download patterns in release workflows 2026-03-11 12:20:54 -04:00
dependabot[bot]
b4da085f0c chore(deps): bump actions/download-artifact from 4 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-11 04:30:08 -04:00
Simian Astronaut 7
283385624e chore(ci): rename gate job for clarity
Updated the name of the CI gate job from "Gate" to "CI Required Gate" to enhance clarity and better reflect its purpose in the workflow.
2026-03-10 02:47:07 -04:00
Simian Astronaut 7
f73f39d33d fix(ci): replace taiki-e/install-action with cargo install
The taiki-e/install-action is likely not on the org/repo Actions
allowlist, causing startup_failure for the entire workflow. Revert
to cargo install for cargo-audit and cargo-deny.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 02:37:22 -04:00
Simian Astronaut 7
f7b057a743 Merge remote-tracking branch 'origin/master' into cicd-best-practices 2026-03-10 02:24:31 -04:00
Simian Astronaut 7
f19d4951b6 refactor(ci): extract web build into shared job to avoid 4x redundancy
Instead of each build matrix job independently installing Node.js and
running npm ci/build, extract web dashboard build into a single job
that uploads web/dist/ as an artifact. Build jobs download it before
cargo build. Reduces total CI time by ~3 Node installs + builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 02:09:30 -04:00
Simian Astronaut 7
7399894cc8 fix(ci): add web dashboard build step to release workflows
RustEmbed requires web/dist/ to exist at compile time. The PR checks
workflow used a placeholder mkdir, but release workflows need real
built assets since they produce the distributed binary. Add Node.js
setup and npm ci/build before cargo build in all three release/build
workflows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 02:03:15 -04:00
Simian Astronaut 7
8d48472c9e fix(ci): add gate job and use pre-built security tools
Add composite Gate job to checks-on-pr.yml so branch protection
only needs a single required check. Replace cargo-install with
taiki-e/install-action for cargo-audit and cargo-deny to cut
minutes off every PR run. Mark CI/CD P1/P2 findings as resolved
in refactor-candidates.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:10:19 -04:00
Simian Astronaut 7
d1fffc3b74 fix(ci): scope release workflow permissions per-job
Narrow workflow-level permissions to contents:read and grant
write access only to the specific jobs that need it (publish
gets contents:write, docker gets packages:write). Reduces blast
radius if a build step is compromised (P1 finding).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:09:51 -04:00
Simian Astronaut 7
8538c4105a fix(ci): SHA-pin all third-party GitHub Actions
Replace mutable version tags with immutable commit SHAs to prevent
tag-hijacking supply chain attacks (P1 finding).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:09:32 -04:00
Simian Astronaut 7
ad8e1e65e0 fix(ci): resolve lint and build failures in PR checks
Apply cargo fmt to fix formatting diffs in openrouter.rs and serial.rs.
Add web/dist placeholder step to lint, test, and build jobs so
RustEmbed compiles without the gitignored frontend assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:36:24 -04:00
Simian Astronaut 7
df4e11bd1d ci(workflows): rename workflow files and add lint + security jobs
- Rename all 4 workflow files to match trigger and purpose
- Expand PR quality gate with dedicated lint and security audit jobs
- Align workflow display names, concurrency groups, and all doc references
2026-03-10 00:17:54 -04:00
Simian Astronaut 7
67b0ff0ee9 docs: update all internal links to match topic-based directory layout
- Bulk-fix internal links broken by docs/ reorganization into
  topic-based subdirectories
- Cover root READMEs (en/fr/ja/ru/vi/zh-CN), docs hubs, SUMMARY
  TOCs, and all subdirectory docs
- Fix ancillary issues: GitHub URL org name, LICENSE path, Vietnamese
  shim depths, installer rename references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:09:09 -04:00
simianastronaut
fa2faf408d chore: update .gitignore, CODEOWNERS, and dependabot configuration
- Add .zeroclaw/* to .gitignore to exclude ZeroClaw files from version control.
- Update CODEOWNERS to include @SimianAstronaut7 as a maintainer alongside @jordanthejet.
- Change dependabot target branch from dev to master for all update configurations.
- Revise master-branch-flow documentation to clarify active workflows and triggers.
2026-03-07 21:05:23 -05:00
jordanthejet
b4d619dd2b fix: remove deprecated macos-13 x86_64-apple-darwin target from release pipelines
The macos-13 runner is deprecated by GitHub Actions, causing the
x86_64-apple-darwin build to instantly cancel with no runner assigned.
This cascades to skip publish and docker jobs since they depend on all
matrix builds succeeding.

Intel Macs have been EOL since 2022; aarch64-apple-darwin via macos-14
covers all current macOS users (Rosetta handles x86_64 if needed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 10:40:46 -05:00
jordanthejet
44ac470d78 chore: migrate to single master branch model and update maintainers
- Replace all dev/main branch references with master across docs,
  templates, CI docs, and localized files (en, vi)
- Remove dev->main promotion model (no more Main Promotion Gate)
- Rename main-branch-flow.md to master-branch-flow.md and rewrite
  for single-branch workflow
- Update maintainers to theonlyhennygod and jordanthejet
- Update CODEOWNERS: replace @chumyin with @jordanthejet
- Update WORKFLOW_OWNER_LOGINS fallback references
- Update CODE_OF_CONDUCT enforcement contact to @argenistherose

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:01:32 -05:00
JordanTheJet
d64be99621
Update .github/workflows/ci-full.yml
macbook version update

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-05 22:35:07 -05:00
jordanthejet
f981d9ea69 fix: address CodeRabbit review comments
- Add concurrency group to promote-release workflow
- Fix markdown emphasis style in README (MD049)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 22:26:29 -05:00
jordanthejet
8230b26171 fix(ci): remove sccache, keep mold + nextest + no-incremental
sccache GHA cache backend is fragile — fails the entire build when
GitHub's artifact cache service is unavailable. Removed in favor of
Swatinem/rust-cache which handles failures gracefully.

Kept: mold linker, cargo-nextest, CARGO_INCREMENTAL=0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:53:24 -05:00
jordanthejet
fee163fc74 perf(ci): add sccache, mold linker, and cargo-nextest for faster CI
- sccache: compiler caching for test builds (11-14% faster compilation)
- mold: faster linker on Linux builds
- cargo-nextest: parallel test runner (up to 35-60% faster tests)
- CARGO_INCREMENTAL=0: disable incremental compilation overhead in CI

Allowlist impact: added mozilla-actions/sccache-action@*

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:50:07 -05:00
jordanthejet
32e8dbbec5 feat(ci): split CI into auto (linux+macOS) and manual full matrix
Auto CI on PRs builds linux x86_64 and macOS arm64 only.
Remaining targets (linux arm64, macOS x86, Windows) available via
manual workflow_dispatch in ci-full.yml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:43:33 -05:00
jordanthejet
6eef5bafcb feat(ci): full matrix build in CI + fix flaky bedrock test
- CI now builds across all 5 targets (linux x86/arm64, macOS x86/arm64,
  Windows) matching the release matrix
- Fix chat_fails_without_credentials test to accept "builder error"
  which occurs in CI environments without native TLS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:40:45 -05:00
jordanthejet
53c1a3ecea fix(ci): target master branch instead of main
The default branch is master, not main. Updates CI and Beta Release
workflow triggers and corresponding docs references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:34:33 -05:00
jordanthejet
9923544769 ci: replace all workflows with simplified CI/CD pipeline
Remove 22 workflow files and 9 JS scripts. Replace with 3 workflows:
- ci.yml: test + build on PRs
- release.yml: auto beta release on merge to main
- promote-release.yml: manual stable release promotion

Update README Development section to document the new CI/CD system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:15:36 -05:00
Chummy
1be22c7e84
ci: allow release branches in main promotion gate 2026-02-24 16:03:01 +08:00
Chummy
658f54f41b
ci: allow maintainer-authored workflow PRs for owner gate 2026-02-24 16:03:01 +08:00
Chummy
f56dd6f8ea
ci: fix shellcheck quoting in release workflow 2026-02-24 16:03:01 +08:00
Chummy
d4849d333b
ci: enforce PR gate parity with push checks 2026-02-24 16:03:01 +08:00
Tom Cr00se
aa45c30ed6
feat(release): add Android target support (armv7 + aarch64) (#1456)
- Add armv7-linux-androideabi target for 32-bit Android (API 21+)
- Add aarch64-linux-android target for 64-bit Android (API 21+)
- Add Android NDK setup step to release workflow
- Update verify-artifacts to expect Android binaries
- Add Android linker configs to .cargo/config.toml
- Add docs/android-setup.md installation guide

This enables ZeroClaw to run on Android devices via Termux or direct ADB installation.

Co-authored-by: Preventnetworkhacking <preventnetworkhacking@users.noreply.github.com>
2026-02-23 08:05:44 -05:00
Alex
10dd428de1
feat(providers): add Novita AI as OpenAI-compatible provider (#1496)
- Register Novita AI in provider factory with NOVITA_API_KEY env var
- Add to integrations registry with active/available status detection
- Configure onboarding wizard with default model and API endpoint
- Add to PR labeler provider keyword hints
- Update providers reference documentation

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-23 07:58:49 -05:00
Will Sarg
b96a5477f2 ci(homebrew): handle existing upstream remote and main base 2026-02-22 05:16:49 -05:00
Will Sarg
2406e6bd35 ci(homebrew): prefer HOMEBREW_UPSTREAM_PR_TOKEN with fallback 2026-02-22 05:15:42 -05:00
Will Sarg
905e714659
ci(homebrew): use gh-managed auth with explicit fork access checks (#1372) 2026-02-22 04:28:15 -05:00
Will Sarg
43c6f64080
ci(homebrew): fix bot fork auth clone path (#1329)
* ci(homebrew): authenticate git ops via header-safe token flow

* ci(homebrew): fix patch step indentation in workflow
2026-02-21 21:45:33 -05:00
Will Sarg
fdf7f4eac5 ci(build-fast): align toolchain with stable release build 2026-02-21 20:49:17 -05:00
Will Sarg
0178d7d6e3 Merge remote-tracking branch 'origin/main' into codex/v0.1.5-prep 2026-02-21 20:18:38 -05:00
Will Sarg
44cac0755c
ci(release): add bot-owned Homebrew publish workflow (#1323) 2026-02-21 20:18:08 -05:00
Will Sarg
fbc0c8a053
ci(intake): warn and retarget non-promotion PRs from main to dev (#1319) 2026-02-21 17:45:50 -05:00
Will Sarg
6195d1bb79
ci(policy): restrict main PR authors and target bot PRs to dev (#1310) 2026-02-21 17:00:45 -05:00
Will Sarg
19f7682e4d
fix(license): adopt rust-style dual-license layout for github detection (#1308) 2026-02-21 16:48:22 -05:00
Will Sarg
f44c93598f
chore(license): make apache primary while preserving dual-license (#1307) 2026-02-21 16:43:36 -05:00
Alex Gorevski
f74e957f5e
Merge pull request #1286 from zeroclaw-labs/dependabot/github_actions/main/actions-all-f6e1870857
chore(deps): bump github/codeql-action from 4.32.3 to 4.32.4 in the actions-all group
2026-02-21 13:32:58 -08:00
Will Sarg
4bc1385aed
chore(branch): reconcile dev for clean main promotion (#1290)
* ci(docker): restrict image publish to v* tag pushes (#1280)

* ci(workflow): adopt main/dev split with dev->main promotion gate (#1283)

* ci(docker): restrict image publish to v* tag pushes (#1280)

* ci(workflow): adopt dev->main promotion flow
2026-02-21 13:56:32 -05:00
dependabot[bot]
9fd9bc82dd
chore(deps): bump github/codeql-action in the actions-all group
Bumps the actions-all group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).


Updates `github/codeql-action` from 4.32.3 to 4.32.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](9e907b5e64...89a39a4e59)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-all
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21 18:44:44 +00:00
Will Sarg
dbb2c80c1a
ci(workflow): adopt main/dev split with dev->main promotion gate (#1283)
* ci(docker): restrict image publish to v* tag pushes (#1280)

* ci(workflow): adopt dev->main promotion flow
2026-02-21 13:39:07 -05:00
Will Sarg
3e29c6d1eb
ci(docker): restrict image publish to v* tag pushes (#1280) 2026-02-21 13:27:44 -05:00
Will Sarg
ebb2ad8008
ci(policy): enforce root license edits by willsarg only (#1279) 2026-02-21 12:27:12 -05:00
Will Sarg
15bd708ec3
fix(release): avoid duplicate SHA256SUMS upload in GitHub release (#1277) 2026-02-21 12:25:53 -05:00
Will Sarg
5e453549e0
fix(release): make tag publish resilient and include license assets (#1276) 2026-02-21 12:12:30 -05:00
Will Sarg
da32355ae9
ci(policy): restrict root license file edits to owners (#1273)
* ci(policy): restrict root license file edits to owners

* ci(vorpal): satisfy actionlint output redirection rule
2026-02-21 11:39:50 -05:00
Chummy
dc49c95597 ci: remove cargo-slicer from fast build workflow 2026-02-21 22:24:54 +08:00
Will Sarg
fe52698cdc
ci(security): add manual vorpal reviewdog workflow (#1256) 2026-02-21 09:19:12 -05:00
Chummy
4b55e3c859 fix(ci): scope workflow-owner gate to pull_request events 2026-02-21 22:10:00 +08:00
Chummy
151bb9cdb2 fix(ci): expose workflow_changed output for fast-build gate
Refs #1249
2026-02-21 21:58:35 +08:00
Chummy
2556a7e202 fix(ci): run fast-build checks for workflow-only changes
Refs #1249
2026-02-21 21:58:35 +08:00
Chummy
f85e34010e fix(ci): harden fast build when cargo-slicer rustc-driver drifts
Refs #1249
2026-02-21 21:58:35 +08:00
Yijun Yu
66ee7e31ac ci: enable MIR-precise analysis for 27% faster builds
Update ci-build-fast.yml to use MIR-precise mode, which reads actual
compiler MIR to build a ground-truth call graph. This stubs 1,060 mono
items (vs 799 with syn-based analysis), reducing fresh build wall time
by 27.2% on a 48-core server (vs 9.1% with syn alone).

Update docs with new benchmark table showing both modes.
2026-02-21 17:57:07 +08:00
Yijun Yu
c34187f7d9 ci: add accelerated release build via cargo-slicer
Add ci-build-fast.yml that runs a cargo-slicer-optimized release build
alongside the existing Build (Smoke) job. cargo-slicer stubs 2,059
unreachable library functions at the MIR level, skipping their LLVM
codegen. Benchmarks show -11.7% wall time on a 48-core server and
-28.6% on a Raspberry Pi 4; 2-vCPU CI runners should see ~25-30%.

The new job is non-blocking — it does not gate merges.
2026-02-21 17:57:07 +08:00
Will Sarg
0a40989294
fix(release): verify ghcr tag via anonymous token flow (#1207) 2026-02-21 03:24:27 -05:00
Will Sarg
049029897d
fix(release): write sigstore bundle during cosign signing (#1201) 2026-02-21 03:04:46 -05:00
Will Sarg
eb19bc1ff2
fix(release): remove conflicting cosign oidc issuer override (#1198) 2026-02-21 02:51:10 -05:00
Will Sarg
1f4fea7afc
fix(release): run matrix build step with bash shell (#1196) 2026-02-21 02:37:12 -05:00
Will Sarg
1e16f59fd5
fix(release): skip blacksmith rust-cache on windows jobs (#1195) 2026-02-21 02:33:17 -05:00
Alex Gorevski
1e01cd9713 fix ci-run 2026-02-20 11:51:16 -08:00
Alex Gorevski
d0de947d3e fix the bash scripts for binary size 2026-02-20 11:45:44 -08:00
Alex Gorevski
da2d524211 feat(ci): block workflows if binary increases beyond 20mb 2026-02-20 11:19:02 -08:00
Alex Gorevski
0ea541027b
Merge pull request #1129 from zeroclaw-labs/bugfix/actionlint
fix(ci): use grouped redirect for GITHUB_OUTPUT writes in pub-release
2026-02-20 09:46:17 -08:00
Alex Gorevski
152aa52c7d
Merge pull request #1128 from zeroclaw-labs/feat/build-with-release-fast
feat(ci): build with release-fast
2026-02-20 09:45:13 -08:00
Alex Gorevski
72027ff8f3 fix(ci): use grouped redirect for GITHUB_OUTPUT writes in pub-release
Replace individual >> redirects with a single grouped { ... } >> block
to resolve shellcheck SC2129 and satisfy actionlint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-20 09:43:27 -08:00
Alex Gorevski
b3a6f73b4a
Merge pull request #810 from zeroclaw-labs/fix/first-interaction-input-keys-761
fix(ci): correct first-interaction input keys
2026-02-20 09:38:50 -08:00
Alex Gorevski
ae7f297d17 feat(ci): build with release-fast 2026-02-20 09:20:25 -08:00
Will Sarg
3e868902ab
fix(ci): sync release publishing with GHCR and add runbook (#1087) 2026-02-20 07:10:09 -05:00
dependabot[bot]
bd7b59151a
chore(deps): bump actions/download-artifact from 4.3.0 to 7.0.0 (#1073)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.3.0 to 7.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](d3f86a106a...37930b1c2a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 05:27:25 -05:00
dependabot[bot]
12fd87623a
chore(deps): bump sigstore/cosign-installer from 3.8.2 to 4.0.0 (#1067)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.8.2 to 4.0.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](3454372f43...faadad0cce)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 04:39:29 -05:00
Chummy
f10bb998e0
fix(build): unblock low-resource installs and release binaries (#1041)
* fix(build): unblock low-resource installs and release binaries

* fix(ci): use supported intel macOS runner label
2026-02-19 23:24:43 -05:00
Alex Gorevski
fedfd6ae01
Merge pull request #847 from agorevski/algore/cicd-descript-release-matrix
perf(ci): reduce GitHub Actions costs ~60-65% across all workflows
2026-02-19 06:54:40 -08:00
Chummy
b611609c30 ci(docker): publish multi-arch latest and harden release tagging path 2026-02-19 19:32:18 +08:00
Alex Gorevski
00c0995213 fix(ci): restore broken YAML structure in 3 workflows, revert aggressive STALE_HOURS
- pr-auto-response.yml: restore permissions, steps, and checkout in
  contributor-tier-issues job (broken by runner swap)
- pr-check-stale.yml: restore steps block and step name
- pr-intake-checks.yml: restore steps block, checkout, and timeout
- pr-check-status.yml: revert STALE_HOURS from 4 to 48 (not a cost
  optimization; 4h is too aggressive), switch to ubuntu-latest per
  PR description

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 21:26:14 -08:00
Alex Gorevski
825f42071c
Merge branch 'main' into algore/cicd-descript-release-matrix 2026-02-18 21:15:51 -08:00
Alex Gorevski
44725da08c perf(ci): reduce GitHub Actions costs ~60-65% across all workflows
Analysis of Feb 17 data showed 400+ workflow runs/day consuming ~398 billable minutes (~200 hours/month projected). Implemented targeted optimizations:

High-impact changes:

- sec-audit.yml: add path filters (Cargo.toml, src/**, crates/**, deny.toml); skip docs-only PRs

- test-benchmarks.yml: move from every-push-to-main to weekly schedule; retention 30d -> 7d

- pub-docker-img.yml: tighten PR smoke build path filters to Docker-specific files only

- sec-codeql.yml: reduce from twice-daily (14 runs/week) to weekly

Medium-impact changes:

- ci-run.yml: merge lint + lint-strict-delta into single job; drop --release from smoke build

- feature-matrix.yml: remove push trigger (weekly-only); remove redundant cargo test step

- dependabot.yml: monthly instead of weekly; reduce PR limits from 11 to 5/month; group all deps

Runner cost savings:

- Switch 6 lightweight API-only workflows to ubuntu-latest (PR Labeler, Intake, Auto Responder, Check Stale, Check Status, Sync Contributors)

- pr-check-status.yml: reduce from every 12h to daily

New files:

- docs/ci-cost-optimization.md: comprehensive analysis and revised architecture documentation

- scripts/ci/fetch_actions_data.py: reusable GitHub Actions cost analysis script

Estimated impact: daily billable minutes ~400 -> ~120-150 (60-65%% reduction), monthly hours ~200 -> ~60-75, Dependabot PRs ~44/month -> ~5 (89%% reduction)
2026-02-18 21:14:47 -08:00
Will Sarg
66c838c374
fix(workflow): reduce STALE_HOURS from 48 to 4 for timely PR nudges (#873) 2026-02-18 22:21:57 -05:00
Chummy
e3c949b637
fix(workflow): align first-interaction input keys (#821)
* fix(workflow): use valid first-interaction input keys

* fix(workflows): wire shared label policy path in label jobs
2026-02-18 22:24:51 +08:00
Chummy
a4ad5a77de fix(ci): wire shared label policy path in workflows 2026-02-18 21:05:14 +08:00
Chummy
7bb44d157c fix(ci): use correct first-interaction input keys 2026-02-18 21:02:49 +08:00
Will Sarg
80b60d7b70
fix(ci): verify anonymous GHCR pull even when visibility API is unavailable (#801) 2026-02-18 07:34:25 -05:00
Will Sarg
b13e230942
fix(ci): enforce public GHCR visibility for docker image pulls (#798)
* ci(docker): allow manual dispatch for publish job

* ci(docker): run smoke job on manual dispatch

* fix(ci): enforce public GHCR visibility and verify anonymous pulls
2026-02-18 07:25:45 -05:00
Will Sarg
08ea559c21
ci(docker): run smoke on manual dispatch (#797)
* ci(docker): allow manual dispatch for publish job

* ci(docker): run smoke job on manual dispatch
2026-02-18 07:17:15 -05:00
Will Sarg
03aea0d654
ci(docker): allow manual dispatch for publish job (#795) 2026-02-18 07:14:15 -05:00
Will Sarg
a7a580a479
ci(docker): publish image on main pushes and tags (#789)
* feat: Add GitHub Actions workflows for security audits, CodeQL analysis, contributor updates, performance benchmarks, integration tests, fuzz testing, and reusable Rust build jobs

- Implemented `sec-audit.yml` for Rust package security audits using `rustsec/audit-check` and `cargo-deny-action`.
- Created `sec-codeql.yml` for CodeQL analysis scheduled twice daily.
- Added `sync-contributors.yml` to update the NOTICE file with new contributors automatically.
- Introduced `test-benchmarks.yml` for performance benchmarks using Criterion.
- Established `test-e2e.yml` for running integration and end-to-end tests.
- Developed `test-fuzz.yml` for fuzz testing with configurable runtime.
- Created `test-rust-build.yml` as a reusable job for executing Rust commands with customizable parameters.
- Documented main branch delivery flows in `main-branch-flow.md` for clarity on CI/CD processes.

* ci(workflows): update workflow scripts and rename for clarity; remove obsolete lint feedback script

* chore(ci): externalize workflow scripts and relocate main flow doc

* chore(ci): align workflow names with file naming style

* ci(docker): publish image on main pushes and tags

* ci(docker): restrict publish tag checks to v* refs
2026-02-18 06:55:34 -05:00
Chummy
41c3e62dad fix(docker): unblock workspace build and auto-publish latest image 2026-02-18 17:14:46 +08:00
Chummy
a0b277b21e fix(web-search): harden config handling and trim unrelated CI edit 2026-02-18 15:24:21 +08:00
adisusilayasa
1757add64a feat(tools): add web_search_tool for internet search
Add native web search capability that works regardless of LLM tool-calling
support. This is particularly useful for GLM models via Z.AI that don't
reliably support standard tool calling formats.

Features:
- DuckDuckGo provider (free, no API key required)
- Brave Search provider (optional, requires API key)
- Configurable max results and timeout
- Enabled by default

Configuration (config.toml):
  [web_search]
  enabled = true
  provider = "duckduckgo"
  max_results = 5

The tool allows agents to search the web for current information without
requiring proper tool calling support from the LLM.

Also includes CI workflow fix for first-interaction action inputs.
2026-02-18 15:24:21 +08:00
Chummy
f3bdff1d69 fix(agent): harden glm tool-call parsing and scope PR 2026-02-18 15:23:35 +08:00
adisusilayasa
16c5784212 fix(ci): include workflow fix for CI to pass
The first-interaction action requires snake_case input names.
2026-02-18 15:23:35 +08:00