Skip to content

PR #36 secondary flags: buy granularity, ledger file discipline, ProviderBridge lifecycle #49

Open

Description

@irzhywau

From the 0.7 completion checklist in #38 (unfinished at merge time). These are the secondary observations flagged in the PR #36 review, kept together as one cleanup pass:

  • buy capability granularity + ERC-20 approval-stage idempotency.
  • Purchases-ledger file discipline: flock/O_NOFOLLOW parity with the mint journal.
  • Unbound-vs-pending signal at the Runtime layer.
  • Docs posture: "not wired" vs the live object://…/buy surface.
  • ProviderBridge lifecycle-state refactor: Attached/Spawned/ShutDown instead of Option<Child> + flag.

Each is small; split further if any grows.

Activity

  1. added this to the 0.7.1 milestone on Aug 31, 2026
  2. andersalm commented on Oct 8, 2026

    @andersalm
    Contributor

    Coverage check against PR #204 head 94e73d18 (it says "Closes #49"):

    • buy granularity: Action::Buy in elastos-server/src/provider_resource.rs (+ unit test), buy action in capsules/object-provider/capsule.json. ERC-20 approval idempotency: test test_runtime_custody_buy_confirmed_approval_stage_is_not_redriven (gateway_tests/library.rs) and runtime_custody_purchase_progress_pending_stays_compatible_across_confirmed_approval (protected_content_runtime/tests.rs).
    • Purchases ledger O_NOFOLLOW/lock parity: protected_content_runtime.rs, test load_runtime_custody_purchase_refuses_symlinked_record.
    • Unbound vs pending: RUNTIME_CUSTODY_PURCHASE_UNBOUND_MESSAGE in gateway_provider_proxy.rs, test buy_reports_unbound_content_access_id (gateway_tests/library.rs).
    • Docs posture: Marketplace buy method in capsules/marketplace/capsule.json, docs/ESP_V0.md, docs/SHELL_ESP_BOUNDARY_MAP.md, assert in scripts/home-entropy-check.mjs.
    • ProviderBridge lifecycle: enum ChildState in elastos-runtime/src/provider/bridge.rs, test attached_bridge_shutdown_delivers_protocol_shutdown_once_and_is_idempotent.

    #49 closes only after #204 is reviewed, its checks pass and it merges.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions