# @pdsjs/readonly ## 2.5.2 ### Patch Changes - Updated dependencies - @pdsjs/core@2.5.2 - @pdsjs/storage-sqlite@2.5.2 - @pdsjs/blobs-fs@2.5.2 ## 2.5.1 ### Patch Changes - Updated dependencies [542c4dc] - @pdsjs/core@2.5.1 - @pdsjs/storage-sqlite@2.5.1 - @pdsjs/blobs-fs@2.5.1 ## 2.5.0 ### Patch Changes - Updated dependencies [d66fcff] - Updated dependencies [05a11b4] - Updated dependencies [f79dd82] - Updated dependencies [e0b38cd] - Updated dependencies [cc4577b] - Updated dependencies [7c06024] - Updated dependencies [6935a55] - Updated dependencies [15c69af] - Updated dependencies [411b47b] - Updated dependencies [861663f] - Updated dependencies [154e7d7] - Updated dependencies [10c91f6] - Updated dependencies [77eb9db] - Updated dependencies [76f5187] - Updated dependencies [b51250e] - Updated dependencies [799286b] - Updated dependencies [4adc49e] - Updated dependencies [9149663] - Updated dependencies [fd401a4] - Updated dependencies [93816a1] - Updated dependencies [3d475f8] - Updated dependencies [078c2df] - Updated dependencies [d5f111c] - @pdsjs/core@2.5.0 - @pdsjs/storage-sqlite@2.5.0 - @pdsjs/blobs-fs@2.5.0 ## 2.4.3 ### Patch Changes - Updated dependencies [d307f57] - Updated dependencies [2d0d653] - @pdsjs/core@2.4.3 - @pdsjs/storage-sqlite@2.4.3 - @pdsjs/blobs-fs@2.4.3 ## 2.4.2 ### Patch Changes - Updated dependencies [c235e96] - @pdsjs/core@2.4.2 - @pdsjs/storage-sqlite@2.4.2 - @pdsjs/blobs-fs@2.4.2 ## 2.4.1 ### Patch Changes - Updated dependencies [fa1558c] - @pdsjs/core@2.4.1 - @pdsjs/storage-sqlite@2.4.1 - @pdsjs/blobs-fs@2.4.1 ## 2.4.0 ### Patch Changes - Updated dependencies [ee6d696] - Updated dependencies [54bec84] - Updated dependencies [f716d9d] - Updated dependencies [4c334b3] - Updated dependencies [6b79149] - Updated dependencies [8616855] - Updated dependencies [af8b1fd] - @pdsjs/core@2.4.0 - @pdsjs/blobs-fs@2.4.0 - @pdsjs/storage-sqlite@2.4.0 ## 2.3.0 ### Patch Changes - c541c98: The account password can be changed from the security page. The configured password (PDS_PASSWORD) seeds a fresh server; a change stores a hash in actor storage and wins from then on. Setting a different configured password afterwards is the operator's reset: it wins over the stored hash, which is the recovery path when the password is lost. The change endpoint takes the current password even inside a signed-in session. Open sessions and app passwords stay valid through a change. - f8e3dff: Private repositories in the account page, and a blob privacy fix. The repositories page lists space-held repos with a Private badge, browses their files, and manages the space's members; a New repository dialog creates the space behind a private repo and shows the push commands. The public `com.atproto.sync.getBlob` and `sync.listBlobs` endpoints no longer serve or list a blob that only space records reference; `com.atproto.space.getBlob` remains the authenticated path to those. - Updated dependencies [232a280] - Updated dependencies [c541c98] - Updated dependencies [f8e3dff] - Updated dependencies [bdad8c4] - Updated dependencies [51d6402] - Updated dependencies [d8cae21] - Updated dependencies [d8cae21] - Updated dependencies [24c9e1e] - Updated dependencies [035450d] - Updated dependencies [3920c52] - Updated dependencies [585139b] - Updated dependencies [5125583] - @pdsjs/core@2.3.0 - @pdsjs/storage-sqlite@2.3.0 - @pdsjs/blobs-fs@2.3.0 ## 2.2.0 ### Minor Changes - f800d5a: A Files page in the account UI: every blob the account holds, with the records that use it. The page opens with a storage bar — bytes by media kind, one fixed hue per kind, doubling as a filter — and chips for kind, app, and "not used", all combinable with a Newest/Largest sort. Filters run server-side with keyset pagination and live in the URL. Filtered to images, the list becomes a thumbnail grid with details in a dialog. On phones the chip rows scroll sideways with sort pinned in view. Dates mean when the content was made, not when the bytes arrived: each blob→record link now stores the record's own timestamp (any top-level ISO-dated field, earliest wins, window-checked so a birthday or a scheduled future date never counts), falling back to the record's TID time and then to arrival here. A file only dated by arrival reads "Stored". On a migrated repo this keeps the original post order, where arrival time would collapse everything onto the migration date. Behind it, `ActorStoragePort` grows optional `listBlobDetails` and `getBlobFacets` methods, implemented for better-sqlite3 and Durable Object SQLite from one shared builder (`@pdsjs/core/blob-sql`), and `linkBlobToRecord` takes the record time. The `record_blobs` table self-heals: `relinkBlobRecords()` rebuilds links and times from record content on CAR import, on the daily blob cleanup, and on demand via the page's "Recheck usage" action (POST /account/api/blobs/relink) — so an imported repo's files stop reading as unused. The overview's blob count uses the exact aggregate instead of the capped page-through when the storage supports it. ### Patch Changes - Updated dependencies [261d4f4] - Updated dependencies [dfce920] - Updated dependencies [dfcf1cc] - Updated dependencies [99c414f] - Updated dependencies [261d4f4] - Updated dependencies [218f25c] - Updated dependencies [1b8cd1e] - Updated dependencies [f2df586] - Updated dependencies [e761cdb] - Updated dependencies [d679bf1] - Updated dependencies [fd33b13] - Updated dependencies [d88b21d] - Updated dependencies [8ce9621] - Updated dependencies [faceaf7] - Updated dependencies [bc5314a] - Updated dependencies [f800d5a] - Updated dependencies [eeb7976] - Updated dependencies [b368c19] - Updated dependencies [44bd2b5] - Updated dependencies [6e47bc6] - Updated dependencies [5a39d42] - Updated dependencies [72965f8] - Updated dependencies [09e110d] - Updated dependencies [098af68] - Updated dependencies [7898894] - Updated dependencies [378e2bb] - Updated dependencies [4363389] - Updated dependencies [011e28d] - Updated dependencies [4169189] - Updated dependencies [ee386d7] - Updated dependencies [8cbae75] - Updated dependencies [4363389] - Updated dependencies [4a9943d] - Updated dependencies [9abf6d6] - Updated dependencies [9524139] - Updated dependencies [62dc25a] - Updated dependencies [8d62485] - Updated dependencies [f1c6639] - Updated dependencies [224cb48] - Updated dependencies [5a39d42] - Updated dependencies [fd54c7d] - Updated dependencies [67387fe] - Updated dependencies [1852faf] - Updated dependencies [9ceb6ad] - Updated dependencies [e628859] - @pdsjs/core@2.2.0 - @pdsjs/storage-sqlite@2.2.0 - @pdsjs/blobs-fs@2.2.0 ## 2.1.0 ### Patch Changes - Updated dependencies [8ac38c1] - Updated dependencies [f5335a0] - @pdsjs/core@2.1.0 - @pdsjs/storage-sqlite@2.1.0 - @pdsjs/blobs-fs@2.1.0 ## 2.0.0 ### Patch Changes - Updated dependencies [62c6521] - Updated dependencies [13e3049] - @pdsjs/core@2.0.0 - @pdsjs/storage-sqlite@2.0.0 - @pdsjs/blobs-fs@2.0.0 ## 1.0.2 ### Patch Changes - Updated dependencies - @pdsjs/core@1.0.2 - @pdsjs/storage-sqlite@1.0.2 - @pdsjs/blobs-fs@1.0.2 ## 1.0.1 ### Patch Changes - Updated dependencies [de2ceed] - @pdsjs/core@1.0.1 - @pdsjs/storage-sqlite@1.0.1 - @pdsjs/blobs-fs@1.0.1 ## 1.0.0 ### Patch Changes - Updated dependencies [3b7895c] - @pdsjs/core@1.0.0 - @pdsjs/storage-sqlite@1.0.0 - @pdsjs/blobs-fs@1.0.0