Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
31b3162
D15: replace yarn with pnpm 11
prabhu Aug 25, 2026
8b2b1dc
D12: replace ESLint with Biome and mocha with node:test
prabhu Aug 25, 2026
9898608
ci: run on pushes to any release/* branch
prabhu Aug 25, 2026
9efd3f2
ci: fix malformed setup-python step in test job
prabhu Aug 25, 2026
cde13c9
D02: marshalling correctness — int64/BigInt, strict binding, extended…
prabhu Aug 25, 2026
665758f
ci: use the default artifact retention period
prabhu Aug 25, 2026
32186bd
D03: promise API, async iteration, transactions, disposal, cancellation
prabhu Aug 25, 2026
de9294b
D04: JSDoc on every export, generated types, type tests
prabhu Aug 25, 2026
7251d90
D05: native state machine, backup call guard, statement lifetime, tra…
prabhu Aug 25, 2026
55b5483
Bound the repeated-abort test's cost: a lost interrupt race ran the f…
prabhu Aug 25, 2026
86e298f
Simplify abort tests: one modest query, so a lost interrupt race cost…
prabhu Aug 25, 2026
6abb0b6
User-defined functions, aggregates, window functions and collations
prabhu Aug 26, 2026
ca9be91
Hooks, authorizer, progress handler, WAL control and introspection
prabhu Aug 26, 2026
f51928b
Sessions, changesets, serialize/deserialize and incremental BLOB I/O
prabhu Aug 26, 2026
6834fb7
Worker-thread safety, environment teardown guards and the connection …
prabhu Aug 27, 2026
a0e1396
Electron support: verified Node-API 10 floor, fail-well binding loade…
prabhu Aug 27, 2026
5efb6ed
Electron test harness: watchdogs and signal handling so no Electron i…
prabhu Aug 27, 2026
41808fc
Fix a load-sensitive race in the backup test helper; add a local cont…
prabhu Aug 27, 2026
eabbe35
Document the local container test matrix
prabhu Aug 27, 2026
f0b0bf8
Fix a Windows-only path bug in the backup guard test; run the suite o…
prabhu Aug 27, 2026
8a2442b
Run tests without shell globbing, refuse empty runs, and gate publish…
prabhu Aug 27, 2026
3ec7c51
fix windows arm timeout
prabhu Aug 27, 2026
64b6a52
CI: test Node 24 and 26; consume the shipped prebuilds under Node 26
prabhu Aug 27, 2026
be47b44
Fix Windows Node 26 source builds: node-gyp 12 -> 13; refresh action …
prabhu Aug 27, 2026
e966505
Fix marshalling test race: sync bind paths need a drained connection
prabhu Aug 27, 2026
ab99a86
Make ensureExists race-safe: recursive mkdir instead of check-then-cr…
prabhu Aug 27, 2026
5bc8e4a
Enforce the Node permission model across every open, ATTACH and exten…
prabhu Aug 28, 2026
bc52b2a
Benchmark suite with an RME gate, a baseline comparison, and a workin…
prabhu Aug 28, 2026
ad00b21
Rebuild the sync and async read paths around a generated per-shape ro…
prabhu Aug 28, 2026
9d1b165
Bind sync parameters straight onto the statement, with no per-paramet…
prabhu Aug 28, 2026
15d5468
Bind named parameters without coercing every key or re-reading the gl…
prabhu Aug 28, 2026
50c3bc8
Import the library by file URL so the no-codegen test resolves on Win…
prabhu Aug 28, 2026
29180c5
Fix two dead doc links and record the cross-language row-cost result
prabhu Aug 29, 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
16 changes: 0 additions & 16 deletions .eslintrc.cjs

This file was deleted.

63 changes: 63 additions & 0 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Benchmarks (Deliverable 13). A dedicated workflow rather than a job in
# ci.yml, because the nightly `schedule` trigger would wake every job in
# that file; here it wakes exactly this one.
#
# Posture: INFORMATIONAL. `continue-on-error: true` means this job cannot
# fail a build, and that is deliberate — the D11 precedent (sqlcipher is
# post-merge-only so an apt hiccup cannot gate every push) applies more
# strongly here: timing on shared GitHub runners is noisier than apt, and
# a flaky gate is worse than an ungated check. The gate itself still
# exists and still reports: bench:compare exits 2 on a >10% median
# regression, the per-case verdicts are in the log, and the JSON is
# uploaded as an artifact so a regression can be promoted into
# bench/baseline.json deliberately (`--baseline-from`). Local runs on a
# quiet machine are the enforceable gate.
#
# Runner: ubuntu-22.04 is a pinned label (ubuntu-latest floats across a
# mixed pool — results from a mixed pool are noise). Node is pinned to 24
# to match the environment the committed baselines were captured on.
name: bench
on:
workflow_dispatch:
schedule:
# Nightly at 03:07 UTC — off the top of the hour, when runner
# contention from everyone else's cron spikes.
- cron: '7 3 * * *'
push:
branches:
- 'release/*'

jobs:
bench:
runs-on: ubuntu-22.04
timeout-minutes: 40
# Informational: see the workflow header. A red bench job annotates
# and uploads; it cannot block a merge or a publish.
continue-on-error: true
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup pnpm
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
scope: '@appthreat'
- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
- name: Install dependencies
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Rebuild native module (required after --ignore-scripts)
run: pnpm run rebuild
# RME gate + baseline comparison. On a shared runner expect some
# REJECTED cases; that is the harness refusing to report noise, not
# a failure. The verdict lines and the exit code land in the log.
- name: Run benchmarks and compare against baseline
run: pnpm run bench:compare --json bench-results.json
- name: Upload bench results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: bench-results-${{ github.sha }}
path: bench-results.json
Loading