Commit Graph
912 Commits
Author SHA1 Message Date
Thomas Camlong e49e53a32f fix(permissions): model app use as a capability, not a level below modify
Codex review: app-modify-all implies only app-create - app-use-all is implied by
app-full-all alone. Putting use beneath modify in the ordered ladder therefore
fabricated a grant: a legacy group holding just app-modify-all displayed as
Modify, and touching the row or applying a preset silently granted use of every
app.

Ladders may now only contain keys that genuinely imply each other. Everything
else is a capability with its own checkbox, so the app row is
No access | Modify | Full plus "Use all apps" and "Create apps". A test asserts
every ladder is a real chain, so this class of mismatch fails CI rather than
shipping.

Also documents in the API docs why app list endpoints can now return FORBIDDEN
and why integration lists may return fewer records, as AGENTS.md requires.
2026-08-19 09:42:04 +02:00
Thomas Camlong 6728d0a63d fix(permissions): keep create permissions grantable and stop silent escalation
The matrix could not represent board-create, app-create, integration-create,
search-engine-create or media-upload, and savePermissions force-bundled every
create key with its modify/full parent. Together that meant a group with
board-create was silently upgraded to board-full-all on the next save, and the
common "members may create their own boards" setup became unreachable.

- permissionMatrix models create/upload as an orthogonal capability next to the
  ordered access levels, so all 20 permission keys round-trip losslessly
- savePermissions stores exactly what was selected
- the matrix UI gets a per-category create checkbox, auto-checked and disabled
  when the chosen level already implies it
- a management section is reachable when the user can do at least one thing in
  it; nav, pages and stat cards now share one access helper
2026-08-18 15:40:28 +02:00
Thomas Camlong 2cfa806176 feat: recalculate permission scope and add permission matrix UI
- Gate app list procedures (getPaginated/all/search) behind app-modify-all
- Filter integration list procedures by per-integration access
- Bundle create permissions with their modify/full parents on group save
- Align manage nav, home stat cards and page gates with the new scope
- Add permission matrix UI with presets and effective-permission preview
- Show scoped empty states and delegated-admin notices on the integrations page
2026-08-18 11:04:57 +02:00
BergashaandThomas ebdfeb724b fix(media widget): text size fix and added season + Episode info (#6605)
Co-authored-by: Thomas <thomas@ajnart.fr>
2026-08-18 09:44:12 +02:00
Thomas e842177d9b feat: port release-v2 experience improvements from #6582 (audited subset) (#6609) 2026-08-18 09:40:02 +02:00
Thomas Camlong 38fc5dd582 feat(custom-widgets): configure missing credentials 2026-08-17 15:47:42 +02:00
Thomas Camlong 206905ea2d feat(workshop): rebuild install and publish as pages
Replace the stacked install modals (browse -> details -> import review)
with page-based flows so the primary action is always reachable:

- /manage/custom-widgets/workshop browses submissions as a card grid
  with large previews, sitting in a tab next to the installed widgets
- /manage/custom-widgets/workshop/[id] merges the listing, security
  review and source setup onto one page with a sticky install footer
- /manage/custom-widgets/publish/[id] replaces the publish modal
- /manage/workshop redirects; its navbar entry is gone
- the Custom CSS picker collapses from three modals to one

Extract useCustomWidgetImport and ImportReviewContent so the Workshop
page and the file/clipboard dialog share one import pipeline.

Votes now show the viewer's own choice filled Reddit-style, backed by a
new user-votes query, and screenshots get a zoomable lightbox.

Rework the installed list onto ManageCollectionItem: show the widget
description, replace the cryptic "JSX - 2" badge with plain request and
origin facts, and swap the toggle and bare pencil for a status badge,
a labelled Edit button and a menu entry for enable/disable.

Fixes found while reviewing:

- importing could run twice and duplicate a widget; guard on pending and
  succeeded, and return to the installed list instead of the heavy edit
  form
- a background refetch of the submission (window focus, or the
  invalidation a vote triggers) reset the source setup and silently wiped
  part-typed credentials; key the reset on the sources, not the object
- breadcrumbs raised MISSING_MESSAGE for unmapped dynamic segments; fall
  back to the raw segment via t.has
- publishing had no in-flight guard and could post duplicate listings
- tooltips on disabled vote and report controls never fired, making the
  sign-in hint unreachable
2026-08-17 01:14:38 +02:00
Thomas Camlong 50537d077c feat(custom-widgets): export legacy definitions 2026-08-16 23:33:07 +02:00
Thomas Camlong 4e514ab151 fix: show Workshop voting as net score 2026-08-16 23:15:09 +02:00
Thomas Camlong 960551f573 feat: simplify Workshop widget installation 2026-08-16 23:11:52 +02:00
Thomas 4505ce96c9 fix: refine dashboard interactions and widget options (#6597)
* fix: refine dashboard item interactions

* fix board interactions and widget options

* feat: improve bookmark selection

* fix: address dashboard review feedback
2026-08-15 10:44:37 +02:00
Thomas Camlong b491d45fdc feat: improve workshop publishing flow 2026-08-14 23:16:39 +02:00
ajnart 741e641bd2 fix: address onboarding review findings 2026-08-14 11:32:13 +02:00
Thomas Camlong f1ce0fffad fix(onboarding): accept self-hosted addresses 2026-08-14 11:32:13 +02:00
Thomas Camlong 9c5ab62b3a fix(onboarding): simplify detected app cards 2026-08-14 11:32:13 +02:00
Thomas Camlong cca6de2b86 fix(onboarding): align detected app setup 2026-08-14 11:32:12 +02:00
Thomas Camlong c24ccde404 fix(onboarding): highlight detected apps 2026-08-14 11:32:12 +02:00
Thomas Camlong 7b1a801ab8 feat: consolidate onboarding 2026-08-14 11:32:12 +02:00
Thomas Camlong 8239a631f2 feat: consolidate onboarding 2026-08-14 11:32:12 +02:00
Thomas Camlong 775ae0147c feat: enhance onboarding 2026-08-14 11:32:12 +02:00
Thomas Camlong dd707bed7e feat(onboarding): test integration connections 2026-08-14 11:32:12 +02:00
Thomas Camlong 276431ef4c fix(onboarding): skip unfinished integrations 2026-08-14 11:32:12 +02:00
Thomas Camlong c25c1dbac7 feat(onboarding): polish setup experience 2026-08-14 11:32:12 +02:00
Thomas Camlong 2566be2838 fix: address onboarding review feedback 2026-08-14 11:32:12 +02:00
Thomas Camlong dc71084323 fix: harden onboarding completion 2026-08-14 11:32:12 +02:00
Thomas Camlong e41605640b feat: rebuild onboarding experience 2026-08-14 11:32:11 +02:00
ajnart 111a72c283 fix: retain assistant translation options 2026-08-14 11:32:11 +02:00
ajnart b988e431e8 fix: address assistant review findings 2026-08-14 11:32:11 +02:00
ajnart 87a42f09be integrate assistant custom widget workflow 2026-08-14 11:32:10 +02:00
ajnart 37f5473054 refresh views after assistant changes 2026-08-14 11:32:10 +02:00
ajnart 454a35d1a9 fix assistant automatic approvals 2026-08-14 11:32:10 +02:00
ajnart 5ceef06b4b fix: address assistant review feedback 2026-08-14 11:32:10 +02:00
ajnart 3faac7a96d fix: harden assistant interactive tools 2026-08-14 11:32:10 +02:00
ajnart 38440a2e57 feat: improve assistant tool workflows 2026-08-14 11:32:10 +02:00
ajnart c5800785c9 fix: secure assistant generation telemetry 2026-08-14 11:32:10 +02:00
ajnart b66c73141f feat: enrich assistant request telemetry 2026-08-14 11:32:10 +02:00
ajnart 0a88db1296 fix: sync assistant runtime preferences 2026-08-14 11:32:10 +02:00
ajnart ebf6c0d97b fix: polish assistant widget interactions 2026-08-14 11:32:10 +02:00
ajnart 8e0a52fcd0 feat: add assistant conversation widget 2026-08-14 11:32:10 +02:00
ajnart 6dc9a565b0 feat: add assistant board styling tools 2026-08-14 11:32:10 +02:00
ajnart 07547a462c fix: restore assistant approval flows 2026-08-14 11:32:10 +02:00
ajnart 18ed16d07e feat: redesign assistant management 2026-08-14 11:32:10 +02:00
ajnart efe477e5b5 feat: improve assistant confirmations 2026-08-14 11:32:10 +02:00
ajnart 41389b61e2 feat: improve assistant background controls 2026-08-14 11:32:10 +02:00
ajnart 0c5fc1d331 refactor: simplify assistant message controls 2026-08-14 11:32:10 +02:00
ajnart b5162a9b95 fix: address assistant capability review 2026-08-14 11:32:10 +02:00
ajnart 40c7b1523b feat: expand assistant interaction capabilities 2026-08-14 11:32:10 +02:00
ajnart d37a2ba963 refactor: remove assistant chat archiving 2026-08-14 11:32:10 +02:00
ajnart 3e1257bafc fix: harden assistant floating panel 2026-08-14 11:32:10 +02:00
ajnart 63699b1610 feat: streamline assistant interactions 2026-08-14 11:32:10 +02:00