Compare commits

...

23 Commits

Author SHA1 Message Date
renovate-bot 9ba2bd10b5 Update dependency @larvit/log to v2.4.0
CI / full-gate (push) Failing after 24s
Release-Bump: minor
2026-10-19 04:19:12 +00:00
lilleman fb464acf54 Plan publishing every release to Docker Hub, with a short description
CI / full-gate (push) Successful in 3s
Mirror / github-mirror (push) Successful in 4s
2026-10-18 11:37:56 +02:00
renovate-bot 8220b34fd0 Update dependency lucide-static to v1.59.0
CI / full-gate (push) Successful in 4m38s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-18 04:18:36 +00:00
renovate-bot 194557fb49 Update dependency lucide-static to v1.58.0
CI / full-gate (push) Successful in 3m9s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-17 04:18:09 +00:00
renovate-bot 4a0fc2b493 Update axllent/mailpit Docker tag to v1.31.6
CI / full-gate (push) Successful in 4m6s
Mirror / github-mirror (push) Successful in 4s
2026-10-16 04:17:53 +00:00
renovate-bot 946c45663f Update Playwright to v1.64.1
CI / full-gate (push) Successful in 4m48s
Mirror / github-mirror (push) Successful in 3s
2026-10-15 04:19:16 +00:00
renovate-bot 41ab968b20 Update dependency lucide-static to v1.56.0
CI / full-gate (push) Successful in 4m55s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-14 04:18:41 +00:00
renovate-bot ff548a30d2 Update Playwright to v1.64.0
CI / full-gate (push) Successful in 4m4s
Mirror / github-mirror (push) Successful in 3s
2026-10-13 04:18:09 +00:00
renovate-bot f80c6c6426 Update dependency lucide-static to v1.55.0
CI / full-gate (push) Successful in 3m0s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-12 04:18:07 +00:00
renovate-bot 3658797764 Update axllent/mailpit Docker tag to v1.31.5
CI / full-gate (push) Successful in 2m59s
Mirror / github-mirror (push) Successful in 4s
2026-10-11 04:17:52 +00:00
renovate-bot 23f1158211 Update dependency @types/node to v24.19.2
CI / full-gate (push) Successful in 3m12s
Mirror / github-mirror (push) Successful in 4s
2026-10-10 04:18:04 +00:00
renovate-bot bf9302ce8e Update dependency lucide-static to v1.53.0
CI / full-gate (push) Successful in 3m11s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-09 04:18:47 +00:00
renovate-bot 2ed134fc86 Update renovate/renovate Docker tag to v44.145.1
CI / full-gate (push) Successful in 2m59s
Mirror / github-mirror (push) Successful in 4s
2026-10-08 04:18:53 +00:00
renovate-bot e07edeb6ae Update renovate/renovate Docker tag to v44.141.0
CI / full-gate (push) Successful in 3m2s
Mirror / github-mirror (push) Successful in 4s
2026-10-07 04:18:18 +00:00
renovate-bot e9cd7ba2b3 Update dependency lucide-static to v1.52.0
CI / full-gate (push) Successful in 3m10s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-06 04:18:18 +00:00
renovate-bot a49bd4f7b0 Update dependency @types/node to v24.19.1
CI / full-gate (push) Successful in 3m0s
Mirror / github-mirror (push) Successful in 3s
2026-10-05 04:18:14 +00:00
renovate-bot e680552961 Update axllent/mailpit Docker tag to v1.31.4
CI / full-gate (push) Successful in 4m29s
Mirror / github-mirror (push) Successful in 4s
2026-10-04 04:18:27 +00:00
renovate-bot 12977bc296 Update dependency lucide-static to v1.50.0
CI / full-gate (push) Successful in 4m20s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-10-03 04:18:40 +00:00
renovate-bot dac189b124 Update dependency lucide-static to v1.49.0
CI / full-gate (push) Successful in 4m1s
Mirror / github-mirror (push) Successful in 4s
Release-Bump: minor
2026-09-30 04:18:43 +00:00
renovate-bot c9e2f1a9e4 Update renovate/renovate Docker tag to v44.117.2
CI / full-gate (push) Successful in 3m11s
Mirror / github-mirror (push) Successful in 3s
2026-09-29 04:18:14 +00:00
renovate-bot 7a17ec11de Update axllent/mailpit Docker tag to v1.31.3
CI / full-gate (push) Successful in 3m36s
Mirror / github-mirror (push) Successful in 4s
2026-09-28 04:18:22 +00:00
renovate-bot ec1579a039 Update renovate/renovate Docker tag to v44.115.10
CI / full-gate (push) Successful in 3m7s
Mirror / github-mirror (push) Successful in 4s
2026-09-27 04:18:21 +00:00
renovate-bot 153e77174d Update dependency @types/node to v24.19.0
CI / full-gate (push) Successful in 3m36s
Mirror / github-mirror (push) Successful in 5s
2026-09-26 04:18:08 +00:00
9 changed files with 37 additions and 36 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
-e RENOVATE_PLATFORM=gitea \
-e RENOVATE_REPOSITORIES=${{ github.repository }} \
-e RENOVATE_TOKEN \
renovate/renovate:44.111.4
renovate/renovate:44.145.1
# After the renovate job, cut ONE tag covering the renovate-bot commits merged to main since the
# last tag (batch per run). Targets origin/main — the real post-merge tip; the checkout SHA is the
+1 -1
View File
@@ -58,7 +58,7 @@ services:
# Dev mail catcher — Kratos recovery/verification emails land here (web UI on 8025).
# kratos.yml points the courier at smtp://mailpit:1025; prod uses a real SMTP via env.
mailpit:
image: axllent/mailpit:v1.31.2
image: axllent/mailpit:v1.31.6
ports:
- "8025:8025"
restart: unless-stopped
+1 -1
View File
@@ -1,6 +1,6 @@
# Playwright runner — browsers preinstalled, pinned to match @playwright/test in e2e-tests/.
# Built/run via e2e-tests/compose.visual.yml; targets the `web` service over the network.
FROM mcr.microsoft.com/playwright:v1.63.0-noble
FROM mcr.microsoft.com/playwright:v1.64.1-noble
WORKDIR /e2e-tests
+12 -12
View File
@@ -6,17 +6,17 @@
"": {
"name": "plainpages-e2e",
"devDependencies": {
"@playwright/test": "1.63.0"
"@playwright/test": "1.64.1"
}
},
"node_modules/@playwright/test": {
"version": "1.63.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.63.0.tgz",
"integrity": "sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==",
"version": "1.64.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.1.tgz",
"integrity": "sha512-IaYGml/nSOiZWROfPtuIL7neuu9qDOZ3TNvNljUIrhDMxiGTgPjzj/g9p9RxpS2tSepPDRY+UwAaEeiKtUvIAg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.63.0"
"playwright": "1.64.1"
},
"bin": {
"playwright": "cli.js"
@@ -26,13 +26,13 @@
}
},
"node_modules/playwright": {
"version": "1.63.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz",
"integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==",
"version": "1.64.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz",
"integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.63.0"
"playwright-core": "1.64.1"
},
"bin": {
"playwright": "cli.js"
@@ -42,9 +42,9 @@
}
},
"node_modules/playwright-core": {
"version": "1.63.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz",
"integrity": "sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==",
"version": "1.64.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz",
"integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
+1 -1
View File
@@ -7,6 +7,6 @@
"test": "playwright test"
},
"devDependencies": {
"@playwright/test": "1.63.0"
"@playwright/test": "1.64.1"
}
}
+16 -16
View File
@@ -6,14 +6,14 @@
"": {
"name": "plainpages",
"dependencies": {
"@larvit/log": "2.3.0",
"@larvit/log": "2.4.0",
"ejs": "6.0.1",
"lucide-static": "1.48.0",
"lucide-static": "1.59.0",
"postgres": "3.4.9"
},
"devDependencies": {
"@types/ejs": "3.1.5",
"@types/node": "24.13.6",
"@types/node": "24.19.2",
"typescript": "7.0.2"
},
"engines": {
@@ -21,9 +21,9 @@
}
},
"node_modules/@larvit/log": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@larvit/log/-/log-2.3.0.tgz",
"integrity": "sha512-gLRMDWrFnoMGdAr9NXMXRKOUeceU6Qd/CW0c6qDO+DLFT1xWrqO2ubsHyPqPzlZHVUO3w3Bk7kOWo6C2Ykn4ZQ==",
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@larvit/log/-/log-2.4.0.tgz",
"integrity": "sha512-0BA1S0eSzQMOP527Vy2DL9Zb68TiCgyDACr0gDiI2b/1zfY6Axq9XhR/ZJnF9URIAhQwFPYs3W6lh/T9K8vqgQ==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -37,13 +37,13 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "24.13.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz",
"integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==",
"version": "24.19.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.19.2.tgz",
"integrity": "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~7.18.0"
"undici-types": ">=7.24.0 <7.24.7"
}
},
"node_modules/@typescript/typescript-aix-ppc64": {
@@ -399,9 +399,9 @@
}
},
"node_modules/lucide-static": {
"version": "1.48.0",
"resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-1.48.0.tgz",
"integrity": "sha512-ZUGgZ4rzlLfVbhN2Zi37TMrTaSpXAbWx6Y/xZxKSDLPiqxtTK7Mw2M+oBJa0gjV8p3+CWBHh48u+IC9+jKlUjA==",
"version": "1.59.0",
"resolved": "https://registry.npmjs.org/lucide-static/-/lucide-static-1.59.0.tgz",
"integrity": "sha512-MuHZYaXbHgzN2QO6D3OM19bj09A+8GJiFSdXIMlbnLLEGQQ9+NRH2KaCxuivevD3Y23vM74kV17XBifgtqhfEg==",
"license": "ISC"
},
"node_modules/postgres": {
@@ -453,9 +453,9 @@
}
},
"node_modules/undici-types": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"version": "7.24.6",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
"integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
"dev": true,
"license": "MIT"
}
+3 -3
View File
@@ -16,14 +16,14 @@
"test": "node --test \"src/**/*.test.ts\" \"plugins/**/*.test.ts\" \"examples/**/*.test.ts\" \"registry-cleanup/**/*.test.ts\" \"release-tooling/**/*.test.ts\""
},
"dependencies": {
"@larvit/log": "2.3.0",
"@larvit/log": "2.4.0",
"ejs": "6.0.1",
"lucide-static": "1.48.0",
"lucide-static": "1.59.0",
"postgres": "3.4.9"
},
"devDependencies": {
"@types/ejs": "3.1.5",
"@types/node": "24.13.6",
"@types/node": "24.19.2",
"typescript": "7.0.2"
}
}
+1 -1
View File
@@ -131,7 +131,7 @@ services:
# Catches Kratos' recovery/verification emails — UI on http://localhost:8025
mailpit:
image: axllent/mailpit:v1.31.2
image: axllent/mailpit:v1.31.6
ports:
- "8025:8025"
restart: unless-stopped
+1
View File
@@ -2,6 +2,7 @@
## Unfinnished work
- [ ] **Publish every release to Docker Hub, and give the Hub page its short description.** Today Hub's newest tag is 0.4.0 (2026-09-10), while git has v0.4.1–v0.4.12, and the overview still says 0.4.0. No `release.yml` run exists for the tags auto-release pushes as `renovate-bot`, so neither the images nor the overview reach Hub; find out why Gitea doesn't fire `push: tags` for them, fix it, and backfill the missing tags. The short description is empty. fejkdata already did this (`../fejkdata`, commits `51d924a` and `34c8234`), and two parts port directly: a `dockerhub/description.txt`-style one-liner, which here can ride the existing PATCH as its `description` field; and a unit test that the description opens a README sentence and every command the overview shows appears in the README. fejkdata also syncs the page on any push to `main` that changes it, with its own Read/Write/Delete token in an environment only `main` may use, so the image-push token needs no Delete scope. Decide whether that fits here, where `{{VERSION}}` must render a released tag.
- [ ] Rename the plugin "admin" to something less generic, like "auth-admin" or "users-groups-admin".
- [ ] Guard the group paths against self-lockout, or accept them explicitly. The self-revoke guard covers only your own *direct* grants on the Users screen; unticking a permission on a group you belong to, removing yourself from that group, or deleting it can all still strip your own effective access with no warning. Recorded in AGENTS.md as a known gap — the robust fix is a "last effective holder" check, which needs a reverse Keto query.
- [ ] The permission picker has no concurrency baseline, so two operators editing the same user/group silently discard each other's change. Sketch: post the rendered set as a hidden baseline; if it no longer matches Keto, re-render with "this changed while you had the page open" rather than applying.