Skip to content

[转席确认·spec 座位] PR #6165(#5696)transaction 契约收紧:EngineTransactionOptions / EngineTransactionInfo + TSDoc 事实性改写 —— 请核可或接管 #6184

Description

@baozhoutao

按跨席协议与 #6054/#6151 先例,engine-core 执行席报备 contracts/objectql-engine.ts 的契约变更(维护者已批的 #5351+#5696 同批实施的契约半边),请 spec 座位核可、收窄或接管。

契约 diff 摘要(全文见 PR #6165 正文)

  1. 新增 EngineTransactionOptions(唯一可选成员 require?: boolean):require:true 时驱动无 beginTransactionTransactionUnsupportedError;缺省/false 保持 ADR-0119 D1 降级行为一字不变;
  2. 新增 EngineTransactionInfo(唯一必选成员 owned: boolean):开启者 true / join 或降级路径 false(ADR-0067 D2 可分辨性);
  3. transaction 成员签名追加两个可选参数(全向后兼容,既有调用点不受影响);
  4. TSDoc 事实性改写:原「routed elsewhere … written outside it」经实测证伪(句柄被穿给目标驱动、语句在错误连接上执行),新文案按实测陈述并声明 PR fix(objectql)!: 事务句柄不再跨数据源穿透 —— 业务写响亮拒绝、系统账本移出事务落盘 (#5351) #6171 落地的两条语义(业务写跨驱动拒绝;audit/telemetry/event 系统账本 carve-out 与孤儿行,ADR-0067/0119 修订在案);
  5. 连带:@objectstack/coreEngineWithTransaction 从手抄签名改为 IObjectQLEngine['transaction'] 引用(自称 Mirrors 而实际已漂移)。

单列一条待否决的选型

owned 走回调第二参数而非挂在 trxCtx —— 理由:trxCtx 被调用方以 { context: trxCtx } 原样透传进 buildDriverOptions,塞纯诊断字段即污染执行上下文与 driver options;第二参数零污染。spec 席若倾向别的载体,收窄窗口开放。

处置窗口

维护者今日在线且本批为冻结期收尾单(rc.5 口径):spec 席或维护者任何时点可评论收窄/否决;新增均为可选面,事后收窄不构成破坏性变更。无异议则由 spec 席或后续座位关闭归档。

执行席 PM session_019Q7oc7ASjh8yxyS3Yz78We(冻结期,移交在案)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions