Repository navigation
Conversation
aersam
marked this pull request as ready for review
October 31, 2026 06:00
9 tasks
…is reachable; add MSSQL container user (#64) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…64) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n; treat locked worktrees as live; bump to 0.18.0 (#64) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #64
What changed
1. Container engine (blocking item in #64)
_docker.client()falls back to thepodman/dockerCLI when no API socket is reachable (rootless Podman without a systemd user session).PGDEVKIT_CONTAINER_ENGINE=docker|podmanforces the CLI; unset/autotries the SDK first. Applies to the Postgres and the MSSQL container. Secrets are passed via the child environment, not argv.PGDEVKIT_TESTDB_MSSQL_CONTAINER_USERis passed asuser=/--user.2. Generated schema + fast reset (blocking item in #64)
ensure_testdb(..., apply=callable(conn), apply_scripts=True)(alsoreset_testdb): MSSQL-only schema-provider hook, after or instead of thedatabase/files.snapshot_testdb(name="template")/restore_testdb(name="template"): SQL Server database snapshots. Snapshot files go next to the data files (so they follow a tmpfs mount) or intoPGDEVKIT_TESTDB_MSSQL_SNAPSHOT_DIR. Snapshots are dropped with their database and never reported as orphans. A restore needs the sole snapshot of the database, so it raises instead of dropping others.3. NAV-style names (verification in #64) — real bugs found and fixed
database/files with names like[Company$Cust_ Ledg_ Entry é]were applied in the wrong order (views before tables): dependency names came out re-quoted and never matched the file-derived names.compare:decimal(38,20)vsnumeric(38, 20)and bracket-quoted index columns / names with spaces gave false diffs; a nested-paren filter (([b]>(1))) too.update-statsquotes names correctly.4. Per-worktree names (verification in #64)
<repo>/.claude/worktrees/<id>are found. A locked worktree whose path is missing was treated as not live (its database would be dropped byclean_testdb(orphaned=True)); it now counts as live.Tests
New unit tests (CLI adapter, engine selection, naming, dependency ordering, diff normalization) and live MSSQL tests (hook, snapshot/restore round trip incl. open connection, orphan handling, NAV-style compare and stats). Full suite run locally against SQL Server 2022 under rootless Podman: 564 passed (the Postgres-container tests in
test_container.pyneed a registry config this sandbox lacks).🤖 Generated with Claude Code