Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
2020cc1
fix: replace blocking PostToolUse hook with non-blocking fire-and-stash
timvisher-dd Mar 12, 2026
4d2f058
fix: consume SDK internal turns from background tasks before returnin…
timvisher-dd Mar 12, 2026
031e1f6
fix: improve internal turn detection with task_type filter and event …
timvisher-dd Mar 12, 2026
100114c
test: add coverage for local_agent filtering and async task_notification
timvisher-dd Mar 12, 2026
7cb0dde
fix: correct misleading "microtask" comment to "macrotask"
timvisher-dd Mar 12, 2026
f8ddc87
test: add warning path and failed task_notification coverage
timvisher-dd Mar 12, 2026
550e27f
test: add edge case coverage for stopped status, error results, and b…
timvisher-dd Mar 12, 2026
0d1964a
test: replace real setTimeout delays with deterministic microtask flu…
timvisher-dd Mar 12, 2026
b8676fb
fix: address codex timer review — microtask flush before advancing an…
timvisher-dd Mar 12, 2026
7884fdf
style: fix prettier formatting in test files
timvisher-dd Mar 12, 2026
2619c5d
fix: lint errors and add bin/test for local CI validation
timvisher-dd Mar 12, 2026
e2fe2fe
fix: type test fixture helpers as any[] to fix tsc build errors
timvisher-dd Mar 12, 2026
954d96f
fix: improve bin/test comment explaining git-tracked-only format check
timvisher-dd Mar 12, 2026
d234d4d
refactor: bin/test parses CI workflow YAML instead of hardcoding steps
timvisher-dd Mar 12, 2026
52a0b6b
fix: resolve all tsc build errors for CI
timvisher-dd Mar 12, 2026
00c9470
docs: annotate minified SDK names with likely original names
timvisher-dd Mar 12, 2026
803c14f
fix: add sdk-tools.js type shim for CI npm ci resolution
timvisher-dd Mar 12, 2026
90cf520
fix: bin/test validates node_modules sync instead of blindly skipping…
timvisher-dd Mar 12, 2026
1202a42
fix: inject user replay into mock query so promptReplayed becomes true
timvisher-dd Mar 15, 2026
a53a13a
fix: replace promptReplayed with backgroundInitPending for result det…
timvisher-dd Mar 15, 2026
d488d47
fix: replace peek-once with inactivity poll loop for bg task detection
timvisher-dd Mar 15, 2026
fbd8690
test: update bg-task-leak tests for poll loop and add new coverage
timvisher-dd Mar 15, 2026
de4832a
feat: add structured stderr logging to bg-task poll loop
timvisher-dd Mar 15, 2026
64d3fb8
fix: remove inactivity timeout, keep turn open until tasks resolve
timvisher-dd Mar 15, 2026
4ee2b23
style: format bg-task-leak test with prettier
timvisher-dd Mar 15, 2026
0349bf8
fix: check cancellation before consuming background task results
timvisher-dd Mar 15, 2026
5a884f4
docs: add agent-shell rendering continuity and poll harness results
timvisher-dd Mar 15, 2026
0bcb84e
test: add regression test for cancel during backgroundInitPending
timvisher-dd Mar 15, 2026
8088cb2
chore: remove pr.md from tracking
timvisher-dd Mar 15, 2026
bbc0f2c
fix: remove duplicate imports in tools.ts introduced by rebase
timvisher-dd Mar 17, 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
53 changes: 53 additions & 0 deletions bin/test
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash
# Runs the same checks as CI by parsing .github/workflows/ci.yml directly.
# If CI steps change, this script automatically picks them up.
#
# Local adaptations:
# - `npm ci` checks if node_modules is in sync with package-lock.json
# and runs a clean install if not (CI always does npm ci).
# - `npm run format:check` checks only git-tracked files because CI
# runs on a clean checkout but locally we have untracked x.* scratch
# files that fail prettier.
set -euo pipefail

cd "$(git rev-parse --show-toplevel)"

ci_yaml=".github/workflows/ci.yml"

if ! command -v yq &>/dev/null; then
echo "error: yq is required (brew install yq)" >&2
exit 1
fi

# Extract run steps
mapfile -t names < <(yq '.jobs.build.steps[] | select(.run) | .name' "$ci_yaml")
mapfile -t commands < <(yq '.jobs.build.steps[] | select(.run) | .run' "$ci_yaml")

for i in "${!commands[@]}"; do
cmd="${commands[$i]}"
name="${names[$i]}"

echo "=== ${name} ==="

if [[ "$cmd" == "npm ci" ]]; then
# Check if node_modules matches package-lock.json. If not, run
# npm ci to match what CI does. This catches stale-dependency bugs
# like sdk-tools.d.ts resolving locally but not in CI.
if npm ls --all >/dev/null 2>&1; then
echo "(node_modules in sync — skipping npm ci)"
else
echo "(node_modules out of sync — running npm ci)"
npm ci
fi
elif [[ "$cmd" == "npm run format:check" ]]; then
# Local override: format:check on git-tracked files only
git ls-files -z '*.ts' '*.tsx' '*.js' '*.jsx' '*.json' '*.md' '*.yml' '*.yaml' '*.css' '*.html' \
| xargs -0 npx prettier --check
else
eval "$cmd"
fi

echo ""
done

echo "=== All CI checks passed ==="
Loading
Loading