Commit Graph

57 Commits

Author SHA1 Message Date
lilleman 5a5ce5499d Answer prose round 1: 0 🔴, 3 🟡 (0 misread); comments shortened, README file map lists link-header
CI / full-gate (push) Successful in 3m27s
2026-11-09 01:25:14 +01:00
lilleman cdb5a00705 Give the paging loop, Link-header parser and FieldConfig one home each, rename buildPluginChrome to buildPageChrome, and delete a group from its parents
CI / full-gate (push) Successful in 3m24s
2026-11-09 01:16:55 +01:00
lilleman ebb9757e80 Answer stability round 1: 0 🔴, 4 🟡 (0 misread); read every bootstrap setting once at start, test the 409, Keto-grant and password paths 2026-11-09 01:06:43 +01:00
lilleman 784610eac8 Make bootstrap read its settings through config.ts and call Kratos and Keto through their clients
CI / full-gate (push) Successful in 3m21s
2026-11-09 01:01:44 +01:00
lilleman 8e3270d479 Answer prose round 1: 0 🔴, 5 🟡 (0 misread); cut the duplicated specificity line and reflow
CI / full-gate (push) Successful in 3m22s
2026-11-09 00:14:53 +01:00
lilleman 42644ba0f5 Correct the stale and false comments and docs the comprehension seats flagged
CI / full-gate (push) Successful in 3m40s
2026-11-09 00:11:47 +01:00
lilleman 1fc6033dd5 Give the JsonWebKey alias the kid a JWKS selects a key by
CI / full-gate (push) Successful in 3m51s
Mirror / github-mirror (push) Successful in 3s
2026-11-08 23:26:03 +01:00
lilleman 1304cdae56 Read JsonWebKey from webcrypto, where @types/node 26 exports it 2026-11-08 23:26:03 +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 63c90ea3d6 Answer stability round 1: 0 🔴, 5 🟡 (1 misread); pin the revoke, redirect, 503 and URL-slash paths with tests, and stop calling an undeclared grant dormant 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 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 4239ee12f0 Answer stability round 1: 0 🔴, 3 🟡 (0 misread); gate test pins each source, builtin-route name, exact CSS wording 2026-11-08 14:18:39 +01:00
lilleman a2493edff2 Move test-only tooling to src/test-tooling, split positive, warn on undeclared gated permissions
CI / full-gate (push) Successful in 4m19s
2026-11-08 14:09:20 +01:00
lilleman a3b8632d5c Answer prose round 1: 0 🔴, 1 🟡 (0 misread); the secrets checklist reads in one pass, and four comments shrink or say granted 2026-11-03 21:46:57 +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 8ffbb0b70d Answer stability round 1: 0 🔴, 4 🟡 (0 misread); the driver decides what parses so a multi-host DSN still works, and the nine-key test shrinks to four 2026-10-31 13:56:46 +01:00
lilleman 217a36252e Keep a URL config value out of the boot error that rejects it
CI / full-gate (push) Failing after 1m6s
2026-10-31 13:48:43 +01:00
lilleman 00fe8b0dd2 Answer stability round 1: 0 🔴, 2 🟡 (0 misread); the admin recovery journey gets an E2E, the Kratos comments no longer claim a mailed link 2026-10-31 13:11:21 +01:00
lilleman ccb4d32d39 Answer prose round 1: 0 🔴, 4 🟡 (0 misread); comments say what the forms post where, restating test comments go
CI / full-gate (push) Successful in 3m23s
Mirror / github-mirror (push) Successful in 4s
2026-10-31 12:59:28 +01:00
lilleman 053438f968 Answer product-owner round 1: 0 🔴, 2 🟡 (0 misread); the submit sends a same-origin Referer, Kratos' redirect to this host keeps the chosen locale 2026-10-31 12:59:28 +01:00
lilleman 29d496a02e Answer stability round 1: 0 🔴, 2 🟡 (0 misread); the submit test pins manual redirects and the 5xx boundary, recovery gets its E2E, the Referer is sent 2026-10-31 12:59:28 +01:00
lilleman 03d7be61b3 Keep the code-flow submit within the function limits and list its routes
CI / full-gate (push) Failing after 1m2s
2026-10-31 12:43:16 +01:00
lilleman ead604f49d Accept a verification or recovery code pasted with whitespace around it
CI / full-gate (push) Failing after 16s
2026-10-31 12:41:11 +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 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 943520566e Answer prose round 1: 0 🔴, 5 🟡 (0 misread); shorten the return-target comment, state why /settings is public, drop the test restatements 2026-10-31 09:10:57 +01:00
lilleman 2a4ed30e93 Redirect an anonymous hit on /settings to sign-in with the page as return_to
CI / full-gate (push) Successful in 3m25s
2026-10-31 09:04:55 +01: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 dfb043c3bd Read one gate everywhere, and check a declaration's gate in one pass 2026-09-02 12:32:51 +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
lilleman e0046e5068 Warn rather than refuse on a storage URL mismatch, and scrub the provisioning DSN before discovery 2026-08-19 01:03:40 +02:00
lilleman 5589472e25 Keep role re-assertion within a non-superuser provisioner's rights, and test the second boot 2026-08-19 00:44:49 +02:00
lilleman e66a8a3e89 Isolate the storage CI stack, prove least-privilege provisioning, drop the secret before discovery 2026-08-19 00:20:17 +02:00
lilleman 060535c8ab Confine the Postgres driver to bootstrap, bound plugin connections, and gate the storage DDL 2026-08-19 00:08:35 +02:00
lilleman c7013be2f0 Give a plugin a Postgres database of its own 2026-08-18 23:12:13 +02:00
lilleman 8f3fc7414a Hint the code field's digits-only rule, so the browser's refusal isn't bare 2026-08-18 22:07:12 +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 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 765f349007 Model the read/write split in the UI: read-only views, self-revoke and inherited-grant guards 2026-08-05 15:38:37 +02:00
lilleman 27fee5f8a3 Permission names are <resource>:<action>, replacing the catch-all admin permission 2026-08-05 15:37:39 +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 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 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 f38b5373bd Say user throughout, noting Ory's identity naming in the docs 2026-08-03 17:41:40 +02:00