Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
2c7554d
chore: ignore .worktrees
andersonleal Apr 29, 2026
4395424
feat(database): introduce iii-database worker
andersonleal Apr 30, 2026
cf44e23
ci(database): vendor e2e harness + add database-e2e workflow
andersonleal Apr 30, 2026
8918a6f
ci(database): harden run-tests.sh + workflow against transient flake
andersonleal Apr 30, 2026
47da369
ci: register iii-database in create-tag + release workflows
andersonleal Apr 30, 2026
1cbc8a1
ci(database): activate gated DB tests + fix over-specific mysql asser…
andersonleal Apr 30, 2026
e311da2
chore(database): drop unnecessary comments
andersonleal Apr 30, 2026
5459ef5
chore(database): apply consistent formatting across code base
andersonleal Apr 30, 2026
dd2ff7e
rename folder
andersonleal Apr 30, 2026
a116a66
ci: catch CI references up to the database -> iii-database rename
andersonleal Apr 30, 2026
ba359be
refactor(database): register functions via typed RegisterFunction::ne…
andersonleal May 1, 2026
a2080aa
fix(database): wrap mysql query timeout around row streaming, not jus…
andersonleal May 1, 2026
f2cfa50
fix(database): decode TIMESTAMP (no tz) via NaiveDateTime, not DateTi…
andersonleal May 1, 2026
b163890
fix(database): decode postgres NUMERIC via rust_decimal, not String
andersonleal May 1, 2026
31289d6
fix(database): route sqlite tx steps via column_count, not text matching
andersonleal May 1, 2026
3200fe8
fix(database): six review findings (tx guards, signal handling, log r…
andersonleal May 1, 2026
4f2dff3
fix(database): NUMERIC decode fallback + preserve tx step index in ro…
andersonleal May 1, 2026
3739d89
test(database): integration coverage for NUMERIC binary-fallback path
andersonleal May 1, 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
1 change: 1 addition & 0 deletions .github/workflows/create-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
required: true
type: choice
options:
- iii-database
- iii-lsp
- iii-lsp-vscode
- image-resize
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/iii-database-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: iii-database E2E

on:
pull_request:
paths:
- 'iii-database/**'
- '.github/workflows/iii-database-e2e.yml'
workflow_dispatch:

concurrency:
group: iii-database-e2e-${{ github.ref }}
cancel-in-progress: true

env:
CARGO_TERM_COLOR: always

jobs:
e2e:
name: Harness (sqlite + postgres + mysql)
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4

- name: Rewrite SSH to HTTPS for public deps
run: git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo registry & build
uses: Swatinem/rust-cache@v2
with:
workspaces: iii-database

- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: iii-database/tests/e2e/workers/harness/package-lock.json

# GHA `services:` blocks can't pass `-c wal_level=logical` to postgres,
# which the row-change tests require. Reuse the same docker-compose
# stack the harness uses locally for dev/CI parity.
- name: Install iii engine (latest from main)
run: |
curl -fsSL --retry 3 --retry-connrefused --retry-delay 5 \
https://install.iii.dev/iii/main/install.sh | sh
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
Comment thread
andersonleal marked this conversation as resolved.

- name: Verify engine
run: iii --version

- name: Run harness
working-directory: iii-database/tests/e2e
# --with-cargo-test runs `cargo test --all-features` against the
# already-running postgres + mysql so the gated driver/pool tests
# actually exercise their target DBs (otherwise they early-return).
run: ./run-tests.sh --with-cargo-test

- name: Upload report on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: iii-database-e2e-report
path: |
iii-database/tests/e2e/reports/
retention-days: 7
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: Release
on:
push:
tags:
- 'iii-database/v*'
- 'iii-lsp/v*'
- 'image-resize/v*'
- 'mcp/v*'
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ target/
.idea/
.DS_Store
docs
.worktrees
node_modules
package-lock.json
pnpm-lock.yaml
yarn.lock
!iii-database/tests/e2e/workers/harness/package-lock.json
iii_workers/
5 changes: 5 additions & 0 deletions iii-database/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
target/
*.db
*.sqlite
*.sqlite-journal
/data/
Loading
Loading