Commit graph

166 commits

Author SHA1 Message Date
901adcb2f0
pinakes-ui: add plugin schema renderer
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2c2d99c21a3fdf04dd720286635b98a26a6a6964
2026-03-09 22:04:44 +03:00
307375a348
pinakes-ui: add plugin action executor
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic6dc2c6e3ef58dacad4829037226b0cf6a6a6964
2026-03-09 22:04:43 +03:00
e46a8943cb
pinakes-ui: add plugin data fetching
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie28a544cf0df1a23b905e89b69db19c06a6a6964
2026-03-09 22:04:42 +03:00
5b204dceb5
pinakes-ui: add ApiClient plugin methods; depend on plugin API
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ica7f913a22d18e59e85f1959a5b336df6a6a6964
2026-03-09 22:04:41 +03:00
29ba24ae01
pinakes-server: add GET /plugins/ui-pages endpoint
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id09d4dce060e0a79586251a16fb6bdbc6a6a6964
2026-03-09 22:04:40 +03:00
0525ea6c60
pinakes-core: expose plugin UI pages via PluginManager
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic58a0174e6592303e863f51fb237220e6a6a6964
2026-03-09 22:04:39 +03:00
c86d9399ac
pinakes-plugin-api: initial UI schema types; manifest extension for GUI plugins
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I508f94798a6eaa800672bd95fa8127d86a6a6964
2026-03-09 22:04:36 +03:00
1accc202bc
chore: force explicit ABI in rustfmt
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3cba9aa27b26c89403f82211d7dd0c476a6a6964
2026-03-08 15:48:03 +03:00
c6697e7c6f
docs: update plugin documentation to reflect new isolation model
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0102be6731db2770408e8a0b445064926a6a6964
2026-03-08 15:45:55 +03:00
1928d26cde
chore: update sample configuration with new plugin fields
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iabfbaff84bb0dbf3f172997adc9aabd36a6a6964
2026-03-08 15:25:12 +03:00
raf
24d60fd4c9 Merge pull request 'finalize server-side plugin system' (#8) from notashelf/push-wxzvxtntoxnn into main
Reviewed-on: #8
2026-03-08 12:21:42 +00:00
ce9c27d410
pinakes-server: update tests with plugin configuration
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I320426c6b2cc9119a44570b4534e08d66a6a6964
2026-03-08 15:17:03 +03:00
e9c5390c45
pinakes-server: integrate plugin system into routes & application state
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib5d482326cae1dcb43603bffb76a6a186a6a6964
2026-03-08 15:17:02 +03:00
f686e8a777
pinakes-core: emit plugin events from scan and import pipelines
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib992e292a3272c52f9b7c18164ec61f56a6a6964
2026-03-08 15:17:01 +03:00
7d3c2052c2
pinakes-core: add plugin integration tests and test fixtures
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If4372ea33b93306486170353f9edf4a76a6a6964
2026-03-08 15:17:01 +03:00
61ebc6824c
meta: ignore compiled test fixtures in git
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic2f8776f5a55acc4281bfe6fcbe9d1116a6a6964
2026-03-08 15:17:00 +03:00
57f440d62e
nix: add wasm32-wasip1 target
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4bfc9e9749c17b6950b5489fa42d43c26a6a6964
2026-03-08 15:16:59 +03:00
4edda201e6
pinakes-core: add plugin pipeline; impl signature verification & dependency resolution
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ida98135cf868db0f5a46a64b8ac562366a6a6964
2026-03-08 15:16:58 +03:00
8347a714d2
pinakes-plugin-api: extend manifest with dependencies; basic WASM exchange buffer
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I60c0607fe27092a43826ac956e20a9a16a6a6964
2026-03-08 15:16:46 +03:00
cb10c84809
chore: update example config with ratelimit opts; format TOML
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iefb657f4564caa8fd9a0ec375522c4726a6a6964
2026-03-08 01:07:50 +03:00
99b3c01d22
chore: tag 0.3.0-dev
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I46e0922237f99736aec4b11ecb84b12a6a6a6964
2026-03-08 01:07:01 +03:00
adaab9de21
pinakes-ui: add book management component and reading progress display
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I877f0856ac5392266a9ba4f607a8d73c6a6a6964
2026-03-08 00:43:32 +03:00
66861b8a20
pinakes-tui: add book management view and api key authentication
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I20f205d9e06a93a89e8f4433ed6f80576a6a6964
2026-03-08 00:43:31 +03:00
3d9f8933d2
pinakes-core: update remaining modules and tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9e0ff5ea33a5cf697473423e88f167ce6a6a6964
2026-03-08 00:43:30 +03:00
c8425a4c34
pinakes-plugin-api: update manifest, types, and wasm interface
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic574cc8d1d24967a8c997a3092037e526a6a6964
2026-03-08 00:43:29 +03:00
eb6c0a3577
pinakes-server: update remaining route imports and handlers
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I67206fd813d514f8903041eea0a4cd266a6a6964
2026-03-08 00:43:28 +03:00
2b2c1830a1
pinakes-server: fix api key timing, notification scoping, and validate progress inputs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ieb342b4b48034de0a2184cdf89d068316a6a6964
2026-03-08 00:43:27 +03:00
52f0b5defc
pinakes-server: wire backup, session refresh, webhooks, and rate limit config
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If2855d44cc700c0f65a5f5ac850ee3866a6a6964
2026-03-08 00:43:26 +03:00
4e91cb6679
pinakes-core: add backup, session refresh, share permissions restructure, and fix integrity
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I17da1cf8403bd11d2a6ea31138f97e776a6a6964
2026-03-08 00:43:25 +03:00
672e11b592
pinakes-core: add configurable rate limits and cors; add webhook dispatcher; bound job history
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib0d34cd7878eb9e8d019497234a092466a6a6964
2026-03-08 00:43:24 +03:00
d5be5026a7
pinakes-core: fix isbn regex, csv quoting, document extraction, and enrichment accuracy
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I974959e74d2b5b5591437daa0f29291a6a6a6964
2026-03-08 00:43:23 +03:00
d77e5b9f2f
pinakes-server: split dto module into submodules
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I1e9421d79010813992feb2b26c44d6796a6a6964
2026-03-08 00:43:22 +03:00
e66a2231b7
chore: bump dependencies
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I1af3e76ac85c4533065b66a18b25fdc06a6a6964
2026-03-08 00:43:21 +03:00
8ec30c35f2
flake: bump inputs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I00b16da7b4c55c774e71acac394971d56a6a6964
2026-03-08 00:43:20 +03:00
b2b9adb0af
pinakes-server: sanitize Content-Disposition filenames in dls
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id8769e010ed634b9baf0e2c76905ad336a6a6964
2026-03-08 00:43:19 +03:00
f049dd100a
pinakes-server: propagate sync/share errors; cap unbounded pagination
limits

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I79339740dd34353014d02f571b6f55a26a6a6964
2026-03-08 00:43:18 +03:00
b12ad5d272
pinakes-server: fix session token distribution bias; propagate auth audit
errors

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I96027de89511f13e9db6d277de2bcf436a6a6964
2026-03-08 00:43:17 +03:00
b8ff35acea
various: inherit workspace lints in all crates; eliminate unwrap()
throughout

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id8de9d65139ec4cf4cdeaee14c8c95b06a6a6964
2026-03-08 00:43:16 +03:00
1fe2c7998d
pinakes-server: eliminate unwraps from response builders
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I6d80e505963dfa4d117f6b33d69fc1516a6a6964
2026-03-08 00:43:15 +03:00
01fc2021c0
pinakes-server: bound session concurrency; handle JoinError; make analytics
retention configurable

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaa35af821862eeadba0a4f384b2aec2c6a6a6964
2026-03-08 00:43:14 +03:00
b24d4cbcdd
pinakes-core: fix thumbnail generation; use explicit MediaType IDs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8d691bd5bffbccb80a7e3c2c387168d56a6a6964
2026-03-08 00:43:13 +03:00
237f7c28d2
pinakes-core: add batch_update_media; RAII temp file cleanup in import
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Icdec2d385c11ec64622611f3be09a20f6a6a6964
2026-03-08 00:43:12 +03:00
cd63eeccff
various: add Display impls for domain enums; improve contextual errors
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia16e7e34cda6ae3e12590ea1ea9268486a6a6964
2026-03-08 00:43:11 +03:00
fe165f9d4b
nix: remove rust-overlay override args
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2b710e73c9094e74c20605c5088483156a6a6964
2026-03-08 00:42:46 +03:00
acca3b280a
meta: set up cargo-deny; ignore GTK3 advisories
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ica2213fb035485d60db5dda6700c67ad6a6a6964
2026-03-06 18:29:37 +03:00
557ece6940
chore: bump dependencies
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I52cb2f11ec361a97aefef60593eebbad6a6a6964
2026-03-06 18:29:37 +03:00
97a1df9b84
nix: modernize devshell
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3ff191ec1477db9a61dfc9aeb63258406a6a6964
2026-03-06 18:29:36 +03:00
cd1161ee5d
chore: bump deps; fix clippy lints & cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4c4815ad145650a07f108614034d2e996a6a6964
2026-03-06 18:29:35 +03:00
c535650f45
docs: clarify wording around API split
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I864882c5a22424cd6c8c320627fe9f006a6a6964
2026-03-06 18:29:34 +03:00
3ccddce7fd
treewide: fix various UI bugs; optimize crypto dependencies & format
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If8fe8b38c1d9c4fecd40ff71f88d2ae06a6a6964
2026-03-06 18:29:33 +03:00