Commit graph

31 commits

Author SHA1 Message Date
Local Dev
d03e9ab5aa Pithos 0.3.25: share menu with X, Telegram and WhatsApp, full-width layout, renames and unlocks reach every view 2026-10-07 22:44:55 +02:00
Local Dev
abe8d0a42d Pithos 0.3.24: one-click Share with 10-year links, share links inside Theseus, Theseus ID linking 2026-10-07 19:37:17 +02:00
Local Dev
f9eccdc4b5 Pithos 0.3.23: rename S3 users 2026-10-07 00:17:32 +02:00
Local Dev
df2afcf5df Pithos 0.3.22: s3d is stopped gently and never mid-upload; stuck waiting files can be repaired 2026-10-06 20:30:22 +02:00
Local Dev
9145aadd80 Pithos 0.3.21: clearer Share dialog with pithos.sia/l links, restart prompt after in-place updates 2026-10-06 00:13:56 +02:00
Local Dev
6d8cb9a144 Pithos 0.3.20: drive mode chip and Share, pithos.sia/app, Linux built on Hephaestus 2026-10-05 23:52:35 +02:00
Local Dev
cd4f24777d Pithos desktop: no electron-builder publishing
On a CI runner electron-builder assumes a GitHub release and writes
auto-update files for it; with no repository it then crashed after the
Linux packages were built. Pithos ships through its own channels
(dl.silentmode.st and the release manifest), so publishing is off.
2026-10-05 03:58:25 +02:00
Local Dev
1509a9ad18 Pithos 0.3.19: open Pithos in a browser, from the app or the pithos.sia website 2026-10-05 01:47:37 +02:00
Local Dev
f4d38bc4d6 Pithos desktop: macOS builds on a GitHub-hosted Mac
macOS packages can only be made on macOS. The workflow builds dmg and zip
for Apple Silicon and Intel, ad-hoc signed (Apple Silicon will not start
an unsigned app; there is no Developer ID yet, so Gatekeeper asks once),
then smoke-tests the packaged server, the macOS s3d install and the pty
before uploading the files with their checksums.
2026-10-05 01:31:03 +02:00
Local Dev
38ac9f6423 Pithos 0.3.18: JSON key export, Linux desktop builds
Export JSON… gives scripts and agents one file with endpoint, key, secret
and drive. The desktop app now ships for Linux too (AppImage, .deb,
tar.gz), using per-user s3d paths there.
2026-10-04 22:49:48 +02:00
Local Dev
11d37aa660 Pithos 0.3.17: Windows desktop app with update notices; accounts named after your Sia Storage email 2026-10-04 22:02:15 +02:00
Local Dev
7741ed2ee9 Pithos desktop: Windows installer and portable build
Until now the desktop app only ran from a source checkout, so Pithos was
really usable only inside Theseus. electron-builder (the version Theseus
uses) now makes an NSIS installer and a portable exe; s3d is still fetched
on first run by the checksum-checked installer, so the app stays small and
never ships an s3d it did not verify. Icons are rendered from ui/icon.svg.

Quitting also no longer waits on idle keep-alive sockets before exiting.
2026-10-04 20:45:04 +02:00
Local Dev
3dd1583ad9 Pithos 0.3.16: public links at navigate.st/sia, and the Pithos name opens Overview
Files in your own Sia account can now be shared with anyone through a
navigate.st/sia link that keeps working with this computer off; the
navigate.st service is live, so the buttons can ship.
2026-10-04 18:27:05 +02:00
Local Dev
f511bf7ce7 Pithos 0.3.15: public folders get a navigate.st/s3 address
With drives on Silent Mode open at s3.silentmode.st, making a folder
public now shows its navigate.st/s3/<name>/<drive>/<folder>/ address:
a page anyone can open, by the account's BNS name instead of its id.
2026-10-04 16:18:16 +02:00
Local Dev
fa1ecc954a Pithos 0.3.14: accounts at the top, Cancel works, updates without a restart
The Accounts page opens with every Sia account on this computer side by
side, with Switch to and Add another account; Cancel closes dialogs
again and Escape works after a ⋯ menu; the footer's update applies the
new version in place on a Theseus that supports it.
2026-10-04 15:56:01 +02:00
Local Dev
068de477df Pithos 0.3.13: menu in setup order, files waiting to upload go up
Accounts first (with the account and its free space), then Overview,
Users & keys and Drives, with Settings and Logs under s3d; Full page as
a one-click icon beside the menu button; a banner for files still
waiting to upload, with leftovers uploaded automatically by default;
s3d no longer races its own commands for the database at start.
2026-10-04 14:39:44 +02:00
Local Dev
fea76372d1 Pithos 0.3.12: HTML pages, renames, free space
An .html file in a drive opens as a page in a new tab, sandboxed so its
scripts cannot reach Pithos, with the files beside it loading as on a
website; it can still be read as text. Drives, folders and files can be
renamed, and Drives and Overview show the free space left on the Sia
account. Both work for drives on Silent Mode, where renaming re-encrypts
what it moves.
2026-10-04 04:06:02 +02:00
Local Dev
13b4ebeea3 Pithos 0.3.11: drives on Silent Mode, and which Sia account is which
Your s3d can now run on Silent Mode's server with your own Sia account, so
apps, S3 clients and share links keep working with the computer off. Names
and contents are encrypted on your computer first; folders you make public,
share by link or open to someone else's key are stored readable, and go back
to encrypted when you stop sharing. Moving there and back carries only s3d's
folder: the recovery phrase stays home and nothing is uploaded to Sia again.

The Account page now shows the account key, storage used and last use as
the indexer reports them, which is how to tell your sia.storage accounts
apart. Leftovers can upload by themselves after a quiet spell.
2026-10-04 03:36:19 +02:00
Local Dev
cbf4ab7a1e Pithos 0.3.10: the app at pithos.sia/<user>/<drive>/<folder>
Full page opened Pithos at a loopback address such as
127.0.0.1:58678/#/buckets/music-house, which means nothing to anyone
reading it and changes every launch. In Theseus the app now lives at
pithos.sia/<S3 user>/<drive>/<folder>, with pages at pithos.sia/settings,
/account and so on; the root page stays the pithos.sia website.

The add-on answers those paths through Theseus's new site routes. It
passes the session to the control server only for pithos.sia's own
requests and the address bar, never another site's fetch, and only
while the vault is unlocked, as the sidebar panel requires. The server
answers its own files, pages and existing S3 users and reports
anything else as not its own, so the website answers it. The sidebar
and the web console keep #/ addresses; an older Theseus still gets the
loopback address.
2026-10-04 03:29:28 +02:00
Local Dev
9a9d4d4a3f Pithos 0.3.9: player volume, share links made at once
The music player had no volume control; it now has a slider beside a
mute button (a pop-up slider on narrow screens), remembered between
visits.

The share dialog asked for a "public address of s3d" before making a
link, which nobody could fill in usefully. The link is now made as the
dialog opens, with a plain note that it opens only on this computer
while s3d listens on 127.0.0.1; your own public address moved under
"Use my own public address". The Access dialog says the same about
what public means while s3d is local, and that access can be changed
at any time. Dialogs now draw above the player.
2026-10-04 03:18:24 +02:00
Local Dev
299c4c069c Pithos 0.3.8: a version footer that updates Pithos in place
Pithos only updated when Theseus happened to check the extension
channel on a restart, and nothing showed which version was running.
A footer now shows pithos.sia and the version, as Aegis's does. In
Theseus it checks the channel when Pithos opens and every six hours;
a newer release shows as "↑ vX", one click downloads and verifies it,
and a second asks Theseus to restart and apply it. ↻ checks on demand.
2026-10-04 02:38:19 +02:00
Local Dev
ebd5b8ffe6 Pithos 0.3.7: Icons, List and Details views; fits the sidebar
Drives and folders can be shown as icons (pictures preview themselves),
a compact list, or a details table with type and date, remembered per
page. Per-item actions move into a ⋯ menu so rows fit a narrow panel.

In the 400 px Theseus sidebar the navigation folds into a compact bar
with the page name, the s3d status and a menu button, so the page gets
the room. The Widen button is gone: widening squeezed the open tab and
the right sidebar. Full page opens Pithos as an ordinary tab instead.
2026-10-04 02:16:09 +02:00
Local Dev
b399d1be46 Pithos 0.3.6: buckets shown as drives
A bucket is the top level you put folders into, so it reads better as a drive than as a folder: the menu and page say Drives, each tile is a drive icon with the files and size it holds (counted in the background, up to 20,000 files, then shown as N+), and the subtitle says S3 apps call it a bucket. Folders inside a drive stay folders. New usage endpoint: GET /api/s3/:user/buckets/:bucket/usage.
2026-10-04 00:09:54 +02:00
Local Dev
77a29d2ce8 Pithos 0.3.5: s3d stays up, one view at a time, user buckets, a viewer
- s3d kept stopping: Pithos stopped it whenever the extension restarted
  (every update, every Theseus quit) and never started it again. Start
  and Stop now record what the user wants (pithos-prefs.json beside
  s3d.yml); Pithos starts s3d with Theseus and when opened, and retries a
  crash up to three times in ten minutes, logging why it skips. The
  Buckets page also redraws when s3d starts or stops; it used to keep
  saying "not running".
- One view at a time: "Full page" opens Pithos in a tab and closes the
  left panel; the tab has "Back to sidebar", which reopens the panel.
- Every new user gets a bucket of their own, named after them (lowercase,
  hyphens) or as typed in the New user dialog.
- Buckets show as folder tiles. New folders are kept while empty with the
  usual "<name>/" marker object.
- A viewer: images, audio (mp3 and friends), video and text open inside
  Pithos, with Share and Download. The Theseus panel uses 10-minute,
  reusable, inline view links so players can make range requests.
- The Access dialog says what s3d cannot do: per-folder public access and
  write rights for others are not supported, only whole-bucket public read.
2026-10-04 00:05:49 +02:00
Local Dev
a91d2c64b4 Pithos 0.3.4: show the Sia account, label it, switch and restore accounts
"Acting as" read like a choice of Sia account; it picks an S3 user on
this s3d, and every user shares the one Sia account the s3d is connected
to. So:

- The picker is "S3 user", with a tooltip saying all users share one Sia
  account; Buckets explains what a bucket is.
- Buckets and the Overview show "Sia account: <label> (indexer)". Pithos
  cannot see the account's email, so the Sia connection page lets the
  user label it (kept in pithos.json beside the s3d data).
- "Switch Sia account" stops s3d and moves its data (connection, users,
  keys, buckets, upload buffer) into previous-account-<stamp>/ next to
  s3d.yml, never deleting it; the guide then connects another account.
  It warns about uploads still waiting for Sia and offers a flush, and
  refuses while another s3d serves the config.
- "Earlier Sia accounts" lists those folders with Restore, which sets the
  current account aside the same way and swaps the old one back.

Also: a fresh connect now records which indexer it used, and a "not
connected" check is re-run after 30 s so a login made outside Pithos
shows up.
2026-10-03 22:57:46 +02:00
Local Dev
735482d3b6 Pithos 0.3.3: fix SignatureDoesNotMatch when opening a bucket
The SigV4 encoder kept '/' unescaped in object paths by swapping in a
"never matches" regex (/$^/) for query values, but that regex matches the
empty string, so every empty query value went out as "/": prefix= became
prefix=/ and ?policy became ?policy=/. The request then no longer matched
what was signed, and listing any bucket or reading its policy failed
against s3d. Bucket listing and creation carry no query, so they worked.

Verified end to end against s3d (list, folders, upload, download, public
policy, folder delete) and against the aws cli; two regression tests.
2026-10-03 22:12:44 +02:00
Local Dev
c09872122a Pithos 0.3.2: save access keys to an encrypted file
Wherever a key pair is shown (the guide's last step, the key dialog) a
"Save credentials" button writes it to a .pithoskey file, and Users &
keys gains "Open saved credentials" to read one back.

- With a password (any host): PBKDF2-SHA256, 600k iterations, AES-256-GCM,
  done in the page with WebCrypto.
- With the Theseus vault (default in Theseus): AES-256-GCM under a key the
  add-on derives from the vault (pithos/credentials/v1, now fixed), so
  there is no extra password; a locked vault raises the PIN prompt first.
  The add-on saves through a native dialog, since the sidebar page has no
  download path.

Only the user name and date stay readable, to tell files apart.
2026-10-03 22:10:00 +02:00
Local Dev
46912a74dd Pithos 0.3.1: plain Next on the account step, confirmed by a checkbox
The account step's button read "I have an account — Next", folding a confirmation into navigation. It is a plain Next now, enabled by an explicit "I have created my Sia Storage account and I am signed in" checkbox (or by choosing your own indexer). Pithos cannot see the sia.storage tab to detect the sign-in itself, and the Connect step proves it anyway: approving needs a signed-in account.
2026-10-03 21:25:24 +02:00
Local Dev
cacbdd571f Pithos 0.3.0: PIN gate and a recovery phrase from the Theseus vault
In Theseus, Pithos now opens only with the vault unlocked: it asks
Theseus for the unlock (api.vault.requestUnlock), and Theseus shows its
own PIN prompt, falling back to the master password after three wrong
tries. Pithos never sees either. When the vault locks (Settings > Lock
now) Pithos locks within a few seconds; the add-on watches from the main
process because a hidden panel's timers run about once a minute.

The guide's phrase step gains "Use my Theseus vault" (the default when a
vault exists): the add-on derives the 12-word phrase from the vault
(purpose path pithos/sia-recovery/v1, first 16 bytes as BIP-39 entropy)
and hands it straight to s3d, so there is nothing to write down and the
vault backup restores storage access. The path is now fixed; changing it
would cut users off from their data.

Needs the vault-derive capability. On a Theseus without requestUnlock it
runs ungated, as before.
2026-10-03 20:42:21 +02:00
Local Dev
c5d6488b7d Pithos 0.2.0: live in the Theseus sidebar, no loopback address
In Theseus the console opened as a tab at http://127.0.0.1:<port>, a raw
local address in the URL bar. It is now a left-sidebar panel instead,
loading the add-on's own ui/index.html: API calls, uploads and live
events cross the add-on IPC bridge and the add-on forwards them to the
control server with an internal session. Downloads go to Theseus's
download manager through single-use 60-second links. The panel can widen
to full window or open as a tab.

The core gains internalSession() and downloadUrl() for that; web and
desktop hosts keep talking HTTP as before. Grids now shrink to fit, so
narrow hosts never scroll sideways.
2026-10-03 19:34:53 +02:00
Local Dev
6b8eeaf82b Pithos: a control panel for s3d, the Sia S3 gateway
s3d is driven entirely by a CLI and a two-route admin API, which keeps
Sia storage out of reach for anyone who does not live in a terminal.
Pithos wraps it: install the pinned s3d release (checksum verified),
start/stop and logs, indexer login, users and access keys, a bucket and
object browser with share links and public-read policies, and the
upload pipeline stats.

One control server (core/) serves one UI (ui/), and three hosts run it:
a web console, an Electron desktop window and a Theseus add-on, so a
feature lands everywhere at once. The server binds loopback, rejects
foreign Host headers, and signs views in with a one-time secret that
becomes a SameSite=Strict cookie. s3d login reads the recovery phrase
with term.ReadPassword, so it is driven through a pty, with a console
window fallback where the pty module is not shipped.
2026-10-03 19:02:50 +02:00