Changelog
General
- ce5cd4f all: remove monkit lock comments
- 8118ea6 shared/modular: enable component customization, even for predefined sub commands
- c63fbee Makefile: split into multiple files
- 0936557 Earthfile: remove
- bf73d07 script: publish rc tags as pre-release
- 5b75bf1 shared/modular: better error message for duplicated components
- c6a1266 shared/modular: syntax to add/remove optional tag
- 01e013f shared/modular: support distributed tracing
- bbc84b5 cmd/tools/spanner-key-parser: add tool for parsing Spanner range keys
- 578d6bf shared/modular: implement eventkit publisher for modular satellite components
- b998fb3 .claude/skills/gerrit: Help claude to interact
- dacf685 scripts: fix publish-release.sh prerelease flag
- 22a8e9b shared/modular/cli: errgroup must cancel the context
- 3b7dfe9 shared/modular/cli: use zeebo/errs for error handling
- 6b59cfd claude/skills: add test-with-spanner skill
- edceb83 all: fix ctx handling
- d00fe29 Claude.md: teach it how to run unit tests with Spanner emulator
- 502cede build: script and Claude files to do automatic review on Gerrit
- fba7259 Jenkinsfile.{verify|public}: improve build time
- f2c0856 scripts: tag-release.sh doesn't create dedicated commits
Multinode
Satellite
- c7ace71 satellite/admin: fix get user breaking when no customer exists for a user
- 1985492 satellite/admin-ui: add update bucket UI
- b116e42 satellite/metabase: don't read expires_at on precommitQuery
- 31fdfde cmd/satellite: Add a few debug messages to user-accounts
- d7f3ca0 satellite/metabase: don't read encrypted user data columns on precommitQuery
- e3d3e90 satellite/eventing: determine event name from transaction_tag
- 399b8a7 satellite/metabase: fix DB migration
- 5283d09 satellite/console: display product short names in buckets table
- 7fff015 satellite/satellitedb/dbx: Fix typos in comments
- 4a0e45e satellite/admin-ui: update logo
- d2e5d2d satellite/admin/back-office: extend update user endpoint to handle Member accounts
- 121eb4b satellite/admin: add get products endpoint
- 6b2f748 satellite/orders: Drop TODO comment doesn't apply
- bcd6d24 satellite/accountfreeze: separate chore functions
- ccccf5e satellite: modular definitions for web console
- 2a28188 satellite/{metainfo.metabase}: remove hardcoded max commit delay for DeleteAllBucketObjects
- a714047 satellite/metabase: extract avro logic into separate package
- 5a823d4 web/satellite: add back buckets stat card on dashboard
- 1603637 satellite/console: add IsClassic flag to project entity
- b95f9a7 web/satellite: added Classic badges on All Projects page
- 1224482 satellite/console: added new endpoint for the project pricing migration
- b57189a web/satellite: added pricing tier migration feature
- effe5d2 satellite/console: added feature flag for the onboarding billing info
- 59ba796 satellite/admin: add update entitlements endpoint
- 81de69c satellite/admin-ui: add view entitlements dialog
- f4926ba satellite/admin-ui: add update entitlements capabilities
- c50dbdc web/satellite: fix potential undefined placement property access
- 4b47ca1 satellite/orders: Remove method only used in test
- c1f7a02 satellite/payments: add optional cusID arg to save billing address method
- 5682140 satellite/{payments,console,web}: simplify add tax ID logic
- f1635c2 satellite/satellitedb: Fix error message
- 72e7abf satellite/console: invalidate removed admin invite link
- c985f67 satellite/run: enable all observability tools for modular satellite
- 64bc837 satellite/metainfo: add object lock fields to satellite StreamID
- c0492ce satellite/console: extend purchase endpoint to accept billing info
- 6a37a18 satellite/{console,web}: enable CC authorization by default
- 55be126 satellite/metainfo: detect type of upload (regular/multipart)
- 5d6335b web/satellite: optionally collect billing info during onboarding
- fdbb816 satellite/satellitedb: Add 2 monkit meters (num updates)
- 5f69ef7 satellite/{console,web}: enable 'pay upfront to upgrade' by default
- 557e7ca web/satellite: improve remove default card UX
- cc43798 satellite/metabase: add comprehensive doc.go for AI agents
- a22bfb3 satellite/metabase: add option to skip pending object check on segment commit
- d9485ab satellite/{console,web}: limit possible user statuses for project invitee
- a2f9ff1 satellite/{console,db,web}: warn of object lock enabled buckets on project deletion
- fdc64d6 satellite/{console,web}: warn of object lock enabled buckets on account deletion
- f0bc2ef satellite/admin-ui: correct create REST API key reason placeholder
- fa2c11d satellite/console/consoleweb: fix default trial expired meeting link
- e43215f web/satellite: UI updates for buckets table
- f026b89 satellite/metabase/metabasetest: remove debug code
- 432a14b satellite/metabase/changestream: persist state to database
- 356ff80 satellite/metabase/changestream: avoid fmt.Sprintf in SQL
- cd26751 satellite/metabase: adjust CommitObject to distinguish regular and multipart uploads
- 885e52c web/satellite: update css
- 731ad9c satellite/orders: Make max commit delay configurable
- 2a499ec satellite/metabase/changestream: increase max timeout for test cleanup
- 93c200c satellite/metabase/changestream: log errors in processor
- ffe45bd satellite/payments: add logging when ProcessRecord fails
- fe89fd4 satellite/satellitedb: create new bucket_migrations table
- eb86b4a satellite/admin-ui: fix user/project state update bug
- bc7fcc5 satellite/console/consoleweb: add compute gateway URL to CSP
- 218f5d1 satellite/valdi: make the valdi client optional for modular console
- 7d2c971 satellite/mailservice: wrap template parsing error
- bad8dd1 satellite/metainfo: make SkipPendingObject behind feature flag
- c5df8af satellite/metabase: fix negative version handling in Delete|Get ObjectExactVersion
- cacf8fa satellite: added bucket migrations DB logic
- 30108cf web/satellite: hide migration CTA if project is not classic
- b9e8335 satellite/metainfo: fix encryption handling while CommitObject
- 102ca97 web/satellite: improve remove card flow
- fc9e942 satellite/metabase: use precommit query in delete
- 6994c2e satellite/metabase: rename isRetentionProtected -> Retention.isProtected
- 05161dd satellite/metabase/changestream: SchedulePartitions sets scheduled_at
- 81e32bd web/satellite: add webui to modular storagenode container
- 0b0d5e5 satellite/metabase: avoid reading segment count from previous object version
- 5cb3f91 satellite/satellitedb: Fix metrics reporting
- 7c92021 satellite/console: add config for partner UI mods
- 4711e71 satellite/metabase: simplify test object verification
- b676c86 satellite/metabase: simplify test object verification part 2
- 1d9b6e7 web/satellite: get partner UI config from backend
- 1b85db8 satellite/console: add white label config
- 981622e satellite/{console,tenancy}: create tenant context system for request-level tenant identification
- 5717d95 satellite/payments/stripe: reduce number of queries to spanner
- 63897d4 satellite/metabase: reuse object (if possible) when committing unversioned objects
- 5bae544 satellite/metabase: simplify test object verification part 3
- 8f03e82 satellite/metabase: add EncodeSpanner/DecodeSpanner for Version
- 94c347e satellite/reputation: check node age in addition to number of audits to determine vetted status
- 2d06d4a satellite/Dockerfile: adds the bad-passwords file directly to the image
- 3d47568 satellite/nodeselection: unvetted selector should use threshold as a max
- 336b8ea satellite/admin: allow abbreviated user deletion
- 797d6e0 satellite/admin-ui: allow abbreviated user deletion
- b137784 satellite/db: add tenant_id column to users table
- 309e444 satellite/{console,db}: add tenantID aware db methods
- 136c71f satellite/metabase: use Apply instead of BatchWrite in deleteObjectLastCommittedPlain
- beaec41 satellite/metainfo: reduce test data size
Storagenode
- e739841 storagenode/hashstore: write hint files for fast fsck
- 9cab8c4 storagenode/hashstore: introduce RecordTails
- 78086e9 storagenode/modular: dedicated subcommand for select and normal run
- ca86faf web/storagenode: remove jest unit tests
- baadbc8 web/storagenode: use new styling syntax
- d9f1d6d web/storagenode: add pinia modules
- f8e4d8f web/storagenode: migrated simple components to use script setup syntax
- d33cb90 web/storagenode: migrate notifications, content and error components to use SFC syntax
- f061d96 web/storagenode: migrated and reworked charts to use SFC syntax
- c2ecb27 web/storagenode: migrate another set of components to use SFC syntax
- ce86a8d web/storagenode: migrated payout components to use SFC syntax
- ef5f694 web/storagenode: remove Vue filters
- 8b27012 web/storagenode: replace Vuex with Pinia
- b085811 web/storagenode: upgrade Vue version along with other deps
- 6e27be9 storagenode/{console,web}: replace vue cli service (webpack) with vite
- 7849fe5 cmd/storagenode: fix node version for docker image
- 8c49a04 web/storagenode,all: fix node Dockerfile, use official nodejs image and bump to 24.11.1
- 4e52fd0 storagenode: Fix UsedSpace calculation of Storagenode web console
- 8eddf1d storagenode/hashstore: windows fixes
Test
- a60eeec testsuite/playwright-ui: bump workers number for CI
- 35ba1fb testsuite/playwright-ui: regenerate lock file