Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
43c7886
fix: replace blocking PostToolUse hook with non-blocking fire-and-stash
timvisher-dd Mar 12, 2026
b7b8f0a
fix: consume SDK internal turns from background tasks before returnin…
timvisher-dd Mar 12, 2026
2abaa7b
fix: improve internal turn detection with task_type filter and event …
timvisher-dd Mar 12, 2026
910451b
test: add coverage for local_agent filtering and async task_notification
timvisher-dd Mar 12, 2026
30e0ac6
fix: correct misleading "microtask" comment to "macrotask"
timvisher-dd Mar 12, 2026
0d90add
test: add warning path and failed task_notification coverage
timvisher-dd Mar 12, 2026
4541324
test: add edge case coverage for stopped status, error results, and b…
timvisher-dd Mar 12, 2026
841de16
test: replace real setTimeout delays with deterministic microtask flu…
timvisher-dd Mar 12, 2026
4cebf4a
fix: address codex timer review — microtask flush before advancing an…
timvisher-dd Mar 12, 2026
2f97d55
style: fix prettier formatting in test files
timvisher-dd Mar 12, 2026
5d6efc7
fix: lint errors and add bin/test for local CI validation
timvisher-dd Mar 12, 2026
409eb8c
fix: type test fixture helpers as any[] to fix tsc build errors
timvisher-dd Mar 12, 2026
3479a7d
fix: improve bin/test comment explaining git-tracked-only format check
timvisher-dd Mar 12, 2026
cb3e656
refactor: bin/test parses CI workflow YAML instead of hardcoding steps
timvisher-dd Mar 12, 2026
be9c8fd
fix: resolve all tsc build errors for CI
timvisher-dd Mar 12, 2026
3ca7d4a
docs: annotate minified SDK names with likely original names
timvisher-dd Mar 12, 2026
a6d2a3f
fix: add sdk-tools.js type shim for CI npm ci resolution
timvisher-dd Mar 12, 2026
629bb56
fix: bin/test validates node_modules sync instead of blindly skipping…
timvisher-dd Mar 12, 2026
fa5a740
fix: inject user replay into mock query so promptReplayed becomes true
timvisher-dd Mar 15, 2026
9d73ed6
fix: replace promptReplayed with backgroundInitPending for result det…
timvisher-dd Mar 15, 2026
4cedcc4
fix: replace peek-once with inactivity poll loop for bg task detection
timvisher-dd Mar 15, 2026
dcaaa3b
test: update bg-task-leak tests for poll loop and add new coverage
timvisher-dd Mar 15, 2026
75a0202
feat: add structured stderr logging to bg-task poll loop
timvisher-dd Mar 15, 2026
dd66706
fix: remove inactivity timeout, keep turn open until tasks resolve
timvisher-dd Mar 15, 2026
cc6fdc8
style: format bg-task-leak test with prettier
timvisher-dd Mar 15, 2026
4bc606e
fix: check cancellation before consuming background task results
timvisher-dd Mar 15, 2026
ea89a5e
docs: add agent-shell rendering continuity and poll harness results
timvisher-dd Mar 15, 2026
c962411
test: add regression test for cancel during backgroundInitPending
timvisher-dd Mar 15, 2026
79eba69
chore: remove pr.md from tracking
timvisher-dd Mar 15, 2026
3f4d42e
fix: remove duplicate imports in tools.ts introduced by rebase
timvisher-dd Mar 17, 2026
2f998b7
fix: resolve rebase conflicts with upstream session_state_changed and…
timvisher-dd Mar 30, 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