Skip to content

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 04:34
· 130 commits to dev since this release
402be49

Passkey profiles made with this version will need to be set up again after the next update. Use a password profile for anything you want to keep.

1.0.0

Install

The stores review each version, so they can trail this release by a few days.

Verify or load by hand

The zips below are the same builds. Verify them with shasum -a 256 -c SHASUMS256.txt. To check that this repository's release workflow built them from this commit, run gh attestation verify nulo-chrome-1.0.0.zip --repo nulo-sh/nulo --signer-workflow nulo-sh/nulo/.github/workflows/release.yml --source-digest 402be49f7762edce3d25e27bdb575257c643d960 --deny-self-hosted-runners, and the same for the Firefox zip. To load the Chrome zip by hand, unzip it, open chrome://extensions, turn on Developer mode and click Load unpacked. The Firefox zip is unsigned; the signed build comes from Firefox Add-ons.


Bug Fixes

  • Vite, follow-redirects, storybook, vitest, fast-uri, zod for sixteen advisories (#1113) (deps) 247cf6d
  • A stage-log dir a test makes lives until that test finishes (#1084) (e2e) 76f88c4
  • A backup a test imports lives until that test finishes (#1074) (e2e) 6da0337
  • Onboarding titles hold still; the presto step is done on open; icons paint once (#1027) (ui) de50024
  • One card in the hand-off window; the panel reopens on the result (#1026) (firefox) 20ac73e
  • Keep the local network's temp files inside the run dir (#1063) (e2e) 4cc0666
  • Keep a busy pxe document instead of replacing it on a slow ping (#1048) (offscreen) 33c1e37
  • Deletion warnings name imported accounts; class lookup flags every class (#1015) (profile) 756b6f9
  • File pickers leave the toolbar panel; backup done state; contacts export wait (#964) (firefox) 1362efa
  • The bridge fixtures sign l1 transactions with their own anvil account (#996) (e2e) 623a337
  • Approval cancels the window's unfinished fee estimates before it closes (#995) (execute) 9d04ada
  • A dapp window reads cached prices and never asks for a refresh (#983) (prices) b3d6e0a
  • Hold every send the person pays to the fee it showed (#979) (send) ef5336b
  • A send the network refused for good ends at once (#968) (activity) 5ac883b
  • Answer metadata from the session and the node; bind registered classes (#971) (dapp) 85edeb8
  • A restored transaction row binds to the restored profile and its accounts (#970) (backup) 41ed6c5
  • Fetch the list and prices with no browser cache, credentials or referrer (#969) (token-list) f55b7b4
  • A blank token symbol inside a sentence reads as a noun, not a gap (#958) (ui) 448c033
  • A deep link holds on its log; the search case reads its gap while following (#955) (logs) ca052f0
  • Keep the phrase in the get started card; show the banner only after hide (#956) (home) 01c2791
  • A blank token name or symbol shows the empty-value dash where it names the token (#950) (ui) f5b7fd5
  • A migration of a store no backup carries no longer refuses old backups (#951) (backup) 057d573
  • Square the remaining corners; the json viewer's search box reads in the light theme (#945) (ui) f73ce69
  • Allow closes the connect window; an app not yet connected says so (#886) (connect) e8fe932
  • The notice card has square corners (#933) (ui) 21eb968
  • The token add card shows the empty-value dash for a blank name (#930) (execute) 72c6379
  • An import of a passkey already in this wallet says so (#915) (passkey) 973778c
  • Tell a person how to restore a passkey backup with no passkey check (#909) (backup) 18c40c5
  • Say an amount is over the balance and clear its fee; restore names developer mode (#877) (send) e25f1bd
  • The viewer's own follow scroll no longer resumes a stopped follow (#925) (logs) e6a68cd
  • The token add card reads as labelled rows while it loads (#896) (execute) 33c0aa1
  • A rejected dapp send reads cancelled; record who chose a transaction's fee (#892) (tx) 4aa9d1a
  • Error and refusal text in --txt-danger, aa on the light theme (#878) (ui) 2439933
  • Filter panels from the keyboard, closed when tab leaves them (#868) (logs) 60fde7e
  • A dapp send names its call before its fee estimate, so a failure keeps it (#860) (activity) 2a5960d
  • A balance that covers the typed amount asks for its fee (#861) (send) 691e69e
  • Left-align the failed token preview; restore clause for held accounts (#853) (execute) f214e5c
  • Logs toolbar keys, its menu items, the recovery close, holdings error line (#852) (ui) d0551f7
  • Five list rules take home's; a dropped backup export stops before its keys (#848) (popup) ce48691
  • Keyboard send and receive, ghost rows the loaded height (#827) (popup) 948670c
  • Register protocol fpcs outside the fpc lock so a reset never waits (#842) (fpc) 4f99807
  • Send search keys past vue's listener guard; the countdown close on button (#833) (settings) 4ae3291
  • Name the fee method by the fee contract's address (#822) (tx) 0c340d3
  • Start on a dead custom node, export a paused reset's accounts, re-ask send (#814) (wallet) 21ce05c
  • Open the logs menu, reveal verb; close three shipped fixes (#811) (popup) 97ffa08
  • Show the fee card as a skeleton while it reads balances (#802) (send) 7eada4c
  • Fee method, fee units, settings title, fixed token hero (#788) (popup) b53e1d4
  • A dapp token add stores the details its window showed; clean token text (#795) (tokens) 767789b
  • Incoming chip wraps where it does not fit, app-set fee in one sentence (#793) (popup) 8a05c59
  • Seven small defects: labels, wraps, log follow, copy, feed, bars (#789) (popup) c8a423f
  • Bind an allow's session row to the profile it was given under (#772) (connect) 2df384c
  • Refuse an inner-hash authorization intent naming the signing account (#738) (dapp) e8da7b5
  • Keep restored imported accounts until their network is added (#739) (backup) 5664b9f
  • A nameless dapp keeps its chip when it ends; holdings waits for prices (#725) (ui) a10a8ac
  • Name a paused reset's imported accounts; hold endpoint edits while it waits (#720) (network) 9d429cb
  • One vocabulary for a call; the grant card labels only what it read (#721) (activity) ec40515
  • Keep the authorization registry's grant functions to the wallet (#716) (dapp) dc4a88e
  • Log clear, phrase error, build env guard and locked price refresh; docs match the code (#713) 356004c
  • Discovery admits only secure dapp origins and localhost (#712) (wallet-sdk) 34d9708
  • Chain 0 is the local l1 on a loopback node; endpoint docs match the code (#685) (network) bdb61a1
  • Bind transfers to their token, record every broadcast, verify revokes (#691) (execution) eb41255
  • Key note receipts by note hash; keep local storage off content scripts (#692) (storage) b704c0f
  • Display-only token hero, selectable header address, dapp chip, holdings, toasts (#678) (ui) e6a3b09
  • Check the chain on every call, bind a contract's key, roll back unlanded rows (#679) (dapp) 093fa10
  • A dApp transfer's chips on one line; the journal App row breaks anywhere (#650) (activity) 623fc97
  • Selectable text, back keeps scroll, 2 s success toasts, display-only home hero (#642) (ui) f695dea
  • One-line activity rows, a fixed hero over a scrolling middle, a wrapping app row (#633) (home) eb5dc14
  • Read a missing price as unavailable, close chain-endpoints (#622) (home) 645cb1f
  • Dependency logs at warn, pxe frame logs drop 32-byte values, summary one list back (#617) 388367b
  • Bind key exchange to its discovery, title calls by name, own class copy first (#603) (wallet) 3dc5a06
  • Read a dApp call's arguments only when they encode back to their fields (#619) (execute) c4728e2
  • Move the viewers' styles into shadow roots, drop unsafe-inline (#609) (csp) 493ff49
  • Network name toggle, export names, json window lock, second duplicate warning (#610) (ui) e2ab483
  • App fee legend while estimating, queue sponsored sends (#608) (wallet) a433c20
  • Bound replies and backup rows; admit discovery only in the sdk shape (#578) (wallet) ea8827f
  • Keep the tx disclosure rows at full strength on hover; regenerate store art (#573) (ui) 78b4b75
  • Sponsor address check on edit, cap refusal words (#532) (wallet) c5e9c8e
  • Stop node retries while a profile or chain is torn down; drop a dead rpc (#554) (wallet) ec0204e
  • Keep cold imports off test timeouts and scale the e2e fee ladder (#533) (ci) 4aa0602
  • Move the remaining outline-grey text to the secondary tone (#530) (ui) 71f98db
  • Name a token address with no contract; unlock closes any error toast (#531) (popup) 6a766f1
  • Refuse hidden url characters, allow plain http only to localhost (#506) (network) 110446a
  • Page 17 follow-ups: link hover, import snack, send focus, contrast, singulars (#495) (ui) c7c5ad3
  • Page 15 follow-ups: log rows, sponsor and name checks, refusals, sends (#490) (wallet) d2bb014

Build / CI

  • Split e2e shards by measured file time (#978) (e2e) 8663cdd
  • Guard network e2e egress; take artifacts by id; jscpd from the lockfile (#838) 19399c8
  • One network lane workflow; a store dispatch smokes the published zips (#732) 77aad1e
  • One runner config, counted retries, shared gate scripts (#604) (e2e) f2f434f
  • Load the extension's vite and vitest configs as es modules (#477) (extension) 777066c

Chore

  • Release 1.0.0 (#1125) (main) 402be49
  • Release 1.0.0 (main) 02d1c92
  • From 1.0.0 every stored-shape change ships a migration (#938) (storage) 246c885
  • Run the worktree's installed biome and commitlint; refuse before install (#910) (hooks) 2ac96fd
  • Regenerate the listing captures after the fixed home hero (#801) (store) fba0360
  • Sync main → dev (#510) 8459699

Documentation

  • The firefox network lane is required on main too (#1100) (ci) 95da774
  • Keep the heavy-long network job out of the pool, measured (#1010) (ci) cef87d9
  • Privacy 1.2.2 names what the list and price requests carry (#974) (legal) 4ebd206

Features

  • Seed aztec mainnet as the default network, testnet beside it (#1117) (network) 715a561
  • Terms 1.1 take effect at 1.0.0; a production readme banner (#893) (legal) 9458838
  • Move to 6.0.0 and the reset testnet, rotate the account artifact (#1107) (aztec) dda72e3
  • Seal pinned tokens, fee picks and the selected account behind the worker (#1093) (storage) 0e4bec1
  • Seal accounts, tokens, networks and fee payers at rest (#1072) (storage) 2b856d1
  • Seal balances, authorizations and incoming receipts at rest (#1043) (storage) 5c35ca9
  • Seal the journal and transaction history at rest (#1029) (storage) 11439b1
  • Every page fits down to 240 px; the popup looks the same (#986) (ui) b88c20a
  • A sidebar where passkey steps run in place (#889) (firefox) 5b16ead
  • Seal contacts and dapp sessions at rest under a per-profile key (#924) (storage) 6d507c6
  • Windows count what a grant reaches; private fee juice card; flagged token add (#981) (consent) e7192fa
  • Count each app's registrations per profile chain; one refusal once used up (#976) (dapp) 94cb43a
  • Close the windows a restart ends and tell apps before the lock's restart (#944) (wallet) bf6a25f
  • Fast-lane tab, recovery phrase step and home's get started card (#743) (onboarding) e36474a
  • Restart the wallet when a lock cannot be saved (#907) (wallet) a51ebd2
  • The arrival of a new default network on existing profiles (#905) (network) b97eae8
  • Register every stored shape and guard its schema snapshot (#890) (storage) 38c449d
  • Offer every default network a profile was never offered when it opens (#882) (network) ab5442d
  • Cap refused requests, stop a blocked token's scans, save a lock twice (#891) (wallet) 3c09ea5
  • Apps grow a chain's distinct senders and accounts to at most 128 (#873) (pxe) 2f591dd
  • Advice once after the calls, none when refused; flag unreadable authorizations (#854) (execute) 25f2c63
  • The cap's refusal reads as an app's; the fee card reads as it will (#855) (send) 1531e5f
  • Full dapp origin, "About" on app fees, token caveat, label mark (#806) (consent) 993b3ef
  • The window states a refused dapp send, and reject ends it as that refusal (#832) (execute) fec6493
  • In-flight dapp calls read as they will settle (#826) (activity) 8d9ff14
  • The private and public marks become a shield and a globe (#812) (design) c8aa037
  • Fee window dollars, restore rows, holdings skeleton, call words (#805) (ui) 58e2b01
  • Pending chip on grants, 11 px header chips, three 13 px wraps fixed (#782) (ui) 3818266
  • One short reason per unreadable call, interface dotted, the advice once (#778) (execute) 2d9ba31
  • The address row controls listing, and the app page follows the grant (#759) (connect) 9470d4e
  • Warn on export when imported accounts need an added network (#747) (backup) 1cff707
  • One helper prints every fee as ~X FJ ($Y) (#733) (fees) f3dc18f
  • The flat bottom sheet, a light scrim, the full-height setting retired (#707) (ui) 76ccbd1
  • Return an app-facing executeUtility result; redact three log keys (#717) (execution) 4ad2a80
  • Return an app-facing simulateTx result; refuse profileTx (#701) (execution) d4d2d34
  • Retune the type scale app-wide, small caps in one role (#649) (design) 0fe841b
  • Draw the private and public marks and the network name row's edit glyph (#655) (design) 13d5f8d
  • Draw every icon in direction 2, retire icons.json and the material font (#641) (design) 111fe02
  • Show the emoji check on every connection, remembered apps too (#631) (dapp) fc510ef
  • Ask again when a dApp send's fee rises above the approved figure (#607) (execute) 98d51e8
  • Find a setting by its title, description or a synonym (#613) (settings) 7fc8b89
  • Show a public grant's arguments as the decoded rows it signs (#611) (execute) 5e2888b
  • Bind passkey backups to their passkey; read restored tokens from the chain (#598) (backup) f6bd011
  • Move focus to the title when the firefox permission row leaves with it (#599) (presto) aa2cfca
  • Read a multi-call transaction as rows and authorizations (#594) (execute) 6349807
  • Check each list entry against a public node before signing (#564) (token-list) 7697c37
  • Ask Firefox for Presto's loopback permission in place of the step (#534) (presto) 5c27386
  • Warn on a flagged token with a red row line and a banner (#526) (tokens) 66f34e3
  • Show prices unavailable on a funded wallet when the price fetch fails (#509) (home) 2dcdad4
  • Flag a token and refuse a list below a compiled floor (#489) (token-list) afcfd71

Other

  • Promote dev → main (1.0.0: aztec 6.0.0, mainnet default, terms 1.1) (#1124) 3f11906

Performance

  • Recipient suggestions show the first 50 matches and how many more match (#1099) (send) 7c65d15
  • Icons drop their css v-bind, and a test refuses one in any component (#1080) (ui) 421bf33
  • Settle every launch on its first-run surface, poll liveness at 200 ms (#1003) (e2e) 9057e1e

Refactor

  • Drop the onboarding step's copy surface, banner status and style hash (#948) (presto) 05313d5
  • One pair of profile-flow notices; developer rows take the shared plumbing (#817) (ui) 93e6eeb
  • Holdings, select token and send take home's balance-list rules (#781) (ui) 6e2f22d
  • One settings control row, detail hero line and hero observer (#779) (ui) 021bdc5
  • Named fee and message parameters, one operation-trait table (#756) (execution) b891848
  • One fee card, handed Send's or the app windows' rule book (#755) (fees) 169550f
  • One journal mirror for Activity, Home and the token list (#752) (activity) 5ee6b8b
  • The balance-refresh outbox becomes its own class (#751) (incoming) 244badd
  • One balance mirror for Home, Holdings, Select token and Send (#748) (tokens) 49fba3d
  • Discovery in its own module, session holders in one registry (#741) (wallet-sdk) 689d093
  • One updateSetting for display, privacy and developer (#737) (settings) 46df7df
  • Retire the pre-opfs IndexedDB cleanup, guard that no pxe store opens one (#731) (pxe) 0ce0419
  • One run object for the full-backup export; config restore via restoreRows (#705) (backup) 563b062
  • Wait through the shared activation waiter, drop the copy (#703) (import) 2c0df3b
  • Break the fixture import cycles; split helpers by concern (#632) (e2e) 04b1007
  • One confirm request helper; explicit backup selection and run fence (#623) (ui) e021210
  • Share deferred, exhaustive kind switches, composed schemas, drop dead paths (#595) d461b05

Tests

  • Drop the re-import and zero-gap restart behind two soak reds (#1105) (extension) e0faa72
  • The purge pins check both roots and await the purge's lock request (#1094) (account) a2f9e7d
  • The rename-and-visibility case awaits the parked read and the queue (#1092) (account) a552a61
  • The reset and purge pins await the sweep with the registration parked (#1088) (fpc) c49430a
  • The parked-send test waits for its record to read queued (#1087) (send) 6ec79be
  • The e2e-script tests leave no temp dir behind on any platform (#1085) (e2e) 9772278
  • The 240 px gate fails a page that scrolls sideways inside its own scroller (#1031) (e2e) d484908
  • A real in-place update meets the arrival on both browsers (#1028) (e2e) 7eb5e6c
  • The full backup's done state and working card are checked at 240 px (#1025) (e2e) 60ecd6c
  • The network e2e build scans incoming and re-reads finality every 10 s (#1021) (e2e) b20260c
  • Firefox all-sites access keeps loopback granted with both 127.0.0.1 toggles off (#954) (e2e) 7ef85e9
  • Remaining waits and builders on shared helpers; incoming scenarios on the real repo (#953) 284543d
  • End the stalled stub's held calls with a refusal, not a reset (#916) (e2e) 817cce9
  • Read the terminal card once the page it names has rendered (#913) (e2e) d025d8e
  • Update a populated 0.31.0 install in place on both browsers (#912) (e2e) 7f1aa16
  • Capture mode refuses a hidden page; the reconnect case fronts its wallet (#908) (e2e) eb0dd17
  • Send unit-test events past vue's attach-time guard (#906) (extension) a36fd24
  • Viewers-csp reads the follow and the hold where the viewer judges (#902) (e2e) dc94581
  • A reply to a request chrome cancelled is no interception failure (#876) (e2e) b620822
  • Fail the guard's close on a node call the interception missed; fix guard docs (#845) (e2e) ced2c51
  • Read the fence-entry and amount-callers guards through the shared walker and parser (#830) 5a5791f
  • Wait for the copy snack to leave before about's foot (#829) (e2e) fbe440c
  • Make the balance-row gap with the worker stopped (#813) (e2e) a4edec2
  • Fix four e2e reds at their cause; run the passkey import row in ci (#783) (e2e) 3fe891a
  • Await causes not turn counts; one e2e poll helper; shared storage and balance builders (#757) 18d29f2
  • One source walker and ts tokenizer for the guards; one approval-window harness (#706) 138e0de
  • Observe the network identifier sites and assert their coverage (#708) (e2e) 5653e89
  • One owner per fixture flow; the canaries share their choreography (#644) (e2e) 1b93cbf
  • Observe the smoke identifier sites and assert their coverage (#621) (e2e) 966bbde
  • Open the execute details before reading the discovered authwit (#601) (e2e) 5ec3225
  • Run the delegated-authwit send and assert its discovered transfer row (#574) (e2e) cadc11c