Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
0d15382
📦 new: add update checker functionality and context injection
warengonzaga Feb 18, 2026
ec863b1
📦 new: implement update checker with caching and runtime detection
warengonzaga Feb 18, 2026
054b7c8
🧪 test: add comprehensive tests for update checker module
warengonzaga Feb 18, 2026
59c79d9
📦 new: add updateContext to AgentContext for software updates
warengonzaga Feb 18, 2026
c0a9883
📦 new: add software update check and context to start command
warengonzaga Feb 18, 2026
9398d21
📦 new: update package versions to 1.0.1 across all packages
warengonzaga Feb 18, 2026
4e31c8a
⚙️ setup: update CI workflows for release process and permissions
warengonzaga Feb 18, 2026
1cd2fca
🔧 update: enhance version parsing in isNewerVersion function
warengonzaga Feb 18, 2026
3f91a71
📦 new: add build step for all packages in CI workflow
warengonzaga Feb 18, 2026
080224e
⚙️ setup (ci): update package-build-flow-action to v2.0.1
warengonzaga Feb 19, 2026
6e46e61
⚙️ setup: enforce clean commit convention with husky and ci
warengonzaga Feb 19, 2026
57d3d0f
⚙️ setup (husky): add clean commit validation hook
warengonzaga Feb 19, 2026
d71d865
⚙️ setup (ci): fix security, guards, and validation issues
warengonzaga Feb 19, 2026
0407858
⚙️ setup (ci): remove redundant permissions from reusable workflow calls
warengonzaga Feb 19, 2026
a240bb6
🔧 update (ci): handle initial push and improve update-checker test
warengonzaga Feb 19, 2026
283a069
📦 new (landing): add landing page with svelte and tailwindcss
warengonzaga Feb 19, 2026
cbe57e2
⚙️ setup (ci): add deploy workflow for landing page
warengonzaga Feb 19, 2026
01135d6
⚙️ setup (landing): add build:landing script and update lockfile
warengonzaga Feb 19, 2026
af268be
⚙️ setup (husky): add error handling and allow revert commits
warengonzaga Feb 19, 2026
cf70b85
🔒 security (update-checker): sanitize version and url for prompt inje…
warengonzaga Feb 19, 2026
7094636
🧪 test (update-checker): add sanitizeForPrompt tests and improve mocking
warengonzaga Feb 19, 2026
858ff22
⚙️ setup (ci): pin action shas and scope deploy permissions
warengonzaga Feb 19, 2026
a5c1305
🔒 security (core): harden update checker cache and fetch logic
warengonzaga Feb 19, 2026
ea45a35
📦 new (landing): extract GitHubIcon component and improve accessibility
warengonzaga Feb 19, 2026
c142513
🔧 update (landing): improve scrollbar styling and Firefox support
warengonzaga Feb 19, 2026
302f44b
🔧 update (landing): clarify QuickStart step 3 description
warengonzaga Feb 19, 2026
99c228a
⚙️ setup (ci): streamline CI workflows by removing unused jobs
warengonzaga Feb 19, 2026
bab10e0
🗑️ remove: delete pre-commit script for bun test
warengonzaga Feb 19, 2026
3004a38
🔧 update (ci): add build step for workspace packages
warengonzaga Feb 19, 2026
67f0a76
🔧 update (dockerfile): upgrade bun version for builder and production…
warengonzaga Feb 19, 2026
8dc6789
🚀 release: bump version to 1.1.0 for all packages
warengonzaga Feb 19, 2026
4422bf3
🔧 update (dockerfile): remove frozen-lockfile option from bun install
warengonzaga Feb 19, 2026
958e520
📦 new: add dev:landing script for development of landing page
warengonzaga Feb 19, 2026
61699d8
📖 docs: update README with model names and licensing information
warengonzaga Feb 19, 2026
6e3e0bd
⚙️ setup: update release action to v1.2.1 and change token secret
warengonzaga Feb 20, 2026
8bb8382
📖 docs: update commit message guidelines for breaking changes
warengonzaga Feb 20, 2026
7c8f470
🔧 update: enhance commit message validation for breaking changes
warengonzaga Feb 20, 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
12 changes: 12 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,15 @@ jobs:
max_attempts: 3
timeout_minutes: 10
command: bun test

package:
needs: test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: ./.github/workflows/package.yml
secrets: inherit

container:
needs: test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: ./.github/workflows/container.yml
secrets: inherit
61 changes: 61 additions & 0 deletions .github/workflows/commit-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Commit Lint

on:
pull_request:
branches: [main, dev]
push:
branches: [main, dev]

permissions:
contents: read
pull-requests: write

jobs:
lint-commits:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Validate commit messages
run: |
# Clean Commit convention pattern
# Format: <emoji> <type>[(<scope>)]: <description>
PATTERN='^(📦|🔧|🗑️|🔒|⚙️|☕|🧪|📖|🚀) (new|update|remove|security|setup|chore|test|docs|release)( \([a-z0-9][a-z0-9-]*\))?: .{1,72}$'

if [ "${{ github.event_name }}" = "pull_request" ]; then
COMMITS=$(git log --format="%s" "${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}")
else
GITHUB_EVENT_BEFORE="${{ github.event.before }}"
GITHUB_EVENT_AFTER="${{ github.event.after }}"
if [ "$GITHUB_EVENT_BEFORE" = "0000000000000000000000000000000000000000" ]; then
# Initial push has no valid "before" SHA, so capture all reachable commits
COMMITS=$(git log --format="%s" "$GITHUB_EVENT_AFTER")
else
COMMITS=$(git log --format="%s" "${GITHUB_EVENT_BEFORE}..${GITHUB_EVENT_AFTER}")
fi
fi

FAILED=0
while IFS= read -r msg; do
[ -z "$msg" ] && continue
# Allow merge commits
if echo "$msg" | grep -qE "^Merge "; then
continue
fi
if ! echo "$msg" | grep -qP "$PATTERN"; then
echo "✖ Invalid commit message: $msg"
FAILED=1
else
echo "✔ Valid commit message: $msg"
fi
done <<< "$COMMITS"

if [ "$FAILED" -eq 1 ]; then
echo ""
echo "One or more commit messages do not follow the Clean Commit convention."
echo "Format: <emoji> <type>[(<scope>)]: <description>"
echo "Reference: https://github.com/wgtechlabs/clean-commit"
exit 1
fi
2 changes: 2 additions & 0 deletions .github/workflows/container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: Container Build
on:
workflow_call:
workflow_dispatch:
release:
types: [published]

permissions:
contents: read
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/landing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Deploy Landing Page

on:
push:
branches: [main]
paths:
- 'src/landing/**'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install

- name: Build landing page
run: bun run --cwd src/landing build

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: src/landing/dist

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
4 changes: 3 additions & 1 deletion .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
description: 'Perform dry run without publishing'
type: boolean
default: true
release:
types: [published]

permissions:
contents: read
Expand All @@ -32,7 +34,7 @@ jobs:
run: bun install --frozen-lockfile

- name: Build & Publish Packages
uses: wgtechlabs/package-build-flow-action@v2.0.0
uses: wgtechlabs/package-build-flow-action@v2.0.1
with:
monorepo: 'true'
workspace-detection: 'true'
Expand Down
16 changes: 1 addition & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ on:

permissions:
contents: write
packages: write
security-events: write
pull-requests: write

jobs:
Expand Down Expand Up @@ -42,20 +40,8 @@ jobs:
echo "changed=false" >> $GITHUB_OUTPUT
fi

package:
needs: check-version
if: needs.check-version.outputs.changed == 'true'
uses: ./.github/workflows/package.yml
secrets: inherit

container:
needs: check-version
if: needs.check-version.outputs.changed == 'true'
uses: ./.github/workflows/container.yml
secrets: inherit

release:
needs: [check-version, package, container]
needs: check-version
if: needs.check-version.outputs.changed == 'true'
runs-on: ubuntu-latest
steps:
Expand Down
3 changes: 3 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

bun "$(dirname "$0")/validate-commit-msg.mjs" "$1"
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bun test --bail
52 changes: 52 additions & 0 deletions .husky/validate-commit-msg.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { readFileSync } from "fs";

const msgFile = process.argv[2];
if (!msgFile) {
console.error("Error: No commit message file path provided.");
process.exit(1);
}
let raw;
try {
raw = readFileSync(msgFile, "utf8");
} catch (err) {
console.error(
`Error: Could not read commit message file "${msgFile}": ${err.message}`,
);
process.exit(1);
}
const firstLine = raw.replace(/\r/g, "").split("\n")[0].trim();

// Allow merge and revert commits
if (/^Merge /.test(firstLine) || /^Revert /.test(firstLine)) process.exit(0);

// Clean Commit convention pattern
// Format: <emoji> <type>[(<scope>)]: <description>
const pattern =
/^(📦|🔧|🗑\uFE0F?|🔒|⚙\uFE0F?|☕|🧪|📖|🚀) (new|update|remove|security|setup|chore|test|docs|release)( \([a-z0-9][a-z0-9-]*\))?: .{1,72}$/u;

if (!pattern.test(firstLine)) {
console.error("");
console.error("✖ Invalid commit message format.");
console.error("");
console.error(" Expected: <emoji> <type>[(<scope>)]: <description>");
console.error("");
console.error(" Types and emojis:");
console.error(" 📦 new – new features, files, or capabilities");
console.error(" 🔧 update – changes, refactoring, improvements");
console.error(" 🗑️ remove – removing code, files, or dependencies");
console.error(" 🔒 security – security fixes or patches");
console.error(" ⚙️ setup – configs, CI/CD, tooling, build systems");
console.error(" ☕ chore – maintenance, dependency updates");
console.error(" 🧪 test – adding or updating tests");
console.error(" 📖 docs – documentation changes");
console.error(" 🚀 release – version releases");
console.error("");
console.error(" Examples:");
console.error(" 📦 new: user authentication system");
console.error(" 🔧 update (api): improve error handling");
console.error(" ⚙️ setup (ci): configure github actions workflow");
console.error("");
console.error(" Reference: https://github.com/wgtechlabs/clean-commit");
console.error("");
process.exit(1);
}
Loading