Commit Graph
50 Commits
Author SHA1 Message Date
justme d0aefb3d6e feat(web): split the home page into quick share and spaces zones
Two side-by-side zones (stacked on narrow screens) with an icon and a
one-line positioning each: quick share is temporary, read-only and needs
no account; spaces are long-lived, multi-user and need a login. Shorter
copy, my shares listed under the share input, and an empty state for
spaces.
2026-10-14 22:42:06 +08:00
justme 0d31e3d058 feat(web): redesign account settings and the sign-in page
- account settings: sidebar sections (profile, devices, security,
  invitations, sync and sign-in) instead of one long scroll; inline device
  rename, confirmations for destructive actions and toast feedback
- sign-in/register: split layout with a quiet brand column, text tabs and
  underlined inputs; registering asks for the password twice and explains
  that it cannot be recovered
- move invitation accept/label helpers into store/invitations so the
  toast and the settings inbox share them
- add the home page zone styles used by the next commit
2026-10-14 22:42:06 +08:00
justme 4b8d0b5a5f feat(web): discord-style chat, members pane, invitations and optimistic send [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
- chat: left-aligned discord-style messages with grouped senders, hover
  actions, an auto-growing composer and file cards
- send: render messages and files locally first and replace the
  placeholder when the worker publishes the real item; failures keep the
  text with a retry action
- navigation: space rail plus a flatter channel list with the space name
  header and collapsible groups
- members: right pane tabs (files / members) grouped by online, offline
  and pending users, with a prominent invite action and a top bar shortcut
- notifications: toast host for invite results; invitees get a toast with
  an accept action, and the invitation payload now carries the space name
  and inviter inside the encrypted grant
- users over devices: drop device names, the device list and device
  rename/release; senders show the account (guests show as guest) and the
  share panel only keeps links
- follow contract 7.0.0 (max_members, members_used, members_full, /join)
- docs: ui-design and frontend updated for the new layout and concepts
2026-10-14 22:19:25 +08:00
justme 5fd4ddd411 refactor(core): drop per-terminal device labels
Remove sealLabel/openLabel and their label constants; devices are no
longer named per channel. Rename the create setting seats to
max_members and point the e2e join helper at POST /join.
2026-10-14 22:19:24 +08:00
justme d946fc5e8a feat(api)!: fold devices into users and report member presence
Contract 7.0.0 (breaking). Devices become an attribute of the account;
members are managed per user, and only unauthenticated guests keep a
per-terminal registration.

- rename seats -> max_members, seats_used -> members_used,
  seats_full -> members_full, SeatJoined -> JoinResult, the `seats`
  stream control message -> `members`, and POST /channels/{id}/seats ->
  POST /channels/{id}/join (stored channel settings are migrated on start)
- drop per-terminal encrypted device labels and the seat list/release
  endpoints; add GET/DELETE /channels/{id}/guests for guest terminals
- authenticate account members by account session only: the terminal key
  is optional for logged-in accounts, no seat row is written for them,
  and gated-download grants are counted per user (per terminal for guests)
- GET /channels/{id}/members now returns online, devices and
  online_devices per account; presence is tracked in memory from active
  WebSocket/SSE subscriptions and is not pushed over the stream
- owner invitation list no longer returns accounts that already joined
2026-10-14 22:18:59 +08:00
justme 0fd2a269d9 Merge pull request 'feat(files): add per-channel storage quota [CI]' (#2) from feat/channel-storage-quota into master
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-14 05:42:56 -07:00
justme a6f078d009 feat(files): add per-channel storage quota [CI]
ci/woodpecker/pr/web-build Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-10-14 20:42:08 +08:00
justme 441ed0e5f0 Merge pull request 'feat: add account workspaces and signed content events' (#1) from feat/account-workspace-signatures into master
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-10-14 05:29:35 -07:00
justme fe39b30332 fix(core): satisfy strict signature test typing
ci/woodpecker/pr/web-build Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-10-14 20:28:52 +08:00
justme 58506f82de docs: describe workspace signing boundaries
ci/woodpecker/pr/web-build Pipeline failed
ci/woodpecker/pr/ci Pipeline was successful
2026-10-14 04:06:29 +08:00
justme b5cf3d5958 feat(web): add account workspaces and signed content flows 2026-10-14 04:06:03 +08:00
justme 7b8d61d1ba feat(api): add account workspaces and signed content events 2026-10-14 04:05:30 +08:00
justme 937b774a93 test(web): cover workspace and file interaction workflows
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-10-13 01:39:26 +08:00
justme c2ea1b7f64 docs: consolidate account workspace architecture 2026-10-13 01:39:25 +08:00
justme b65e32885f feat(auth): remember encrypted local login credentials 2026-10-13 01:39:24 +08:00
justme f6cfb12716 feat(web): add spaces, grouped channels and file chat 2026-10-13 01:39:23 +08:00
justme c7d8ef15bc feat(api): bind encrypted workspaces to accounts and devices 2026-10-13 01:38:19 +08:00
justme 019b15041a build(deploy): switch hosting to Podman Quadlet 2026-10-13 01:38:18 +08:00
justme 10aa0304e4 feat(web): separate build sources and localize time
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-10-12 16:50:15 +08:00
justme 89cd92f7ee feat(web): show build info and theme menu [CI]
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-12 16:40:50 +08:00
justme 98a5e67f82 ci: reuse NativeAOT build image [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-12 02:09:50 +08:00
justme b9c620304c fix(ci): stabilize oversized body check [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-12 01:58:41 +08:00
justme 9f02a17c85 ci: align Zot login with MoShiro [CI]
ci/woodpecker/push/web-build Pipeline failed
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/dev-image unknown status
2026-10-12 01:56:08 +08:00
justme d570435236 ci: use Zot API key at registry.oeo.one [CI]
ci/woodpecker/push/web-build Pipeline failed
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/push/dev-image unknown status
2026-10-12 01:54:25 +08:00
justme fd01120d3a ci: gate development images on checks [CI] 2026-10-12 01:47:24 +08:00
justme c0d155c608 fix: stabilize mobile uploads and show transfer speed 2026-10-03 01:37:43 +08:00
justme 09d66092f5 ci: fix latest image tag publishing commands
ci/woodpecker/push/ci Pipeline failed
2026-10-02 06:21:04 +00:00
justme ca62b9dd6e ci: publish latest image tag on release
ci/woodpecker/push/ci Pipeline failed
2026-10-02 06:20:05 +00:00
justme c68acfd78b fix: allow embedded worker API requests
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/tag/release-backend Pipeline was successful
2026-10-02 14:12:14 +08:00
justme 10ea48bf04 fix: clarify quick share creation failures
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/tag/release-backend Pipeline was successful
2026-10-02 13:44:03 +08:00
justme fbe6abd519 feat: embed frontend in backend
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/tag/release-backend Pipeline was successful
2026-10-02 13:11:10 +08:00
justme 22f9bcfa46 ci: reuse Buildah layers for backend releases
ci/woodpecker/push/ci Pipeline was successful
2026-10-02 05:02:03 +00:00
justme 46974b120e ci: cache and prefetch WebDrop dependencies
ci/woodpecker/tag/release-backend Pipeline was successful
2026-10-02 04:18:48 +00:00
justme 3332e7bbcf ci: cache and prefetch WebDrop dependencies 2026-10-02 04:18:41 +00:00
justme a182043970 ci: cache native image build dependencies
ci/woodpecker/manual/ci Pipeline failed
ci/woodpecker/manual/release-backend Pipeline was canceled
2026-10-02 11:51:56 +08:00
justme 2150849529 ci: use host network for Buildah image build
ci/woodpecker/manual/ci Pipeline was successful
ci/woodpecker/manual/release-backend Pipeline was successful
2026-10-02 11:39:48 +08:00
justme dde7beee15 ci: publish releases through internal Zot endpoint
ci/woodpecker/manual/ci Pipeline was successful
ci/woodpecker/manual/release-backend Pipeline failed
2026-10-02 11:37:24 +08:00
justme dd6ab78353 ci: checkout tagged source for manual releases
ci/woodpecker/manual/release-backend Pipeline failed
ci/woodpecker/manual/ci Pipeline was successful
2026-10-02 11:34:30 +08:00
justme 9964b4e3ad ci: allow manual semver image publishing 2026-10-02 11:33:34 +08:00
justme 65ae850c0c docs: note native Woodpecker runner requirements 2026-10-02 11:18:18 +08:00
justme 3abac991f0 fix(storage): defer concurrent SQLite read transactions
ci/woodpecker/manual/ci Pipeline was successful
2026-10-02 11:12:05 +08:00
justme 6339f6728d ci: align workflows with native Woodpecker agents
ci/woodpecker/manual/ci Pipeline failed
2026-10-02 11:08:51 +08:00
justme b548d1c71d ci: clone WebDrop using private public-host secret
ci/woodpecker/manual/ci Pipeline failed
2026-10-02 11:05:19 +08:00
justme 8d8d4fd5b7 ci: clone repository from public Git URL
ci/woodpecker/manual/ci Pipeline was canceled
2026-10-02 11:01:16 +08:00
justme 58095ae25b ci: support manual validation runs
ci/woodpecker/manual/ci Pipeline failed
2026-10-02 10:55:44 +08:00
justme b0af858a18 ci: publish backend release tags to zot 2026-10-02 10:54:22 +08:00
justme 7406e2fe37 feat: integrate client and server sharing workflows 2026-10-02 10:49:45 +08:00
justme 42b93ae2d8 feat(server): implement sealed share lifecycle
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-02 00:59:56 +08:00
justme e02e024605 feat(web): connect quick share flow
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-02 00:59:37 +08:00
justme 53768a195d chore(repo): initialize WebDrop monorepo
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-02 00:59:22 +08:00