lilleman
734cdf6892
Name the scope the overview actually needs
CI / full-gate (push) Successful in 2m51s
2026-08-22 14:21:14 +02:00
lilleman
716e0f50a7
Give each version mismatch its own remedy, and stop publishing a moving bare-major tag
CI / full-gate (push) Successful in 2m51s
2026-08-22 12:27:43 +02:00
lilleman
2d62553a10
Refuse a 0.x minor mismatch, and republish the overview from the named release's tree
CI / full-gate (push) Successful in 2m50s
2026-08-22 12:13:41 +02:00
lilleman
d62c7faabd
Scope the sidecar trailer by package so a mixed branch cannot lose it
CI / full-gate (push) Successful in 2m50s
2026-08-22 12:01:35 +02:00
lilleman
41084441ff
Manage the published quick start's pins, and fail closed on every release-tooling edge
CI / full-gate (push) Successful in 2m50s
2026-08-22 11:45:46 +02:00
lilleman
08d4f6271d
Gate the overview's manual trigger on the same contract check as a tag
CI / full-gate (push) Successful in 2m51s
2026-08-22 11:27:35 +02:00
lilleman
5820264885
Trim the prose to what is true now
CI / full-gate (push) Successful in 2m51s
2026-08-22 11:24:16 +02:00
lilleman
b708aab981
Keep the release at v0.1.0 — nothing consumed the old contract
CI / full-gate (push) Successful in 3m2s
2026-08-22 11:21:42 +02:00
lilleman
99e77ebabf
Release this as v0.2.0, and give the Hub overview its own job, token and template
CI / full-gate (push) Successful in 3m8s
2026-08-20 23:32:10 +02:00
lilleman
2148822dad
Make the plugin contract version the release version, and publish the Docker Hub overview from CI
CI / full-gate (push) Successful in 3m8s
2026-08-20 23:16:11 +02:00
lilleman
7f839afb32
Release nothing when no Renovate commit reached the app
CI / full-gate (push) Successful in 2m58s
2026-08-20 23:02:21 +02:00
lilleman
1f61235e88
Scope Release-Bump to the surfaces that ship, and drop the inert package.json versions
CI / full-gate (push) Successful in 3m7s
Mirror / github-mirror (push) Successful in 6s
Release / retag-image (push) Successful in 21s
2026-08-20 22:43:36 +02:00
lilleman
24007b15f3
Rewrap the auto-release paragraph
CI / full-gate (push) Successful in 2m58s
2026-08-20 22:04:23 +02:00
lilleman
3eceee0cf1
Lift the pre-release freeze — releases resume and the plugin contract goes live
CI / full-gate (push) Successful in 2m59s
2026-08-20 22:02:29 +02:00
lilleman
47541ae97b
Warn rather than refuse on a storage URL mismatch, and scrub the provisioning DSN before discovery
CI / full-gate (push) Successful in 2m59s
2026-08-19 01:03:40 +02:00
lilleman
c5c9cce2b6
Keep role re-assertion within a non-superuser provisioner's rights, and test the second boot
CI / full-gate (push) Successful in 2m58s
2026-08-19 00:44:49 +02:00
lilleman
ae8f105360
Confine the Postgres driver to bootstrap, bound plugin connections, and gate the storage DDL
CI / full-gate (push) Failing after 23s
2026-08-19 00:08:35 +02:00
lilleman
bba048e38f
Refuse a throwaway plugin storage secret in bootstrap, before any role is created
CI / full-gate (push) Successful in 2m56s
2026-08-18 23:24:34 +02:00
lilleman
bf638dfb19
Give a plugin a Postgres database of its own
CI / full-gate (push) Successful in 2m58s
2026-08-18 23:12:13 +02:00
lilleman
091011cfe5
Let Renovate reach the example plugins' manifests
2026-08-18 21:55:35 +02:00
lilleman
d55898eb8c
Refuse a stray package.json or node_modules in config/ by name
2026-08-18 21:55:32 +02:00
lilleman
7d1f7750d3
Refuse a node_modules at the plugins/ root, where it outranks the host's
CI / full-gate (push) Successful in 2m43s
2026-08-18 08:14:21 +02:00
lilleman
77343e859a
Fail loud on a null package.json and a stray plugins/package.json
CI / full-gate (push) Successful in 2m42s
2026-08-17 22:50:29 +02:00
lilleman
616040fda6
Refuse a shadowing barrel copy, and record the packaging contract
CI / full-gate (push) Successful in 2m45s
2026-08-17 22:34:56 +02:00
lilleman
fee4fe632b
Let a plugin carry its own package.json and npm dependencies
CI / full-gate (push) Successful in 2m53s
2026-08-17 22:23:53 +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
78f5f72151
Correct the artifacts upgrade runbook and the bootstrap exception's stated reason
CI / full-gate (push) Successful in 2m39s
2026-08-05 22:46:05 +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
ab5c24deb7
Cut the node_modules prose to one home each; drop a stray tracked file
CI / full-gate (push) Successful in 2m38s
2026-08-05 19:52:09 +02:00
lilleman
3d3313c0ee
Document the shadowing risk and the leftover dir; close two holes in the mount guard
CI / full-gate (push) Successful in 2m38s
2026-08-05 19:17:07 +02:00
lilleman
bcf4d7fb1f
Install deps above WORKDIR so no root-owned node_modules lands in the checkout
CI / full-gate (push) Successful in 2m45s
2026-08-05 18:18:49 +02:00
lilleman
2852722873
Record the stale-copy trap as accepted until the apiVersion freeze lifts
CI / full-gate (push) Successful in 2m41s
Mirror / github-mirror (push) Successful in 3s
2026-08-05 18:00:38 +02:00
lilleman
45b16824f1
Point a failed discovery at the stale plugins/ copy, and document upgrading
CI / full-gate (push) Successful in 2m39s
2026-08-05 17:52:43 +02:00
lilleman
edcd9fefc8
Deleting a group revokes the permissions it granted
2026-08-05 15:39:08 +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
29d654c012
Permissions are a fixed list from plugin code; grant them on Users and Groups
2026-08-05 15:38:21 +02:00
lilleman
fb4382be9d
Enforce the permission-name rule at discovery, for every plugin
2026-08-05 15:38:00 +02:00
lilleman
90cbc47607
Seed the demo admin from the mounted plugins, not the image's empty copy
2026-08-05 15:37:39 +02:00
lilleman
27fee5f8a3
Permission names are <resource>:<action>, replacing the catch-all admin permission
2026-08-05 15:37:39 +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
e5bdc15262
Prune deleted tags on the GitHub mirror so it stops advertising dropped versions
CI / full-gate (push) Successful in 2m40s
Mirror / github-mirror (push) Successful in 7s
2026-08-05 10:42:39 +02:00
lilleman
2fb5e695e1
Record the docs-skip and no-release decisions, and blind the guard to comments
CI / full-gate (push) Successful in 2m42s
2026-08-05 10:34:46 +02:00
lilleman
3ebd1fa507
Gate the auto-release tag job behind an AUTO_RELEASE variable
CI / full-gate (push) Successful in 2m41s
2026-08-05 10:15:09 +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
e03c1d1a2f
Let an operator mount plugin catalogs; document the end-user personas
CI / full-gate (push) Successful in 2m37s
2026-08-04 10:31:08 +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