Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"browse": "./browse/dist/browse"
},
"scripts": {
"build": "bun run gen:skill-docs && bun run gen:skill-docs --host codex && bun build --compile browse/src/cli.ts --outfile browse/dist/browse && bun build --compile browse/src/find-browse.ts --outfile browse/dist/find-browse && bun build --compile bin/gstack-global-discover.ts --outfile bin/gstack-global-discover && bash browse/scripts/build-node-server.sh && git rev-parse HEAD > browse/dist/.version && rm -f .*.bun-build || true",
"build": "bash scripts/build-artifacts.sh",
"gen:skill-docs": "bun run scripts/gen-skill-docs.ts",
"dev": "bun run browse/src/cli.ts",
"server": "bun run browse/src/server.ts",
Expand Down
36 changes: 36 additions & 0 deletions scripts/build-artifacts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

build_or_wrap() {
local entry="$1"
local outfile="$2"
local rel_script="$3"

mkdir -p "$(dirname "$outfile")"
if bun build --compile "$entry" --outfile "$outfile"; then
return 0
fi

echo "warning: bun build --compile failed for $entry; falling back to bun run wrapper at $outfile" >&2
cat > "$outfile" <<EOF
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="\$(cd "\$(dirname "\$0")" && pwd)"
exec bun run "\$SCRIPT_DIR/$rel_script" "\$@"
EOF
chmod +x "$outfile"
}

bun run gen:skill-docs
bun run gen:skill-docs --host codex

build_or_wrap "browse/src/cli.ts" "browse/dist/browse" "../src/cli.ts"
build_or_wrap "browse/src/find-browse.ts" "browse/dist/find-browse" "../src/find-browse.ts"
build_or_wrap "bin/gstack-global-discover.ts" "bin/gstack-global-discover" "gstack-global-discover.ts"

bash browse/scripts/build-node-server.sh
git rev-parse HEAD > browse/dist/.version
rm -f .*.bun-build
27 changes: 27 additions & 0 deletions test/gen-skill-docs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1378,6 +1378,33 @@ describe('setup script validation', () => {
});
});

describe('build script validation', () => {
const pkg = JSON.parse(fs.readFileSync(path.join(ROOT, 'package.json'), 'utf-8'));
const buildScript = fs.readFileSync(path.join(ROOT, 'scripts', 'build-artifacts.sh'), 'utf-8');

test('package.json build delegates to the build-artifacts helper', () => {
expect(pkg.scripts.build).toBe('bash scripts/build-artifacts.sh');
});

test('build helper falls back to bun run wrappers when bun compile fails', () => {
expect(buildScript).toContain('build_or_wrap()');
expect(buildScript).toContain('bun build --compile');
expect(buildScript).toContain('falling back to bun run wrapper');
expect(buildScript).toContain('exec bun run');
});

test('build helper covers all compiled entrypoints that setup depends on', () => {
expect(buildScript).toContain('build_or_wrap "browse/src/cli.ts" "browse/dist/browse" "../src/cli.ts"');
expect(buildScript).toContain('build_or_wrap "browse/src/find-browse.ts" "browse/dist/find-browse" "../src/find-browse.ts"');
expect(buildScript).toContain('build_or_wrap "bin/gstack-global-discover.ts" "bin/gstack-global-discover" "gstack-global-discover.ts"');
});

test('build path no longer hides compile failures behind a blanket || true', () => {
expect(pkg.scripts.build).not.toContain('|| true');
expect(buildScript).not.toContain('|| true');
});
});

describe('telemetry', () => {
test('generated SKILL.md contains telemetry start block', () => {
const content = fs.readFileSync(path.join(ROOT, 'SKILL.md'), 'utf-8');
Expand Down
Loading