Now that the minimum supported Node.js version is 22, `node --run` is
available everywhere. It avoids the npm process-spawn overhead and
matches the style already used in package.json scripts.
Affects all GitHub Actions workflows that invoke npm scripts and the
website/server Dockerfile bundle step. `npm ci` is left as-is since it
is npm-specific.
Update all documentation, build configuration, and source comments
to reflect the completed migration from tiktoken to gpt-tokenizer.
- Update tokenCount.encoding description to say "OpenAI-compatible
tokenization" with gpt-tokenizer link (README + 15 language docs)
- Remove tiktoken from bundling external deps list since
gpt-tokenizer is pure JS (README + 15 language docs)
- Remove tiktoken COPY from Dockerfile and external from bundle.mjs
- Simplify source code comments removing migration artifacts
- Regenerate scripts/memory/package-lock.json
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the GitHub social link icon with an interactive GitHub star button
(via github-buttons) that displays the live star count. The button is shown
in the navbar on desktop and in the hamburger menu on mobile.
Also fix the server Dockerfile for local development by downgrading npm to
avoid the --min-release-age / --before conflict with Node 24.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace @google-cloud/logging-winston with Console transport and Cloud Logging
severity mapping. Cloud Run automatically sends stdout to Cloud Logging, so
a dedicated transport is unnecessary.
Changes:
- Remove @google-cloud/logging-winston dependency
- Add severity mapping for Cloud Logging compatibility
- Add trace context extraction for distributed tracing
- Implement code splitting for server and worker bundles
- Add worker-entry.ts for minimal worker bundle
- Simplify Dockerfile to only copy tinypool and tiktoken
Move esbuild bundling and WASM collection from Dockerfile to package.json
for easier local testing and maintenance.
Added scripts:
- bundle: Full bundle (build + esbuild + wasm)
- bundle:esbuild: Run esbuild bundling
- bundle:wasm: Copy tree-sitter WASM files
- start:bundle: Run bundled server locally
Add V8 compile cache support to reduce Cloud Run cold start latency.
The cache is pre-generated at Docker build time using a warmup script,
so subsequent container starts use pre-compiled code.
Changes:
- Add warmup.mjs script to generate compile cache at build time
- Add WARMUP_MODE check to skip server initialization during warmup
- Set NODE_COMPILE_CACHE environment variable in Dockerfile
- Run warmup script during Docker build to pre-populate cache
When bundling the server with esbuild, tiktoken was being inlined which
caused the WASM file path resolution to fail. tiktoken loads its WASM
files from __dirname at runtime, so it must be kept as an external
dependency to preserve correct path resolution.
This fixes the Cloud Run deployment error:
"Missing tiktoken_bg.wasm"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use find command to locate tree-sitter WASM files regardless of
node_modules hoisting. This fixes Cloud Run deployment failures
where WASM files were not found at the expected path.
- Update Dockerfile for bundled production mode with esbuild
- Copy WASM files and tinypool for runtime
- Set environment variables for bundled worker path
- Update compose.yml to disable bundled mode for local development
- Add git to builder and deps stages for GitHub-based npm dependencies
- Update --only=production to --omit=dev (npm warning fix)
- Update package-lock.json with new repomix dependency
Alpine images often omit CA certificates needed for HTTPS git operations. Add ca-certificates to ensure remote cloning/pulls succeed at runtime.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implement multi-stage build with production-only dependencies to improve Cloud Run startup performance. Reduce image size by 11% while maintaining all functionality including git support for remote repository processing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>