Skip to content

fix: harden escrow, share authorization and personal proofs (#75–77 partial) - #99

Closed
LIghtJUNction wants to merge 4 commits into
mainfrom
work/issue-75-77-hardening
Closed

LIghtJUNction wants to merge 4 commits into
mainfrom
work/issue-75-77-hardening

Conversation

@LIghtJUNction

Copy link
Copy Markdown
Contributor

Scope

Refs #75, #76, #77. This publishes the previously delivered 20-file patch at the user's explicit request. Partial implementation only; do not close these three issues or claim deployment.

Publication and verification

Base: 054c213177afbd0834a2b8a05634157046410677, preserving both newer unrelated main commits after original ad256d0.
The input patch SHA256 is 4690abe9cdb32d294ff455d4a4e794a6d345ce932a2af8cf64b97a4ae2bbf427. Because this session cannot directly reach GitHub over Git, a one-use feature-branch materializer applied that exact checksum-verified patch. Its workflow and four transport chunks are absent from the resulting PR tree. No existing CI workflow was changed. Squash merge is intended so no temporary publication files enter main history.

Prior local evidence: 76 focused tests passed, including 24 new cases, on Python 3.13.5 with an explicitly test-only SQLite adapter, real Ed25519 and Git. This is not PostgreSQL or Python 3.15 evidence. Patch application and source compilation were independently rechecked in this session. Full existing Python 3.15/PostgreSQL/Valkey tests, conformance and build must pass on the final PR head before merge. The local-verification document records the original pre-publication state; this PR records publication and final CI evidence.

Remaining acceptance and deployment boundaries

  • [P1] 版本化客观纠纷处理与确定性仲裁 #75 remains open for full case/evidence roles, fixed candidates/conflicts/panel/quorum, arbitrator-signed split/refund/release, appeal, timeouts and recovery/doctor/selftest matrices.
  • [P2] Resource/Organization/ShareGrant 授权来源与撤权矩阵 #76 remains open for the complete cross-transport/search/Sync/attachment/cache/restoration authorization matrix. ShareGrant@2 remains read-only with empty constraints.
  • [P2] 个人空间、Legacy 遗言与荣誉语义完整验收 #77 remains open for all personal/Legacy independent signatures, CLI/TUI/recovery and complete honor-strategy matrices.
  • Existing signed CA policy and credential ceilings do not silently gain the new operations. Any deployment must explicitly review authority updates.
  • Unknown historical escrow/dispute-policy labels fail closed and require explicit reconciliation before deployment. No production credentials, money, database or deployment are changed here.

LIghtJUNction and others added 2 commits September 28, 2026 04:28
One-use feature-branch materializer. It only applies the reviewed patch and publishes that branch; it does not merge, deploy, close issues, or weaken existing CI. The materializer removes itself before the final PR tree.
Refs #75, #76, #77. Publish the reviewed partial implementation; remaining acceptance work stays open. Remove the one-use patch materializer from the resulting tree.
Copilot AI lite review requested due to automatic review settings September 27, 2026 20:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-09-27T20:35:16.452174Z a97c025 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Preserve main 2dd6a0d and its newly merged read/patch/LFS and SSH fixes. Compared both changesets against common base 054c213: their paths do not overlap. Retain the exact 20 reviewed patch blobs and re-run the unchanged full CI on the combined tree. Refs #75, #76, #77; acceptance remains partial.

Copy link
Copy Markdown
Contributor Author

Publication/integration update: final feature head is now 532660cc9329323f1d21b41b0d8979c96cce91a8, incorporating main 2dd6a0d0260f8c230a1d5b2f4ff75241113835b2 via a non-forced merge commit. Comparing both sides against 054c213 found disjoint changed paths; the net PR remains the same 20 reviewed patch files, +858/-124, with no workflow or transport-chunk files.

The local SQLite smoke was actually rerun in this publishing session: 76 tests passed in 82.07 s; JUnit reports zero failures, errors and skips. This is supporting evidence only, not production PostgreSQL evidence. The earlier baseline-head PR run was superseded after main advanced. Full unchanged Python 3.15/PostgreSQL/Valkey CI on the combined head is run 36348523874 and must finish successfully before merge.

Scoped review checked the single escrow debit path, positive/funded balance and system-account binding, current buyer proof, decision/source-proof append in the same transaction, rollback/duplicate journal guards, current grant-chain attenuation, independent-source survival, immutable personal revision verification, and display-only pins. No arbitrary arbitrator payout or new security authority is enabled. The newly merged revise_resource changes preserve the default fields/timestamp path used by these personal signatures. This is not a full acceptance review of #75–77, which remain open.

Copy link
Copy Markdown
Contributor Author

Coordination: #102 now contains a complete competing market/escrow lifecycle for #73–75, so merging both EscrowEngine implementations without reconciliation would be unsafe. For the parallel #74–76 request I am not publishing my alternative market implementation. I am isolating #76 live organization/ShareGrant/ancestor-topic revocation fixes and a real PostgreSQL cross-transport test matrix (HTTP/PathGET/GraphQL/MCP, history, search, Sync, outbox). These overlap your authorization hardening; please retain all negative cases when rebasing rather than choosing a whole-file overwrite. #77 work is outside my change.

Full combined CI 36348523874 failed with 122 collection errors because test_service imported the directory-scoped installed fixture from the bare conftest module after tests/issue_78_80/conftest.py had been imported. Let pytest resolve installed by fixture name instead, and remove the redundant re-export import in test_transfer. No fixture, production code, assertion, or CI selection changes.

Reproduced nested-conftest shadowing locally against both real test modules: 2 import errors before, all 8 selected tests collected after. Full Python 3.15/PostgreSQL CI will rerun on this commit. Refs #75, #76, #77.

Copy link
Copy Markdown
Contributor Author

CI integration fix: combined-head run 36348523874 failed during collection, before business tests ran. The newly merged nested tests/issue_78_80/conftest.py shadowed the bare conftest imported by tests/test_service.py:38, producing 122 import errors.

Commit c49cf90df2efdb7457f7224160cb224123f09f22 removes that unnecessary fixture import and the installed re-export import in tests/test_transfer.py. Pytest still resolves the original installed fixture through its directory scope. No fixture implementation, assertion, production code, or CI selection was changed. A local nested-conftest reproduction against the two real test modules failed with 2 import errors before and collected all 8 selected tests after. Full local collection is not asserted (this container lacks several PostgreSQL/Valkey dependencies).

The unchanged full Python 3.15/PostgreSQL/Valkey workflow is rerunning on the corrected head: 36348904368. Merge remains blocked on its actual outcome.

LIghtJUNction added a commit that referenced this pull request Sep 27, 2026
Integrate main b1ac767, preserving its CI shards, schema hardening and live
notification lease fences. Add group-reshare revocation, historical reads,
known-digest cache, search, Sync and independent-authority checks across
HTTP, GET path, GraphQL, MCP HTTP, CLI and MCP stdio.

Document versioned checkout/ACK/mail contracts and explicit remaining
acceptance. Remove the temporary source export workflow from the final tree;
the unchanged main CI now verifies all tests, conformance and builds.

Refs #74, #75, #76. Includes the unchanged PR #99 dependency slice; no
umbrella issue closure, production authority update or deployment.

Copy link
Copy Markdown
Contributor Author

The requested #74–76 continuation is published as #111. It starts at this PR's exact c49cf90df2efdb7457f7224160cb224123f09f22 head, preserves the existing objective escrow/share/personal-proof slice, and integrates main through b1ac767 without modifying this branch. It adds atomic versioned managed checkout, buyer-bound minimal email, signed post-settlement ACK, restored-snapshot validation and a real six-adapter share-revocation matrix. The final tree contains no temporary source-export workflow. Focused real PostgreSQL/Python 3.15 tests passed before the additional integration; #111's full final-head CI is still being verified. Neither PR should be taken as completion of the umbrella issues or as a production deployment.

LIghtJUNction added a commit that referenced this pull request Sep 27, 2026
Implement atomic digest-bound managed checkout, explicit objective settlement,
buyer-only minimal mail and signed post-settlement delivery acknowledgement.
Validate complete signed snapshots and legacy settlement identity references.
Add real HTTP/GET/GraphQL/MCP/CLI share-revocation coverage.

Preserve legacy checkout/policy semantics and integrate main 4c46671 with
all current completion fences. Includes the unchanged PR #99 dependency.

Verified head 4ef3548, tree b55140f: run 36354944861 passed 1171 business/
security tests plus 8 conformance checks, all four shards, aggregate contracts
gate and wheel/sdist builds. Zero test failures/errors/skips; exact node-ID
coverage and artifact hashes independently verified.

Refs #74, #75, #76. Remaining full arbitration, broader delivery and complete
authorization matrix acceptance stays open. No production deployment or
credential-policy update.

Copy link
Copy Markdown
Contributor Author

Closing as superseded/resolved by #111. PR #111 explicitly integrated this PR's exact head c49cf90df2efdb7457f7224160cb224123f09f22 as a dependency, passed its full four-shard CI, and has already been merged into main. Keeping #99 open would only preserve a stale conflicting duplicate branch.

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.

2 participants