Commit Graph

55 Commits

Author SHA1 Message Date
lilleman 09d86eddad Make the scroll-lock test able to fail, and name the tell a broken chain actually shows
CI / full-gate (push) Successful in 2m49s
2026-09-09 15:01:15 +02:00
lilleman 9fbda833d5 One home per fact: cut the copied rationale, and give the seam test room to mean something
CI / full-gate (push) Successful in 2m57s
2026-09-09 14:41:19 +02:00
lilleman 098359e298 Name the table's local after the class it applies, and let a broken chain show itself
CI / full-gate (push) Successful in 2m51s
2026-09-09 14:18:36 +02:00
lilleman 4ae9326741 Split the fill seam where ownership splits: the shell bounds, the page fills
CI / full-gate (push) Successful in 3m1s
2026-09-09 14:11:10 +02:00
lilleman 11ba843ab1 Name the bounded frame: fill:true on the shell, and the contract minor that ships it
CI / full-gate (push) Successful in 2m52s
2026-09-08 17:27:21 +02:00
lilleman 706abf1204 Scroll the document by default; a bounded region is a page's own opt-in
CI / full-gate (push) Successful in 2m46s
2026-09-07 07:57:33 +02:00
renovate-bot ea320f6a28 Update Playwright to v1.63.0
CI / full-gate (push) Successful in 3m47s
Mirror / github-mirror (push) Successful in 2s
2026-09-05 04:18:23 +00:00
lilleman 18dc4f3136 Refuse an emailless identity where the session is minted, and rows the upstream should not have sent
CI / full-gate (push) Successful in 2m53s
2026-09-02 18:24:56 +02:00
lilleman 6a0d11d9d3 Name exactly one gate on every declaration, and own a shift by identity id 2026-09-02 14:00:04 +02:00
lilleman bf146c07e7 Bump the contract for the new gate, and close the ways it could read as open
CI / full-gate (push) Successful in 2m45s
2026-09-02 08:36:16 +02:00
lilleman c7e6d66750 Scope My shifts at the upstream, and give Route and NavNode one gate declaration
CI / full-gate (push) Successful in 2m56s
2026-09-02 08:15:08 +02:00
lilleman 8da75b4ca7 Gate a route or nav node on a session, not only a permission
CI / full-gate (push) Successful in 3m6s
2026-09-02 07:36:08 +02:00
renovate-bot 7bde22713f Update Node.js to v24.20.0
CI / full-gate (push) Successful in 3m13s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-08-28 04:18:08 +00:00
lilleman 0ad4c6b09c Say what the browser gives a popover trigger, and pin the part all engines can prove
CI / full-gate (push) Successful in 2m51s
Mirror / github-mirror (push) Successful in 3s
2026-08-26 09:10:46 +02:00
lilleman fa7cad1d65 Declare plugin settings in the manifest, resolve them from the environment 2026-08-23 13:17:03 +02:00
lilleman 4b48bc2416 Scope Release-Bump to the surfaces that ship, and drop the inert package.json versions 2026-08-20 22:43:36 +02:00
lilleman a005acb93d Cut non-essential prose from docs and comments, and require the same of every future change
CI / full-gate (push) Successful in 2m38s
README loses the competitor comparison, the personas and the repeated philosophy; the
five near-identical E2E command blocks become a table plus one command, and the file
map a clause per entry. AGENTS.md keeps every decision but drops the narrative around
them. todo.md's completed items collapse to their task line — git holds the rest.

Comments lose restatement, README duplication and history ("used to", "originally",
dated notes). AGENTS.md gains a Prose discipline section making this a standing pass on
every change rather than a one-off cleanup.

src/compose.test.ts now expects 6 documented E2E run commands, not 10, since the README
states the command once instead of per suite.
2026-08-05 23:41:12 +02:00
lilleman 1cf34a0d45 Harden the artifact-ownership guards and document the root-owned upgrade trap
CI / full-gate (push) Successful in 2m38s
2026-08-05 22:40:36 +02:00
lilleman 073ec294e9 Run the E2E runner as the invoking user so its artifacts aren't root-owned
CI / full-gate (push) Successful in 2m37s
2026-08-05 22:25:17 +02:00
lilleman 38ebe40398 Never fail the boot on operator env; drop unusable ADMIN_PERMISSIONS with a warning
CI / full-gate (push) Successful in 2m40s
2026-08-05 17:36:04 +02:00
lilleman edcd9fefc8 Deleting a group revokes the permissions it granted 2026-08-05 15:39:08 +02:00
lilleman 29d654c012 Permissions are a fixed list from plugin code; grant them on Users and Groups 2026-08-05 15:38:21 +02:00
lilleman 27fee5f8a3 Permission names are <resource>:<action>, replacing the catch-all admin permission 2026-08-05 15:37:39 +02:00
lilleman 690d67728b Watch what a beforeAll logs, and record where each message came from
CI / full-gate (push) Successful in 2m48s
2026-08-05 11:15:37 +02:00
lilleman e808f87fbd Fail an E2E test on anything the browser logs, in all three engines
CI / full-gate (push) Successful in 2m51s
2026-08-05 11:00:25 +02:00
lilleman 9cf6c05325 Name the chrome's language menu and guard anchor positioning in the fallback
CI / full-gate (push) Successful in 2m44s
2026-08-05 02:23:50 +02:00
lilleman cfeee10fa8 Wrap each popover menu and give it a caller-named id
CI / full-gate (push) Successful in 2m43s
2026-08-05 01:58:11 +02:00
lilleman 5d9bdebf59 Close the popup menus on an outside click, via the popover API
CI / full-gate (push) Successful in 2m40s
2026-08-05 01:37:58 +02:00
lilleman 3c64621515 Remove the dead Profile link from the sidebar profile menu
CI / full-gate (push) Successful in 2m39s
2026-08-05 01:01:14 +02:00
lilleman 34b668d49f Use one verb per action in the English UI: sign in, sign out, create account
CI / full-gate (push) Successful in 2m39s
2026-08-05 00:34:05 +02:00
lilleman 46548ae758 Narrow the settings-cog test assertions and record the icon-registry contract
CI / full-gate (push) Successful in 2m37s
Mirror / github-mirror (push) Successful in 6s
2026-08-05 00:20:34 +02:00
lilleman 8f7ab55267 Remove the Settings cog and its Preferences menu from the sidebar footer
CI / full-gate (push) Successful in 2m37s
2026-08-05 00:08:35 +02:00
lilleman c063b71d19 Merge branch 'main' into i18n
CI / full-gate (push) Successful in 2m39s
2026-08-04 10:43:05 +02:00
lilleman bd76c981ee Carry the language through sign-in; warn when switching leaves the page; product-review copy fixes
CI / full-gate (push) Successful in 2m40s
2026-08-04 09:59:00 +02:00
lilleman 37b88b2fe6 Show the language picker on every page, targeting the nearest page that answers GET
CI / full-gate (push) Successful in 2m39s
2026-08-04 09:37:03 +02:00
renovate-bot 01abb2f99c Update Node.js to v24.19.0
CI / full-gate (push) Successful in 2m54s
Mirror / github-mirror (push) Successful in 6s
Release-Bump: minor
2026-08-04 04:17:55 +00:00
lilleman 18e1a8d29d Keep the chrome lazy for error pages, guard the guard-error render, split the recovery link
CI / full-gate (push) Successful in 2m38s
2026-08-04 00:31:19 +02:00
lilleman 93139ea058 Stability round two: no language links on POST-rendered pages, scoped observers, Vary only where it varies
CI / full-gate (push) Successful in 2m37s
2026-08-04 00:10:31 +02:00
lilleman b3df7084c4 Reserve the locale param, carry it on breadcrumbs, translate the permissions detail view
CI / full-gate (push) Successful in 2m38s
2026-08-03 23:21:38 +02:00
lilleman 6440c543e5 Architecture review fixes: partials carry the locale, mountable locales/, shared core words
CI / full-gate (push) Successful in 2m36s
2026-08-03 23:12:18 +02:00
lilleman 245d1ad5b5 Add i18n support: per-locale catalogs, URL-driven locale, translated core and examples
CI / full-gate (push) Successful in 2m37s
2026-08-03 22:37:27 +02:00
lilleman 096720904e Rename the coarse gate from role to permission, matching RBAC 2026-08-03 17:41:40 +02:00
lilleman b580f7d06e Rename the plugin-API permission gate to role 2026-08-03 17:41:40 +02:00
lilleman 0919adf4ef Review fixes: plain depends_on merge, positive secret assertion
CI / full-gate (push) Successful in 2m46s
Mirror / github-mirror (push) Successful in 5s
2026-08-02 16:10:35 +02:00
lilleman f5f4455b81 Browser E2E for the admin OAuth2-clients screen
CI / full-gate (push) Successful in 2m50s
2026-08-02 16:03:30 +02:00
renovate-bot 8e74532a77 chore(deps): update node.js to v24.18.1
Release-Bump: minor
2026-08-02 15:22:25 +02:00
lilleman c64156a9d5 Update e2e-tests lockfile for @playwright/test 1.62.1
CI / full-gate (push) Successful in 2m42s
Mirror / github-mirror (push) Successful in 5s
2026-08-02 15:06:47 +02:00
renovate-bot de2ad42f5a chore(deps): update playwright to v1.62.1
Release-Bump: minor
2026-08-02 15:06:47 +02:00
renovate-bot 7c39056188 chore(deps): update node.js to v24.18.0
CI / full-gate (push) Successful in 2m28s
Mirror / github-mirror (push) Successful in 3s
2026-07-05 07:02:10 +00:00
lilleman e8ea911b80 Move admin screens (users/groups/roles/oauth2-clients) into a drop-in example plugin; add the ctx.system capability surface 2026-07-02 08:01:15 +02:00