Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d227ffa
fix(cache): repair discovery globs, error discrimination, cache-dir l…
kojiwakayama Aug 3, 2026
ab175bc
fix(cache): make bundle code reference tracking constant-time
kojiwakayama Aug 3, 2026
77bef6e
fix(cache): isolate bundle metadata indexes from caller mutation
kojiwakayama Aug 3, 2026
fe2d726
fix(cache): close discovery and lifetime review gaps
kojiwakayama Aug 3, 2026
4f6e080
Keep cache access timestamps on the injected clock
kojiwakayama Aug 3, 2026
168e831
Make LRU list manager tests type-safe
kojiwakayama Aug 3, 2026
ea51fc3
test(cache): cover Node cache module links
kojiwakayama Aug 3, 2026
489b498
fix(utils): preserve undefined LRU membership
kojiwakayama Aug 3, 2026
3253e13
Keep public cache observations internally consistent
kojiwakayama Aug 3, 2026
af52b46
Preserve cache state boundary review coverage
kojiwakayama Aug 3, 2026
063d2eb
test(cache): remove file-check race
kojiwakayama Aug 3, 2026
84f34b1
fix(cache): preserve errors and portable module links
kojiwakayama Aug 3, 2026
f2fdfc0
fix(cache): address review findings on hot-path pruning, error taxono…
kwakayama Aug 3, 2026
6024e87
fix(cache): revalidate memoized node_modules links
kojiwakayama Aug 3, 2026
c7a5c1c
Avoid cache link path disclosure in warnings
kojiwakayama Aug 3, 2026
45e2471
fix(cache): redact module inspection paths
kojiwakayama Aug 3, 2026
20292b5
Close cache review gaps
kojiwakayama Aug 3, 2026
3afb163
Close cache review comment gaps
kojiwakayama Aug 3, 2026
ea6bf4d
Keep CI workflow formatting stable
kojiwakayama Aug 3, 2026
3ec0087
Stabilize SSR worker permission test
kojiwakayama Aug 3, 2026
c44ddaf
Update cache correctness branch for current main
kojiwakayama Aug 3, 2026
f5f611b
Keep cache diagnostics and Node CI deterministic
kojiwakayama Aug 3, 2026
8c4a431
Propagate cache write stat failures
kojiwakayama Aug 3, 2026
aef65e8
Keep cache correctness branch audit-clean
kojiwakayama Aug 3, 2026
b683181
Fix brace-expansion lock integrity
kojiwakayama Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 63 additions & 39 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
matrix:
check: [format, lint, typecheck]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
- name: Run ${{ matrix.check }}
run: |
Expand All @@ -56,12 +56,18 @@ jobs:
timeout-minutes: 15
name: tests (integration)
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
warm-redis-cache: "true"
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
node-version: "24"
package-manager-cache: false
- name: Run Node cache-link compatibility tests
run: node ./tests/node/run-tests.mjs 'src/utils/cache-dir.test.ts'
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 10
max_attempts: 3
Expand All @@ -78,7 +84,7 @@ jobs:
matrix:
shard: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
Expand All @@ -91,7 +97,7 @@ jobs:
echo "duration=$(($(date +%s) - START))s" >> "$GITHUB_OUTPUT"
- name: Upload unit coverage lcov
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: coverage-shard-${{ matrix.shard }}
path: coverage-shard-${{ matrix.shard }}/lcov.info
Expand Down Expand Up @@ -130,10 +136,10 @@ jobs:
echo "::error::Coverage shards finished with $COVERAGE_SHARDS_RESULT"
exit 1
fi
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
- name: Download unit coverage lcov files
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
path: coverage-profiles
pattern: coverage-shard-*
Expand All @@ -152,7 +158,7 @@ jobs:
timeout-minutes: 25
name: tests (rsc browser e2e)
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
Expand Down Expand Up @@ -194,7 +200,7 @@ jobs:
sudo rm -rf /var/lib/apt/lists/* || true
sleep $((attempt * 20))
done
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 10
max_attempts: 2
Expand All @@ -211,7 +217,7 @@ jobs:
timeout-minutes: 60
name: tests (binary e2e)
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
Expand Down Expand Up @@ -253,7 +259,7 @@ jobs:
sudo rm -rf /var/lib/apt/lists/* || true
sleep $((attempt * 20))
done
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
- uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
with:
timeout_minutes: 30
max_attempts: 2
Expand All @@ -274,11 +280,11 @@ jobs:
timeout-minutes: 30
name: tests (npm install smoke)
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
node-version: "24"
package-manager-cache: false
Expand All @@ -295,11 +301,11 @@ jobs:
timeout-minutes: 15
name: tests (sentry runtime packages)
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
with:
warm-cache: "true"
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
node-version: "24"
package-manager-cache: false
Expand All @@ -317,7 +323,7 @@ jobs:
name: tests (split mode)
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno

- name: Compile binary
Expand Down Expand Up @@ -375,7 +381,7 @@ jobs:
is_stable: ${{ steps.check.outputs.is_stable }}
stable_release_requested: ${{ steps.check.outputs.stable_release_requested }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Detect release type
Expand Down Expand Up @@ -411,7 +417,7 @@ jobs:
if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno
- run: deno task build:prepare
- name: Verify proxy dependency lock is current
Expand Down Expand Up @@ -474,7 +480,7 @@ jobs:
entrypoint: cli/main.ts
profile: full
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: ./.github/actions/setup-deno

- run: deno task build:prepare
Expand Down Expand Up @@ -505,7 +511,7 @@ jobs:
shell: bash
run: bash scripts/build/smoke-proxy-memory.sh ./veryfront-proxy-linux-x64

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ matrix.name }}
path: ${{ matrix.name }}
Expand All @@ -519,18 +525,27 @@ jobs:

prerelease:
if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && needs.version-check.outputs.is_stable == 'false' }}
needs: [ci, tests, coverage, tests-binary-e2e, tests-npm-install-smoke, tests-sentry-runtime-packages, build-binaries, version-check]
needs: [
ci,
tests,
coverage,
tests-binary-e2e,
tests-npm-install-smoke,
tests-sentry-runtime-packages,
build-binaries,
version-check,
]
runs-on: ubuntu-latest
environment: production
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- uses: ./.github/actions/setup-deno

- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
Expand All @@ -551,7 +566,7 @@ jobs:
deno task build:npm
scripts/ci/publish-npm-packages.sh rc-publish

- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
path: binaries

Expand All @@ -564,7 +579,7 @@ jobs:

- name: Create release GitHub App token
id: release-app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ vars.VERYFRONT_RELEASE_APP_CLIENT_ID }}
private-key: ${{ secrets.VERYFRONT_RELEASE_APP_PRIVATE_KEY }}
Expand Down Expand Up @@ -609,23 +624,23 @@ jobs:
$SBOMS

- name: Trigger server deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-server
event-type: veryfront-code-released
client-payload: '{"version": "${{ steps.version.outputs.version }}"}'

- name: Trigger job-runner deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-job-runner
event-type: veryfront-code-released
client-payload: '{"version": "${{ steps.version.outputs.version }}"}'

- name: Trigger sandbox deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-sandbox
Expand All @@ -640,14 +655,23 @@ jobs:

release:
if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && needs.version-check.outputs.is_stable == 'true' && needs.version-check.outputs.stable_release_requested == 'true' }}
needs: [ci, tests, coverage, tests-binary-e2e, tests-npm-install-smoke, tests-sentry-runtime-packages, build-binaries, version-check]
needs: [
ci,
tests,
coverage,
tests-binary-e2e,
tests-npm-install-smoke,
tests-sentry-runtime-packages,
build-binaries,
version-check,
]
runs-on: ubuntu-latest
environment: production
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Read version
id: version
Expand All @@ -657,7 +681,7 @@ jobs:

- name: Create release GitHub App token
id: release-app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ vars.VERYFRONT_RELEASE_APP_CLIENT_ID }}
private-key: ${{ secrets.VERYFRONT_RELEASE_APP_PRIVATE_KEY }}
Expand Down Expand Up @@ -692,7 +716,7 @@ jobs:

- uses: ./.github/actions/setup-deno

- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
Expand All @@ -705,7 +729,7 @@ jobs:
deno task build:npm
scripts/ci/publish-npm-packages.sh release-publish

- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
path: binaries

Expand Down Expand Up @@ -776,23 +800,23 @@ jobs:
--notes "Binaries available at: https://github.com/veryfront/veryfront/releases/tag/v${VERSION}"

- name: Trigger server deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-server
event-type: veryfront-code-released
client-payload: '{"version": "${{ steps.version.outputs.version }}"}'

- name: Trigger job-runner deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-job-runner
event-type: veryfront-code-released
client-payload: '{"version": "${{ steps.version.outputs.version }}"}'

- name: Trigger sandbox deploy
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
with:
token: ${{ steps.release-app-token.outputs.token }}
repository: veryfront/veryfront-sandbox
Expand All @@ -809,11 +833,11 @@ jobs:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Create Homebrew tap GitHub App token
id: homebrew-app-token
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
with:
client-id: ${{ vars.HOMEBREW_TAP_APP_CLIENT_ID }}
private-key: ${{ secrets.HOMEBREW_TAP_APP_PRIVATE_KEY }}
Expand All @@ -823,7 +847,7 @@ jobs:
permission-pull-requests: write

- name: Update Homebrew tap
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4.0.0
env:
HOMEBREW_TAP_TOKEN: ${{ steps.homebrew-app-token.outputs.token }}
with:
Expand Down
8 changes: 4 additions & 4 deletions deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions docs/guides/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@ Notes:
- `paths` are relative to your project root.
- Defaults are `tools`, `agents`, `skills`, `prompts`, `resources`, `workflows`, and `tasks`.
- Set `enabled: false` to disable discovery for that primitive.
- Eval, task, trigger, and workflow definitions with filenames containing
`.test.` or `.spec.` are ignored during discovery. Rename production
definitions that use those filename segments before upgrading.

### AI providers and MCP

Expand Down
2 changes: 1 addition & 1 deletion extensions/ext-sandbox-shell-tools/deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"imports": {
"ai": "npm:ai@7.0.41",
"bash-tool": "npm:bash-tool@1.3.18",
"brace-expansion": "npm:brace-expansion@5.0.8",
"brace-expansion": "npm:brace-expansion@5.0.9",
"just-bash": "npm:just-bash@3.0.1",
"@std/assert": "jsr:@std/assert@1.0.19",
"@std/testing/bdd": "jsr:@std/testing@1.0.17/bdd",
Expand Down
Loading