Current Status
Completed on July 30, 2026. PR #95 merged as dd40dc0c2d4122c70f04fdb3e76ed114451c0e66, closing the cached psycopg metadata transaction before normal module update subprocesses and the analogous OpenUpgrade paths.
The final real tenant preview canary built from merged devkit main passed twice. Revision A created the preview and completed the managed Odoo module update; revision B refreshed the same compose (created_compose=false) and again reported module_install_update_status=pass. A headed browser rendered the revision-B QWeb marker, proving the prior self-blocking DDL failure is resolved in the supported preview path.
Validation remains: 227 tests passed with one expected skip; focused tests, Ruff, format, package build, and CLI smoke passed. JetBrains inspection was tooling-unknown because no content root was established, with no code finding.
Finish Line
The shared addon install/update workflow releases its metadata-query transaction before launching Odoo's module mutation subprocess, so fresh and existing databases can upgrade without the parent process blocking its own DDL.
Acceptance Criteria
- Close/reset the workflow database connection after reading requested module states and before invoking Odoo.
- Add a regression proving the metadata-query connection is released before the subprocess runs, including failure cleanup.
- Preserve existing install/update module selection and final connection-reset behavior.
- Pass the focused data-workflow tests, full devkit test suite, lint/type/format gates, and IDE inspection.
- Merge before rerunning the final two-revision Cell Mechanic preview canary.
Relationships
Next Action
Closed. Continue normal devkit adoption through rebuilt tenant artifacts. Treat any future module-update lock timeout as a new regression and capture the parent/child database sessions before reopening this issue.
Current Status
Completed on July 30, 2026. PR #95 merged as
dd40dc0c2d4122c70f04fdb3e76ed114451c0e66, closing the cached psycopg metadata transaction before normal module update subprocesses and the analogous OpenUpgrade paths.The final real tenant preview canary built from merged devkit main passed twice. Revision A created the preview and completed the managed Odoo module update; revision B refreshed the same compose (
created_compose=false) and again reportedmodule_install_update_status=pass. A headed browser rendered the revision-B QWeb marker, proving the prior self-blocking DDL failure is resolved in the supported preview path.Validation remains: 227 tests passed with one expected skip; focused tests, Ruff, format, package build, and CLI smoke passed. JetBrains inspection was tooling-unknown because no content root was established, with no code finding.
Finish Line
The shared addon install/update workflow releases its metadata-query transaction before launching Odoo's module mutation subprocess, so fresh and existing databases can upgrade without the parent process blocking its own DDL.
Acceptance Criteria
Relationships
Next Action
Closed. Continue normal devkit adoption through rebuilt tenant artifacts. Treat any future module-update lock timeout as a new regression and capture the parent/child database sessions before reopening this issue.