Skip to content

Align README status with the current tree - #1

Open
rohenaz wants to merge 2 commits into
mainfrom
readme-status
Open

Align README status with the current tree#1
rohenaz wants to merge 2 commits into
mainfrom
readme-status

Conversation

@rohenaz

@rohenaz rohenaz commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • README Status / modules / Next were still describing sweep + read-only balances only.
  • Those sections now match the modules that exist: OneSatClient, OneSatSweep, OneSatTemplates, OneSatAddresses, OneSatActions, and the OneSat umbrella.
  • Positioning is unchanged: 1Sat layer above swift-sdk + swift-wallet-toolbox. Sweep stays partial by design. No invented APIs.

Test plan

  • Skim README Status and Modules against Package.swift and Sources/
  • Confirm Sweep section and examples are unchanged

rohenaz commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed the diff against Package.swift and Sources/ at the PR base (e5ca7fc). The updated Status and Modules sections are accurate — LGTM.

Verified claims

  • Modules table matches the tree exactly: OneSatClient, OneSatSweep, OneSatTemplates, OneSatAddresses, OneSatActions, plus the OneSat umbrella — all present in Package.swift and Sources/.
  • OneSatClient row: MneeClient.swift, OpnsClient.swift, and OneSatStackServices.swift all exist alongside the read-only balances client. ✓
  • OneSatTemplates row: all seven listed templates are there — Inscription, OrdLock, BSV20/BSV21, Cosign, TimeLock, BAP, BitCom. ✓
  • OneSatAddresses row: DepositAddresses.swift confirms protocol [0, "p 1sat"]; keyID is "<prefix> <index>" with default prefix "1sat", so "1sat <index>" is the default case — accurate as written.
  • Action families in the Status paragraph all map to files in Sources/OneSatActions/ (Ordinals, Inscriptions, Tokens, Locks, Collections, Identity, OpNS, Mnee, AssetSweep/SweepDeposit). ✓
  • Sweep section and examples untouched, as the test plan promises.

Optional follow-ups (not blockers, and arguably out of scope for a README PR)

  • The Package.swift header comment (lines 9–11, "It starts with sweep… grows toward the full @1sat/actions surface") and the OneSatTemplates target comment ("inscription envelope, OrdLock, BSV-21, and CLTV time-lock") now lag the tree the same way the README did. Worth a similar touch-up at some point.

CI note

Both check runs are red, but neither failure is caused by this README-only change — both reproduce from the base tree:

  • ubuntu-24.04: the swift-wallet-toolbox dependency's ToolboxPaymail uses URLSession.bytes / URLSession.AsyncBytes, which don't exist in FoundationNetworking on Linux.
  • macos-15: Tests/OneSatActionsTests/SigmaTests.swift fails Swift 6 strict concurrency ("sending value of non-Sendable type [[String : Any]]" into the actor-isolated ScriptedTransport(outputs:)).

Safe to merge on its own merits once you're comfortable with CI being pre-existing red.


Generated by Claude Code

rohenaz commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

Full detail on the additional notes from the review above, so everything is on record here.

CI failure 1 — ubuntu-24.04: Linux Foundation gap in swift-wallet-toolbox

Both PR check runs and the base tree fail identically, in the dependency (not this repo):

.build/checkouts/swift-wallet-toolbox/Sources/ToolboxPaymail/Paymail.swift:314:28:
error: 'AsyncBytes' is not a member type of class 'FoundationNetworking.URLSession'

Paymail.swift:300:52: error: value of type 'URLSession' has no member 'bytes'
Paymail.swift:309:52: error: value of type 'URLSession' has no member 'bytes'

URLSession.bytes(from:) / URLSession.AsyncBytes are Darwin-only; Linux's FoundationNetworking never got them. The fix belongs in opldotdev/swift-wallet-toolbox (ToolboxPaymail/Paymail.swift): replace the streaming read with URLSession.data(from:) / data(for:) (available on Linux), or gate the bytes path behind #if canImport(Darwin) with a dataTask-based fallback. This repo then just needs its pinned toolbox revision bumped (currently 440b481 in Package.swift).

CI failure 2 — macos-15: Swift 6 strict-concurrency errors in this repo's tests

Tests/OneSatActionsTests/SigmaTests.swift:21:25:
error: sending value of non-Sendable type '[[String : Any]]' risks causing data races
Tests/OneSatActionsTests/SigmaTests.swift:64:25: (same)

ScriptedTransport(outputs:) is actor-isolated, and the [[String: Any]] literal passed from the task-isolated test body is non-Sendable. Options: make ScriptedTransport.init nonisolated, take a Sendable payload (e.g. pre-encoded Data/JSON strings instead of [[String: Any]]), or build the literal inside the actor. This exists on main (base e5ca7fc) — it predates this PR.

Since the macOS one is in this repo, it may be worth tracking as an issue if it won't be fixed immediately; happy to open one on request.

Stale doc comments in Package.swift

Same drift this PR fixes in the README, still present in the manifest:

  • Header comment (lines 9–11): "It starts with sweep, because sweep is the first thing a real wallet needs… The module grows toward the full @1sat/actions surface — ordinals, BSV21, OpNS, MNEE — one boundary at a time." The tree is already well past that.
  • OneSatTemplates target comment (line 65): "inscription envelope, OrdLock, BSV-21, and CLTV time-lock" — the target also ships BSV20, Cosign, BAP, and BitCom templates.

Neither blocks this PR; both are candidates for the same treatment in a follow-up.


Generated by Claude Code

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