Skip to content

Add storage billing and cycles support across canister, CLI, browser, and extension#41

Merged
humandebri merged 21 commits into
mainfrom
db-billing-storage-decimal
Jun 2, 2026
Merged

Add storage billing and cycles support across canister, CLI, browser, and extension#41
humandebri merged 21 commits into
mainfrom
db-billing-storage-decimal

Conversation

@humandebri
Copy link
Copy Markdown
Collaborator

@humandebri humandebri commented May 31, 2026

Summary

  • Add storage billing, direct cycles purchases, and pending-operation schema updates across canister, runtime, and types.
  • Propagate the new Candid surface into the CLI, browser, and extension clients.
  • Update migrations, lifecycle docs, and CI checks for the new billing paths.
  • Keep repair / cancel / retry purchase recovery APIs out of v1. Ambiguous ledger results and post-ledger local apply failures remain visible as pending operations for billing authority review.

Testing

  • CI rust-check: passed on PR head 97069821648a3b81e6980d305ef2d6aa26bb2043.
  • CI canister-build: passed.
  • CI cli-artifacts: passed on ubuntu-latest and macos-14.
  • CI wikibrowser-check: passed.
  • CI extension-check: passed.
  • CI regression-groups-check: passed.
  • CI wiki-generator-check and skill-registry-web-check: passed.

Covered regression paths include:

  • cycles purchase success path
  • ledger Duplicate treated as completed transfer
  • BadFee / explicit ledger error leaves no credit
  • ambiguous ledger result leaves an ambiguous pending operation for billing authority review
  • ledger success followed by mount/apply failure leaves a completed pending operation with no credit
  • pending purchase visibility for payer, owner, and billing authority
  • wallet approve succeeded but purchase failed messaging, including remaining approval expiry

Not applicable in this PR:

  • repair complete / repair cancel / retry flows, because v1 intentionally exposes no repair, cancel, or retry purchase recovery APIs
  • ledger block revalidation through direct/archive transaction lookup, because no repair-complete endpoint is exposed in v1

@humandebri humandebri changed the base branch from main to db-billing-wallet-frontend-client May 31, 2026 23:50
@humandebri humandebri changed the base branch from db-billing-wallet-frontend-client to db-billing-safety-ui May 31, 2026 23:59
@humandebri humandebri changed the base branch from db-billing-safety-ui to db-billing-docs-cleanup June 1, 2026 00:31
Base automatically changed from db-billing-docs-cleanup to main June 1, 2026 08:06
…tion

# Conflicts:
#	.github/workflows/ci.yml
#	crates/vfs_canister/src/tests.rs
#	crates/vfs_canister/vfs.did
#	crates/vfs_cli_app/src/cli.rs
#	crates/vfs_cli_app/src/commands_fs_tests.rs
#	crates/vfs_cli_core/src/cli.rs
#	crates/vfs_cli_core/src/commands.rs
#	crates/vfs_client/src/lib.rs
#	crates/vfs_runtime/src/lib.rs
#	crates/vfs_runtime/tests/database_service.rs
#	crates/vfs_types/src/fs.rs
#	docs/CLI.md
#	docs/DB_LIFECYCLE.md
#	docs/PUBLIC_SMOKE.md
#	extensions/wiki-clipper/scripts/check-candid-drift.mjs
#	extensions/wiki-clipper/src/vfs-actor.js
#	scripts/local/deploy_wiki.sh
#	scripts/smoke/local_canister_archive_restore.sh
#	wikibrowser/app/dashboard/dashboard-ui.tsx
#	wikibrowser/app/home-ui.tsx
#	wikibrowser/lib/types.ts
#	wikibrowser/lib/vfs-client.ts
#	wikibrowser/lib/vfs-idl.ts
#	wikibrowser/scripts/candid-shapes.mjs
#	wikibrowser/scripts/check-candid-drift.mjs
#	wikibrowser/scripts/check-dashboard.mjs
#	wikibrowser/scripts/generate-vfs-idl.mjs
@humandebri humandebri force-pushed the db-billing-storage-decimal branch from 502d4cd to 9c96b98 Compare June 2, 2026 02:13
@humandebri humandebri marked this pull request as ready for review June 2, 2026 06:28
@humandebri humandebri merged commit 519198e into main Jun 2, 2026
10 checks passed
@humandebri humandebri deleted the db-billing-storage-decimal branch June 2, 2026 06:31
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