lilleman
|
428800fd62
|
Items 62, 69, 64: group delete in one Keto transaction, dashboard view rename, permissions kept on self-refusals
CI / full-gate (push) Successful in 3m19s
|
2026-11-08 23:04:18 +01:00 |
|
lilleman
|
0727d15964
|
Trim two stale comments in the grants and Keto client headers
CI / full-gate (push) Successful in 3m29s
|
2026-11-08 22:24:18 +01:00 |
|
lilleman
|
2b19ed27d2
|
Answer prose round 1: 1 🔴, 4 🟡 (0 misread); correct the older changelog entries, keep each fact in one home, rewrap the Keto header
CI / full-gate (push) Successful in 4m37s
|
2026-11-08 22:15:54 +01:00 |
|
lilleman
|
2de7e4d79c
|
Answer product-owner round 1: 0 🔴, 1 🟡 (0 misread); a Remove confirms with its own notice, the hint no longer says to remove, the example README names the list
|
2026-11-08 22:15:54 +01:00 |
|
lilleman
|
4d2e7b59fd
|
List grants no plugin declares with a Remove, and save a permission change as one Keto transaction
CI / full-gate (push) Successful in 3m26s
|
2026-11-08 22:04:52 +01:00 |
|
lilleman
|
e328832374
|
Answer prose round 1: 0 🔴, 4 🟡 (0 misread); repoint the stale /admin examples and the plugin-api comment, fix the examples row
CI / full-gate (push) Failing after 20s
|
2026-11-08 21:33:58 +01:00 |
|
lilleman
|
b8a510a1c5
|
Answer product-owner round 1: 0 🔴, 2 🟡 (0 misread); say the old copy is refused and nothing redirects /admin/, show a profile-entry override
|
2026-11-08 21:33:57 +01:00 |
|
lilleman
|
05da1d7897
|
Rename the admin example plugin to auth-admin, and let config/menu.ts hide or rename a profile-menu entry
CI / full-gate (push) Successful in 3m32s
|
2026-11-08 21:25:11 +01:00 |
|
lilleman
|
3179be0d11
|
Answer prose round 1: 0 🔴, 10 🟡 (0 misread); define code health, restore the topic index, give each decision a premise of its own
CI / full-gate (push) Successful in 3m39s
|
2026-11-08 21:09:19 +01:00 |
|
lilleman
|
7ad46d0adf
|
Move the decisions out of AGENTS.md into docs/decisions.md
CI / full-gate (push) Successful in 4m5s
|
2026-11-08 21:00:53 +01:00 |
|
lilleman
|
777c0bd86d
|
Let a plugin add links to the profile menu, and list the setting conflict kind
CI / full-gate (push) Failing after 1m17s
|
2026-11-08 19:17:57 +01:00 |
|
lilleman
|
0b48f71d65
|
Drop the double blank lines the removed listPagination helpers left
|
2026-11-08 14:45:06 +01:00 |
|
lilleman
|
9af29ffdb9
|
Answer stability round 1: 1 🔴, 4 🟡 (0 misread); assetHref in the test fakes, one shared buildContext option set, default pinned, upgrade note and AGENTS.md corrected
|
2026-11-08 14:41:19 +01:00 |
|
lilleman
|
404f2584ac
|
Add buildPaginationModel and ctx.assetHref, and bump the plugin contract to 0.5.0
CI / full-gate (push) Failing after 5s
|
2026-11-08 14:32:05 +01:00 |
|
lilleman
|
fefc7cee30
|
Plan 0.5.0 from the ten highest-scoring items; reserve the plugin id error, translate the duplicate-group refusal, and correct four comments and README passages
|
2026-11-03 21:43:57 +01:00 |
|
lilleman
|
3592a30f98
|
Answer prose round 1: 0 🔴, 2 🟡 (0 misread); the view header calls the link a URL, the always-present code loses its guard, the test comment goes
CI / full-gate (push) Successful in 3m31s
|
2026-10-31 13:11:21 +01:00 |
|
lilleman
|
f340933e39
|
Answer product-owner round 1: 0 🔴, 1 🟡 (0 misread); the notice tells the admin to send the link and the code
|
2026-10-31 13:11:21 +01:00 |
|
lilleman
|
4cb21d8909
|
Link the admin's recovery-code notice to the flow the code was minted on
CI / full-gate (push) Failing after 1m1s
|
2026-10-31 13:05:06 +01:00 |
|
lilleman
|
8906340cf8
|
Answer product-owner round 1: 0 🔴, 1 🟡 (0 misread); the refusal names the permissions you would lose
|
2026-10-31 11:02:47 +01:00 |
|
lilleman
|
35f71d435b
|
Answer stability round 1: 0 🔴, 2 🟡 (0 misread); tests pin all three user-page modes and the refusal page's group, the guard checks membership before the per-permission walk, logs the action and what was lost
|
2026-10-31 11:02:47 +01:00 |
|
lilleman
|
ad812e17c2
|
Refuse a group change that would lock the acting admin out, and title a read-only user page View user
CI / full-gate (push) Successful in 3m22s
|
2026-10-31 10:47:47 +01:00 |
|
lilleman
|
c1abc67a92
|
Answer prose round 1: 0 🔴, 2 🟡 (0 misread); the harness and plugins-test comments and the README clause are gone, the admin pointers name the full path
|
2026-10-31 10:37:15 +01:00 |
|
lilleman
|
71b12a6c0a
|
Split src/http/app.test.ts into one file per concern, and reset the reading-cost trend
CI / full-gate (push) Successful in 3m20s
|
2026-10-31 10:35:08 +01:00 |
|
lilleman
|
85bfadd040
|
Answer stability round 1: 1 🔴, 4 🟡 (0 misread); allow the stale-save 409 in the e2e console guard, report a partial save when Keto cannot be read again, add the missing group, no-op and plain-login tests
|
2026-10-31 09:46:17 +01:00 |
|
lilleman
|
f4969d5c1f
|
Refuse a stale permission save, confirm or report it, show View to read-only holders, keep an absolute return_to beside a locale
CI / full-gate (push) Failing after 2m53s
|
2026-10-31 09:34:05 +01:00 |
|
lilleman
|
a190166421
|
Answer stability round 1: 1 🔴, 6 🟡 (0 misread); hide the theme switch after its base rule, hide inert nav toggles, test the rendered result
|
2026-10-31 01:32:26 +01:00 |
|
lilleman
|
635006b5fc
|
Show the whole nav tree without :has(), raise text contrast to 4.5:1, drop unused auth rules
CI / full-gate (push) Successful in 3m1s
|
2026-10-31 01:24:34 +01:00 |
|
lilleman
|
1dfc6aac3a
|
Set Cache-Control on every rendered page, and record the CSRF token's unbinding
CI / full-gate (push) Successful in 3m23s
|
2026-10-30 21:28:14 +01:00 |
|
lilleman
|
53ab35bfb8
|
A page is a document: drop the sticky chrome and the bounded-frame opt-out
|
2026-09-10 16:16:35 +02:00 |
|
lilleman
|
cb4f8d6e98
|
Name the table's local after the class it applies, and let a broken chain show itself
|
2026-09-10 16:16:35 +02:00 |
|
lilleman
|
696da397e7
|
Split the fill seam where ownership splits: the shell bounds, the page fills
|
2026-09-10 16:16:35 +02:00 |
|
lilleman
|
7f2c0cc2c2
|
Name the bounded frame: fill:true on the shell, and the contract minor that ships it
|
2026-09-10 16:16:35 +02:00 |
|
lilleman
|
54956fe627
|
Release the gate change as 0.3.0, and start a changelog
CI / full-gate (push) Successful in 2m50s
Mirror / github-mirror (push) Successful in 4s
Release / retag-image (push) Successful in 22s
Release / publish-overview (push) Successful in 3s
|
2026-09-03 17:58:09 +02:00 |
|
lilleman
|
9912dd64f1
|
Offer a signed-in visitor the page they can reach, and say where the assignee join belongs
CI / full-gate (push) Successful in 2m53s
Mirror / github-mirror (push) Successful in 4s
|
2026-09-03 17:22:49 +02: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
|
390ac5f112
|
Say where the one-gate rule applies, and record why allows stays open
|
2026-09-02 14:03:06 +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
|
5d1e8f2309
|
Say the gate rule once, and key the example's shifts by the identifier it scopes on
CI / full-gate (push) Successful in 3m4s
|
2026-09-02 08:50:44 +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
|
a17ed96b54
|
Say gate where the code now gates, in the two contracts that still said permission
CI / full-gate (push) Failing after 2m38s
|
2026-09-02 08:17:10 +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 |
|
lilleman
|
c702a347dc
|
Offer a long filter list as a popover multi-select instead of a wall of chips
CI / full-gate (push) Successful in 2m51s
|
2026-08-25 09:10:23 +02:00 |
|
lilleman
|
fa7cad1d65
|
Declare plugin settings in the manifest, resolve them from the environment
|
2026-08-23 13:17:03 +02:00 |
|
lilleman
|
a3d9a3df5f
|
Keep the release at v0.1.0 — nothing consumed the old contract
|
2026-08-22 11:21:42 +02:00 |
|
lilleman
|
d545445ea8
|
Release this as v0.2.0, and give the Hub overview its own job, token and template
|
2026-08-20 23:32:10 +02:00 |
|
lilleman
|
c35ba3fb4e
|
Make the plugin contract version the release version, and publish the Docker Hub overview from CI
|
2026-08-20 23:16:11 +02:00 |
|
lilleman
|
c7013be2f0
|
Give a plugin a Postgres database of its own
|
2026-08-18 23:12:13 +02:00 |
|
lilleman
|
af974cfa36
|
Let a plugin carry its own package.json and npm dependencies
|
2026-08-17 22:23:53 +02:00 |
|
lilleman
|
8a5d2dfd6c
|
Make the two persona references self-contained now that the section is gone
CI / full-gate (push) Successful in 2m40s
|
2026-08-05 23:42:58 +02:00 |
|