Skip to content

TEC-189 associateWallet + TEC-200 userAgent (v1.7.0)#19

Merged
vvillait88 merged 9 commits intomainfrom
tec-189-wallet-writeback
Apr 22, 2026
Merged

TEC-189 associateWallet + TEC-200 userAgent (v1.7.0)#19
vvillait88 merged 9 commits intomainfrom
tec-189-wallet-writeback

Conversation

@vvillait88
Copy link
Copy Markdown
Contributor

@vvillait88 vvillait88 commented Apr 21, 2026

Summary

Feature (v1.7.0)

  • TEC-189 — new associateWallet({ operatorToken, walletAddress, network, idempotencyKey? }). Posts to POST /v1/credentials/wallets. Empty-string idempotencyKey dropped for parity with python-sdk.
  • TEC-200 — new userAgent constructor option. Outbound header becomes "{userAgent} (@agent-score/sdk@{version})".

CI/Ops

  • ARM Blacksmith runner (-arm) for CI + security workflows.
  • actions/cache@v4 for bun install cache (replaces archived useblacksmith/cache@v1).
  • concurrency: cancel-in-progress + timeout-minutes: 10 on CI; timeout-minutes: 15 + concurrency: publish (queue, not cancel) on publish workflow.
  • Deps: vitest + @vitest/coverage-v8 4.1.4 → 4.1.5.

Test plan

  • bun run test passes (99 tests)
  • bun run typecheck clean
  • CI green on ARM runner
  • Merge before martin-estate (which waits on 1.7.0 npm publish)

🤖 Generated with Claude Code

vvillait88 and others added 9 commits April 20, 2026 23:47
TEC-189: associateWallet({ operatorToken, walletAddress, network,
idempotencyKey? }) posts to POST /v1/credentials/wallets. Fire-and-forget
semantics documented; idempotencyKey is dropped when empty-string to match
server-side truthy gate.

TEC-200: new `userAgent` constructor option. Outbound User-Agent becomes
"{userAgent} (@agent-score/sdk@{version})" when set.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI runs lint/typecheck/test; security runs osv-scan (and pip-audit for
python). No Docker artifacts produced. ARM is cheaper and faster for
Bun/Python tooling. publish.yml stays on ubuntu-latest for trusted
publishing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
useblacksmith/cache@v1 before install — caches the package manager's
download cache on Blacksmith's persistent NVMe disk. ~2-3× faster
installs on warm reruns.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- concurrency cancel-in-progress so rapid pushes don't stack runs
- 10-minute timeout so hung tests don't eat 6h of compute

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- concurrency group=publish with cancel-in-progress: false so back-to-back
  tag pushes queue rather than cancel a mid-publish (partial releases are
  worse than waiting)
- 15-minute timeout so a stuck publish doesn't hold the queue for 6h

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Blacksmith archived useblacksmith/cache on 2025-10-14 — their runners
now transparently intercept upstream actions/cache@v4 and route it to
the same fast colocated backend. Same performance, actively maintained,
no Node.js 20 deprecation warning.

https://github.com/useblacksmith/cache (archived)
https://www.blacksmith.sh/blog/cache (migration rationale)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- vitest 4.1.4 → 4.1.5
- @vitest/coverage-v8 4.1.4 → 4.1.5

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Server truncates at 200 chars before storing. Two distinct payment keys
that share the first 200 chars would silently dedup and under-count
transactions. Add a dev-mode console.warn so this gets caught early.
No behavior change (still sends the full key; server truncates).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lockfile top-level spec didn't pick up the caret bump cleanly from the
prior bun update --save; bun install regenerated it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vvillait88 vvillait88 merged commit fe450c6 into main Apr 22, 2026
5 checks passed
@vvillait88 vvillait88 deleted the tec-189-wallet-writeback branch April 22, 2026 02:44
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