Skip to content

feat(transaction): transaction savepoint orchestration integration - #23

Merged
megyptm merged 6 commits into
mainfrom
codex/transaction-savepoint-orchestration-draft
Sep 18, 2026
Merged

megyptm merged 6 commits into
mainfrom
codex/transaction-savepoint-orchestration-draft

Conversation

@megyptm

@megyptm megyptm commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

النطاق النهائي

هذا هو Integration Draft النهائي لإصدار v1.4.0 من maatify/persistence.

يدمج العمل المكتمل التالي:

  • WU1 — إضافة عقد/runtime savepoint transaction بصورة additive مع Unit/Regression coverage.
  • WU2 — Real MySQL savepoint integration coverage وresidue verification.
  • Finalization — ADR وPackage Reference وREADME وPDO Transaction Architecture وتوثيق release-facing.
  • Release Preparation — تجهيز v1.4.0 وإزالة transient phase artifacts وتوحيد maatify.dev.
  • Standards Adoption & Compliance — selective pinned adoption من Maatify/php-engineering-standards وإغلاق فجوات Composer/CI/Testing/Presentation/Schema وConsumer Verification Harness.

Runtime contract

  • TransactionRunnerInterface لم يتغير.
  • PdoTransactionRunner يظل Public / Supported / Not Deprecated وسلوكه المنشور في v1.3.0 لم يتغير.
  • SavepointTransactionRunnerInterface إضافة جديدة تمتد من TransactionRunnerInterface.
  • PdoSavepointTransactionRunner يوفّر operation-local savepoint isolation داخل caller-owned transactions ويحافظ على normal owned transaction behavior عند عدم وجود transaction نشطة.
  • TransactionExecutionException يغطي package-detected non-throwing transaction-control failures.
  • لا يستبدل أي runner الآخر.
  • same-PDO / same-connection boundary موثق ومختبر.
  • لا يوجد cross-connection/distributed transaction guarantee.

Standards adoption

الـAdoption مثبت حصريًا على:

Maatify/php-engineering-standards@44c8827095ab4007c355aa21c56b853f3b49d795

Active Profiles على Scope /:

  • composer-package
  • repository-governance

جميع ملفات Standards/Profile المحلية تم التحقق منها byte-for-byte مقابل الـpinned upstream commit، بدون mixed-commit adoption.

Release state

  • Target release: v1.4.0
  • CHANGELOG final release date: 2026-09-18
  • لا يوجد Composer version field.
  • لا يوجد composer.lock.
  • لا يوجد v1.4.0 tag أو GitHub Release قبل الدمج.
  • الإصدار مخطط للنشر فور Squash Merge هذا الـDraft إلى main.

Fresh Final Review

Final Draft HEAD:

ea43ed5707c61d00539fac4686bd12336ccb9259

Latest main reviewed:

e5157e8e40044684ba482153d82092a568e2e504

النتيجة:

  • Draft is 0 behind latest main.
  • merge-base يطابق latest main.
  • لا يوجد divergence.
  • production changes additive ومحصورة في savepoint capability الجديدة؛ runtime القديم لم يتغير.
  • transient Blueprint/Verification artifacts غير موجودة في الحالة النهائية.
  • legacy docs/standards/ غير موجود بعد selective adoption migration.
  • release-facing documentation متزامنة مع v1.4.0.

Final CI evidence

CI run على نفس Final Draft HEAD انتهى success، ويشمل:

  • Workflow lint / actionlint
  • Composer strict validation / dependency resolution / platform requirements / audit
  • strict optimized PSR-4 verification
  • PHP syntax
  • PHPStan max
  • PHP CS Fixer
  • Unit/Regression على PHP 8.2 و8.3 و8.4 و8.5
  • Lowest dependencies على PHP 8.2 + MySQL 8.4.10
  • Consumer Verification Harness على real MySQL
  • Integration + repeatability على PHP 8.2 و8.5 + MySQL 8.4.10
  • MySQL residue verification
  • Repository integrity
  • CI Gate

Final Review: PASS — Ready for owner-controlled Squash Merge to main, followed immediately by publishing v1.4.0.

megyptm and others added 5 commits September 17, 2026 09:21
* feat(transaction): add savepoint transaction runner

* fix(transaction): tighten savepoint cleanup semantics
* test(transaction): verify savepoints on MySQL

* ci: verify transaction savepoint table residue
* docs: Finalize transaction savepoint orchestration implementation

* Update and finalize docs regarding SavepointTransactionRunnerInterface
* Generate ADR 0003 for transaction savepoint orchestration
* Update package reference, README, and CHANGELOG
* Add a verification report on local testing
* Ensure all tests, PHPStan max, and php-cs-fixer pass
* Unrelated fixes left untouched

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* docs: clarify transaction runner distinctions and ADR metadata

* Clarify that PdoTransactionRunner and PdoSavepointTransactionRunner are both permanent, public, supported options, and neither replaces the other.
* Ensure wording regarding operation-local savepoint orchestration strictly notes that it "does not commit or fully roll back the caller-owned transaction, and the outer transaction remains active."
* Add standard metadata (Status, Decision date, Runtime status, Implementation authorization, Related contract) to ADR 0003.
* Align verification report with the precise MySQL 8.4 boundary and explicitly mention MySQL residue verification, removing unverified data points.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
* Prepare v1.4.0 release

Updates CHANGELOG.md for the new release, updates the transaction savepoint
ADR and its index to show Implemented for v1.4.0. No runtime changes.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Clean up release documentation and migrate domain

- Deletes transient phase artifacts.
- Adds canonical `PDO_TRANSACTION_ARCHITECTURE.md`.
- Synchronizes ADR #3 and its index to point to the new architecture document.
- Updates README and Package Reference to link to the new architecture doc.
- Performs repository-wide string replacement from `maatify.com` to `maatify.dev`.
- Retains existing v1.4.0 preparation state.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Fix documentation missing items and failure precedence semantics

- Adds missing SavepointTransactionRunnerInterface and PdoSavepointTransactionRunner to the public API inventory in PERSISTENCE_PACKAGE_REFERENCE.md.
- Corrects PDO_TRANSACTION_ARCHITECTURE.md to detail exact failure precedence for Savepoints, rather than a broad claim that callbacks always return.
- Confirms zero stale phase artifacts, `maatify.com` domains, and "pending release" verbiage remain.
- Updates metadata preparation description for the PR.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Update README to accurately reflect both transaction runners

This commit ensures the README represents both v1.3.0 and v1.4.0
capabilities symmetrically without duplicating low-level details.
It updates Key Features, the Transaction Usage section, and the
Critical Runtime Behavior section to include PdoSavepointTransactionRunner.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Correct PdoSavepointTransactionRunner cleanup wording in README

Updates the Critical Runtime Behavior section to accurately reflect that
savepoint cleanup can fail, clarifying the exact return value and best-effort
rollback semantics without duplicating full architectural details.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Refine PdoSavepointTransactionRunner fallback wording in README

In the transaction usage selection section, this corrects the fallback
wording to clarify that it attempts best-effort rollback without fully
terminating the caller-owned transaction.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
* chore: adopt pinned standards and close compliance gaps

* fix: type consumer harness process pipes

* chore: finalize release-facing compliance wording (#29)
@megyptm
megyptm marked this pull request as ready for review September 18, 2026 03:31
@megyptm
megyptm merged commit 2c6dbe2 into main Sep 18, 2026
10 checks passed
@megyptm
megyptm deleted the codex/transaction-savepoint-orchestration-draft branch September 18, 2026 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant