Skip to content
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
d839b25
feat(transport): prove the IHttpServer port is Hono-free — second ada…
claude Jul 16, 2026
94eef6f
fix(plugin-node-server): harden query/params against prototype pollut…
claude Jul 16, 2026
15dfb55
fix(plugin-node-server): eliminate the dynamic property-write sink Co…
claude Jul 16, 2026
b0ba7b0
refactor(qa): reposition the port-conformance adapter as a private QA…
claude Jul 16, 2026
dc6507c
refactor(qa): migrate dogfood + downstream-contract into packages/qa/…
claude Jul 16, 2026
0e970c1
chore: retrigger CI — Actions did not fire on dc6507c
claude Jul 16, 2026
569b54a
Merge remote-tracking branch 'origin/main' into claude/objectql-proto…
claude Jul 16, 2026
781c3e5
docs(changeset): fix dogfood path breadcrumb after packages/qa migration
claude Jul 16, 2026
97cf089
Merge remote-tracking branch 'origin/main' into claude/objectql-proto…
claude Jul 16, 2026
eb64258
fix(ci): build the examples' dependency closure explicitly in the typ…
claude Jul 16, 2026
8e81f62
fix(ci): cap turbo test concurrency at the runner's core count (OOM m…
claude Jul 16, 2026
fa79b6a
Merge remote-tracking branch 'origin/main' into claude/objectql-proto…
claude Jul 16, 2026
674ac0d
fix(qa): bump repo-relative path in the newly-merged declarative-mcp …
claude Jul 16, 2026
69825ad
ci: TEMPORARY #3071 diagnostics — isolated verbose plugin-audit runs …
claude Jul 16, 2026
4d87fa6
merge: absorb pre-squash branch history (content already in main via …
claude Jul 16, 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
29 changes: 29 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,41 @@ jobs:
# while passing everywhere else — first seen on main @4f8c2d1,
# reproduced twice on #3037. Matching concurrency to the core count
# bounds peak memory; the job is CPU-bound anyway.
# ── TEMPORARY DIAGNOSTICS for #3071 — remove before merge ────────────
# plugin-audit#test dies on the hosted runner with zero captured output
# (3× deterministic; passes locally under Node 20/22 with the exact CI
# command). Run it ISOLATED first — fresh machine, no turbo grouping,
# verbose reporter — so its real output cannot be mangled by the GH log
# pipeline under burst. SIGQUIT before the timeout makes Node dump all
# thread stacks if it hangs.
- name: DIAG 3071 — plugin-audit isolated, verbose (temporary)
if: github.event_name == 'pull_request'
run: |
node --version
free -h || true
echo "── isolated vitest run ──"
timeout -s QUIT 240 pnpm --filter @objectstack/plugin-audit exec vitest run --reporter=verbose --no-file-parallelism; echo "exit=$?"
continue-on-error: true

- name: Run affected tests (PR)
if: github.event_name == 'pull_request'
env:
TURBO_SCM_BASE: ${{ github.event.pull_request.base.sha }}
run: pnpm turbo run test --affected --concurrency=4

# ── TEMPORARY DIAGNOSTICS for #3071 — remove before merge ────────────
# If the turbo step above still kills plugin-audit silently, dmesg shows
# whether the kernel OOM-killer fired, and the second isolated re-run
# distinguishes "machine state after the full graph" from "fresh".
- name: DIAG 3071 — post-turbo dmesg + re-run (temporary)
if: github.event_name == 'pull_request' && always()
run: |
echo "── kernel OOM traces ──"
sudo dmesg | grep -iE "oom|killed process|out of memory" | tail -20 || echo "(no OOM traces)"
echo "── plugin-audit re-run on post-graph machine ──"
timeout -s QUIT 240 pnpm --filter @objectstack/plugin-audit exec vitest run --reporter=verbose --no-file-parallelism; echo "exit=$?"
continue-on-error: true

# Push to main: full run, but exclude spec's plain test task — the
# coverage step below executes the exact same 250-file spec suite once,
# with coverage. Previously the spec suite ran twice per push.
Expand Down
Loading