diff --git a/.gitea/workflows/managed-validation.yml b/.gitea/workflows/managed-validation.yml
index d712bba..6e919ce 100644
--- a/.gitea/workflows/managed-validation.yml
+++ b/.gitea/workflows/managed-validation.yml
@@ -27,7 +27,7 @@ jobs:
full:
name: full
if: ${{ gitea.event_name != 'pull_request' || gitea.event.pull_request.head.repo.full_name == gitea.repository }}
- runs-on: ubuntu-latest
+ runs-on: linux-validation
timeout-minutes: 30
env:
CI: 'true'
diff --git a/PUBLIC-SOURCE-MANIFEST.sha256 b/PUBLIC-SOURCE-MANIFEST.sha256
index f127d33..4dca3c3 100644
--- a/PUBLIC-SOURCE-MANIFEST.sha256
+++ b/PUBLIC-SOURCE-MANIFEST.sha256
@@ -2,7 +2,7 @@
a6b98ea7cb6d61ed8d430dd0dffa46c87012b5cf859d4ce7207898954951fdcd .editorconfig
ef3faff39e79e3a723704ff3bb33f8cd90a6d5e8c72fabd356c0780ae1118a0a .env.example
8d75fbed0329d55480242ea79c61cbdd3da312c700298bfba9572b81ec325cc6 .gitattributes
-d01d94473aa423e96a01929f52d4f0bc599652a61c409702c38ba9a0ef8271af .gitea/workflows/managed-validation.yml
+01512984e9e8dd5274755a96276157ed031b961e61efdf8e8dae9c1258db934c .gitea/workflows/managed-validation.yml
6cd8a37d7e2a507e90e0e60136fe5ec795d5cfd92e318c460252608fa88bbad5 .github/workflows/ci.yml
1cf3186d21c2bafb868945943e28b8448c7edd6469209bd3d8d5c00b4db93ef7 .gitignore
24c8656eb63e90e2e33dacc1cb1dc681680a569f72af6754d17fd9286f664106 .gitleaks.toml
@@ -25,7 +25,7 @@ f038f971c5f2866e7710486f15a236d05770eea76ba36d6bfcf8739ed6fd3331 FINAL_HANDOFF.
638b400d8d3aed60e672875df8a4a2ed749203a7f1c3fc336a295da2824edebd LICENSE
b796ec54788d1295f85223e5917a49ca04eff8c0b9fadc9e4d6b43945c650bb6 PACK_MANIFEST.sha256
ca5ad9d9127b9e1fec448fbed19a400c399463b952b6c03945e91746e355d672 PACK_REVIEW.md
-bef5294849929a41730e8be0cab843d94ae495a4c9a4ca0813bf1a1e1dfe66a1 README.md
+67c16eb3da6ffc94685d5f104ec708854dc65fce1d9f6be439f62bf0d337f825 README.md
03fa606416d402f5430483dd1447f701bb9923b443d5b02e85c5855c10aa0125 SECURITY.md
a40b0c5b5560eca6248ee900f7e004cfd5f1849ab8659fc5ca8d8acbf6c43f89 START_HERE_CODEX.md
56d37c6cfe1c24eb4050bdac449821bedf9d13263948e1f833b5b0e0bf787114 adr/ADR-001-git-first-content.md
@@ -35,9 +35,9 @@ f9ab72425ec1dd03053420e99095dd658719600267a353e4de7841e1bbf85259 adr/ADR-002-mo
5ce4e17096792a3e877b2e47332bdea7abdc1433bfc37a274775ac8a8344227c adr/ADR-005-integration-secrets.md
b628d2c48be924b25572dac7252e248d6fec3128ff0137c967b32294ce0669df adr/ADR-006-better-auth-adapter-boundary.md
3dc46224d399a7a09e833b3284b18597504d9c967615b933d781dfb3b4ea675c api/openapi.yaml
-7b550dda9686c16f36a17bf9051d5dbf31e98555b30d114ac49fc49a1e712651 apps/web/next-env.d.ts
+1862ac4bbbc5192d4bf562161df66ea547ed3e67173100656ab606ae9797db2b apps/web/next-env.d.ts
5cb4cf40fdb110a121ff9a451d845287894237f4be50fccfdf9356704c5c29ee apps/web/next.config.ts
-d5a2f5ae219145744af95ae2781d6c4318e5d3aeb7baf75a21011b10a244a90a apps/web/package.json
+64a0f6bc765aacc4508d40967b897eb5c373efffd37fce6cc78fe4223eec839c apps/web/package.json
3fc8d1c13ad963bbf7da04d59024d38cc2ad14563b36afd71bc8b43c7148dd25 apps/web/postcss.config.mjs
14105408b2deaad0971d252f99af8b9e897a4a4fbbc42642317ac77d97bba65c apps/web/src/app/_authenticated/authenticated-app-layout.tsx
179b1911a82fa2ace7251ba819737fd91104b3d924f0c2b2f75f80d55f7dfc79 apps/web/src/app/_authenticated/authenticated-app-presentation.test.ts
@@ -563,6 +563,8 @@ b46c0f8e29dc5fd2e75105cd6a0ac66c82a0345b0a47d6f0b36534b911bcfe8b docs/ASSET_PRO
6d62a07c756bfec0f8bb677b843dd7f9f7359d854d2e1075c7871abc9bd5a0b5 docs/PUBLICATION_READINESS.md
a36db9d8120714af90ba467645345904f8d187684d20c87f5be52d93e5fa5039 docs/REPOSITORY_SANITATION.md
566c9e1753c9042bd1b08123a341d78b32fc148ef0ed83a428e4410f066dc139 docs/operator-guide.md
+2531c632929e72815f0a8e83a5c4b5211c44a659f799e80063c97c2e4f2aa3c3 docs/screenshots/README.md
+cd363d96fe0649f210506a69de1bc66a6d76a3f706dbfeea76302b656f04a7c2 docs/screenshots/workflow-concept.png
5fdb53b5036751c41bf478eb775731def6d36350fcb405345716c59d5a37b61a eslint.config.mjs
4680aca707c14cf2e0ad2517aa35153eb87cfbb0f8200990b2f6cb601506bad4 evidence/functional-visual-audit-2026-07-28.md
ec505857b3987f5710b828e08585ee142a7bc6b4102574e1868625dc4d25126a evidence/performance-report.json
@@ -637,7 +639,7 @@ e90820c822cc116e7c1014b1aa2b2c72af4297830231bea5947473505cabc348 examples/rende
ce5809aafd05d58952cf273992440fc42ca55dd9c8c8e563f8a31a434a3f07bd examples/run-packs/root-cause-example/TASK.md
85dd6148501e2256b7479dd8711317db2526a84f1779aea70bcb9b20a17ca21a examples/run-packs/root-cause-example/VALIDATION.md
b7aaa535f96a09629525cef0eb219a7af1f7befdb65af3a6687d64e2806a5e3f examples/run-packs/root-cause-example/manifest.json
-3eda0f5796f240f98983966052823f43a6973cf0d7614dd20cd0c8cc19e42ea7 package.json
+4b27cdbdf7e359aee99f7f3cb62069f0193173287a19a1b2bc9913f3a9e1af95 package.json
f27d0f8dbf91b5ff53495dd9c5efa862a6b152caafd1f94d309d93966b75ca90 packages/application/package.json
264938b89693441ea63425a62ab58f894b276c0bf632cdd6918ba334d74c8736 packages/application/src/artifacts/export-generated-run-artifact.test.ts
da4bf25f06898c5319b2b14e0f093d6c97b87a8f2bc1e632a6bec3d6e124b8d5 packages/application/src/artifacts/export-generated-run-artifact.ts
@@ -866,7 +868,7 @@ fcef0f6944a0c822c3c817de0d0c5cc1cddb87e9e89372804f0b27f12194f12f packages/ui/sr
2bbc1d21f92ce062e08bdcb8ad3324bd66c8433e7556a41d1cacdad013d6c6b8 packages/ui/src/status/state-panel.tsx
d308feb27bb9b7ea5ea17fe139fab6b7c24a704fd52b3601e3629be8c8797f90 packages/ui/tsconfig.json
9d715dfbd77f972f821b3557415e410e2b19d1b57917022076b2a8a058784396 playwright.config.ts
-a81f32f49468c131a0c2bba37eb8def9db2307e18cc51701035cf01f1ef4ddc1 pnpm-lock.yaml
+d0528c2875d92cfb4a3d7f61c6cefbc4c16732c92ffd1f0607711f2c1437ea6f pnpm-lock.yaml
253208fa7c1b64372c219b9e19cef15ed70ca93b66a4d5c4c4d2297a5aff8880 pnpm-workspace.yaml
b43fe240547fa9ed6f235155a8c79a777daef73221e982dbe49aea609f9d982d release-evidence.json
37b161d2e975584f6ff2fc1629075dd4b9c85fde08d671e0c2cfea12b719fa82 schemas/condition.schema.json
@@ -880,7 +882,7 @@ d3e430dd1e3b0270d1fbab0f9593d0553081aac979d19d00b610bac782284b37 schemas/releas
2a292fb2ca240150cbb9886459e5d037d5e5923de83b95696fce4137b698a618 schemas/seed-catalog.schema.json
cce328f73430051fea2a2dfa234413a710ebfdf56f986fb4db815776d17140a0 scripts/build_archive.py
4939769f47a869570454e024b9612cf066aa3cc91703c727481c9c9eb94e2cb0 scripts/check-runtime.mjs
-36e02c8debe14def28cfb6128efdf535b2afd6b0027832b677fc2e9d63dbca66 scripts/export-public-source.sh
+10c0fd55e3c832c07e8de235fd2e4b466a644cb7270e1c8b9ddbdb3e094c3cbc scripts/export-public-source.sh
b2a0cfb4282d6ad760d22266faf001514635111d116d0e3523aee40569877e17 scripts/reference_compose.py
380e07bdda99910127aa662702fa533bb338525ac51cdfb7ac5ee2078536371c scripts/release/backup.sh
a371bb696d641b522f4e8976f616ae743ff755aef3b65eb2f1fb51798a6256bb scripts/release/generate-release-evidence.mjs
@@ -923,5 +925,5 @@ db7fc59c2dbeb5a051be474afba8a6f9e3d24f4681f385ac52fa89c3220a8779 turbo.json
81ec67fa4095763b261ddc84391643478cfaa5ba6369c7814c76b8ef2fa9cac0 unraid/devrunbook.xml
324ce6ad4395235354ab2d688ad4a6aacc8fddc0af0eaf5de23a0f82c9da9a0d unraid/docker-compose.unraid.yml
002fc58d644e31245976ed9fa84bce7b64d98dc6a5ed159e3c0dc87150b1faea vitest.config.ts
-db1ecf849eb0cf4a611d4e7696bae5a693705de137514a99e7dee3cca67cf4f1 vitest.integration.config.ts
+36c98dc95b427d78335546bbd87a8ae583a3d68b489ea05c7353e4ebf2a2cb5b vitest.integration.config.ts
be5c006227c3ca6c14350dc9d0f3d63ffd2e86c70ef1c564df5a54e03b53d928 vitest.security.config.ts
diff --git a/README.md b/README.md
index d171391..7914319 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,9 @@
# DevRunbook
+

+From a development request to a reviewable agent task.
+Workflow · Features · Quick start · Architecture
+
DevRunbook is a self-hosted platform for turning development intent into
structured, reusable and verifiable tasks for coding agents such as Codex. It
combines a reviewed playbook, repository context, risk controls and validation
@@ -9,6 +13,23 @@ The platform helps developers stop rewriting the same instructions while
keeping scope, provenance and evidence visible. It does **not** execute
repository commands or write to your Git forge.
+
+
+*Conceptual workflow illustration; this is not a screenshot of the application.*
+
+## How it works
+
+```mermaid
+flowchart LR
+ Intent[Development intent] --> Playbook[Reviewed playbook]
+ Profile[Repository profile] --> Composer[Task composer]
+ Playbook --> Composer
+ Composer --> Review[Compatibility and guardrail review]
+ Review --> Output[Immutable task or verified Run Pack]
+```
+
+Choose a playbook, add a repository profile, describe the task, inspect the generated scope and validation requirements, then export the exact prompt or Run Pack for your coding agent. Simple mode guides common tasks; Expert mode exposes the detailed controls. The application keeps the authoring and review boundary visible before anything is handed to an agent.
+
## What users can do
- Browse and search 28 built-in, versioned development playbooks.
diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts
index 9edff1c..ce4e94a 100644
--- a/apps/web/next-env.d.ts
+++ b/apps/web/next-env.d.ts
@@ -1,6 +1,7 @@
///
///
import "./.next/types/routes.d.ts";
+import "./.next/types/root-params.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/apps/web/package.json b/apps/web/package.json
index 852e49a..c2674a6 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -22,7 +22,7 @@
"@devrunbook/ui": "workspace:*",
"better-auth": "1.6.25",
"lucide-react": "1.27.0",
- "next": "16.2.12",
+ "next": "16.3.3",
"react": "19.2.8",
"react-dom": "19.2.8",
"yaml": "2.9.0",
diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md
new file mode 100644
index 0000000..f46e106
--- /dev/null
+++ b/docs/screenshots/README.md
@@ -0,0 +1,5 @@
+# Image provenance
+
+`workflow-concept.png` is a conceptual illustration generated for the public README. It is not an application screenshot and contains no customer data. Prompt: "A professional dark software architecture illustration with restrained lime highlights: development request, reviewed playbook and repository context, verified task package; no text, people, logos or code."
+
+An application screenshot is not included because the isolated demo instance did not reproduce an initialized product state. The illustration communicates the workflow without depicting an unverified interface state.
diff --git a/docs/screenshots/workflow-concept.png b/docs/screenshots/workflow-concept.png
new file mode 100644
index 0000000..f959da8
Binary files /dev/null and b/docs/screenshots/workflow-concept.png differ
diff --git a/package.json b/package.json
index a321575..1ae4f22 100644
--- a/package.json
+++ b/package.json
@@ -12,11 +12,11 @@
"brace-expansion@>=2.0.0 <2.1.4": "2.1.4",
"brace-expansion@>=5.0.0 <5.0.9": "5.0.9",
"esbuild@0.18.20": "0.25.12",
- "fast-uri@>=3.0.0 <3.1.6": "3.1.6",
+ "fast-uri@>=3.0.0 <3.1.7": "3.1.7",
"js-yaml@>=4.0.0 <4.3.1": "4.3.1",
"nanoid@3.3.16": "3.3.18",
"postcss@8.4.31": "8.5.23",
- "sharp@0.34.5": "0.35.3"
+ "sharp@0.35.3": "0.35.4"
}
},
"scripts": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2ab9f12..d2ef7b2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,11 +9,11 @@ overrides:
brace-expansion@>=2.0.0 <2.1.4: 2.1.4
brace-expansion@>=5.0.0 <5.0.9: 5.0.9
esbuild@0.18.20: 0.25.12
- fast-uri@>=3.0.0 <3.1.6: 3.1.6
+ fast-uri@>=3.0.0 <3.1.7: 3.1.7
js-yaml@>=4.0.0 <4.3.1: 4.3.1
nanoid@3.3.16: 3.3.18
postcss@8.4.31: 8.5.23
- sharp@0.34.5: 0.35.3
+ sharp@0.35.3: 0.35.4
importers:
@@ -93,13 +93,13 @@ importers:
version: link:../../packages/ui
better-auth:
specifier: 1.6.25
- version: 1.6.25(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(kysely@0.29.4)(postgres@3.4.9))(next@16.2.12(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10(@types/node@24.13.3)(vite@8.1.5(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0)))
+ version: 1.6.25(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(kysely@0.29.4)(postgres@3.4.9))(next@16.3.3(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10(@types/node@24.13.3)(vite@8.1.5(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0)))
lucide-react:
specifier: 1.27.0
version: 1.27.0(react@19.2.8)
next:
- specifier: 16.2.12
- version: 16.2.12(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ specifier: 16.3.3
+ version: 16.3.3(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react:
specifier: 19.2.8
version: 19.2.8
@@ -962,160 +962,160 @@ packages:
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
engines: {node: '>=18'}
- '@img/sharp-darwin-arm64@0.35.3':
- resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==}
+ '@img/sharp-darwin-arm64@0.35.4':
+ resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.35.3':
- resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==}
+ '@img/sharp-darwin-x64@0.35.4':
+ resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [darwin]
- '@img/sharp-freebsd-wasm32@0.35.3':
- resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==}
+ '@img/sharp-freebsd-wasm32@0.35.4':
+ resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==}
engines: {node: '>=20.9.0'}
os: [freebsd]
- '@img/sharp-libvips-darwin-arm64@1.3.2':
- resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==}
+ '@img/sharp-libvips-darwin-arm64@1.3.3':
+ resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==}
cpu: [arm64]
os: [darwin]
- '@img/sharp-libvips-darwin-x64@1.3.2':
- resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==}
+ '@img/sharp-libvips-darwin-x64@1.3.3':
+ resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==}
cpu: [x64]
os: [darwin]
- '@img/sharp-libvips-linux-arm64@1.3.2':
- resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==}
+ '@img/sharp-libvips-linux-arm64@1.3.3':
+ resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-arm@1.3.2':
- resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==}
+ '@img/sharp-libvips-linux-arm@1.3.3':
+ resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-ppc64@1.3.2':
- resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==}
+ '@img/sharp-libvips-linux-ppc64@1.3.3':
+ resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-riscv64@1.3.2':
- resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==}
+ '@img/sharp-libvips-linux-riscv64@1.3.3':
+ resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-s390x@1.3.2':
- resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==}
+ '@img/sharp-libvips-linux-s390x@1.3.3':
+ resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-x64@1.3.2':
- resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==}
+ '@img/sharp-libvips-linux-x64@1.3.3':
+ resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linuxmusl-arm64@1.3.2':
- resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==}
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
+ resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-libvips-linuxmusl-x64@1.3.2':
- resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==}
+ '@img/sharp-libvips-linuxmusl-x64@1.3.3':
+ resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-linux-arm64@0.35.3':
- resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==}
+ '@img/sharp-linux-arm64@0.35.4':
+ resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-arm@0.35.3':
- resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==}
+ '@img/sharp-linux-arm@0.35.4':
+ resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==}
engines: {node: '>=20.9.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-ppc64@0.35.3':
- resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==}
+ '@img/sharp-linux-ppc64@0.35.4':
+ resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==}
engines: {node: '>=20.9.0'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-riscv64@0.35.3':
- resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==}
+ '@img/sharp-linux-riscv64@0.35.4':
+ resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==}
engines: {node: '>=20.9.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-s390x@0.35.3':
- resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==}
+ '@img/sharp-linux-s390x@0.35.4':
+ resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==}
engines: {node: '>=20.9.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-x64@0.35.3':
- resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==}
+ '@img/sharp-linux-x64@0.35.4':
+ resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-linuxmusl-arm64@0.35.3':
- resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==}
+ '@img/sharp-linuxmusl-arm64@0.35.4':
+ resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-linuxmusl-x64@0.35.3':
- resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==}
+ '@img/sharp-linuxmusl-x64@0.35.4':
+ resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-wasm32@0.35.3':
- resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==}
+ '@img/sharp-wasm32@0.35.4':
+ resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==}
engines: {node: '>=20.9.0'}
- '@img/sharp-webcontainers-wasm32@0.35.3':
- resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==}
+ '@img/sharp-webcontainers-wasm32@0.35.4':
+ resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==}
engines: {node: '>=20.9.0'}
cpu: [wasm32]
- '@img/sharp-win32-arm64@0.35.3':
- resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==}
+ '@img/sharp-win32-arm64@0.35.4':
+ resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [win32]
- '@img/sharp-win32-ia32@0.35.3':
- resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==}
+ '@img/sharp-win32-ia32@0.35.4':
+ resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==}
engines: {node: ^20.9.0}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.35.3':
- resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==}
+ '@img/sharp-win32-x64@0.35.4':
+ resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [win32]
@@ -1142,60 +1142,60 @@ packages:
'@emnapi/core': ^1.7.1
'@emnapi/runtime': ^1.7.1
- '@next/env@16.2.12':
- resolution: {integrity: sha512-d0Z5Bc13Fa4nR8pFAKx2jay2yhJM16vlfHbTzYnUQAxlNb6B6lmn4hjt69lYNt4kRtyYP6gEM49lPRHNbIyneg==}
+ '@next/env@16.3.3':
+ resolution: {integrity: sha512-U2eYQRwXj+dsqxV79zFqExDdatnNY/ZWc2nsJU1p/OgT7fd3dXwlF6OjYaFQCfMoeTA19PWq+wVmYgimVA+V+g==}
'@next/eslint-plugin-next@16.2.12':
resolution: {integrity: sha512-uF2z/qAK2q7B5/6CpnFcBRX6jOq5iCO+Uqh1UkJhXljX1JwLarLYhhoJadO6dPb6moTprOKewMXheBcbIoSbug==}
- '@next/swc-darwin-arm64@16.2.12':
- resolution: {integrity: sha512-0W1R0teHWJrqKX0FH20IzzIWAOuGtBxPGuObrxy1lE8hQvCFj49KE8a3WUg0D7sq6rn6zkM4c7YGUnhudBS6oA==}
+ '@next/swc-darwin-arm64@16.3.3':
+ resolution: {integrity: sha512-8Hiv32QJPwdV6KYJ8meR9SBA061tQqnIKTJDocvOXlEQqib0xMFpzArosuffFUUc0sslbh7QQ8a3Yey1QV8EIw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@16.2.12':
- resolution: {integrity: sha512-Hy5Ls099+aFUmOLmIgPfLqNi6iCwhL3uQCssz5rWk+5Nkc6TUKCE83DY5BbNylfm3+mfwcSFnLRfrZDJhVxdtw==}
+ '@next/swc-darwin-x64@16.3.3':
+ resolution: {integrity: sha512-A1lgKgwVchRYmSe467zdwhxT9040dd8lH+o65sL5Jet8fjB4kegw/rDyPIpYVRb6jAqwXFOJpjIXJLxQKLiE3A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@16.2.12':
- resolution: {integrity: sha512-+YqU2h1cQkHsGfvjAsrSmst8UIFBibBGm5x3Xgel8NLMiDQtNOM4sM2GOEMvG5YiOBNeN/Ykk8cQC2S0Xrqljg==}
+ '@next/swc-linux-arm64-gnu@16.3.3':
+ resolution: {integrity: sha512-bf0FIssMFueU2dm7vQEWWxk0c8UjKTdW0yzuh0sQsD8pf1+KCLDdaqhYZNMYGmXwEOiHAUzgBKudovIlcvvBjg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-arm64-musl@16.2.12':
- resolution: {integrity: sha512-0qjhiYBaKAqF63LA1ZWAAnKTzFUguAaZiRa5etMLGGPj/B6uEVjtIZldIzFEp3wHlB0koK6aTzqPtSdplTCjoA==}
+ '@next/swc-linux-arm64-musl@16.3.3':
+ resolution: {integrity: sha512-W7viwCk9JY/cAkdz/A273rd5bb3RgT/IHwR7Upv90tunjBWNtAAhGhoecHh+teRNRSinuAFmE+l7fwZ4YKkrXg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@next/swc-linux-x64-gnu@16.2.12':
- resolution: {integrity: sha512-7A3q26W+h7gnA15uqBToNuDqBEFZZcqh0mW2mn4AJh/G5pdg2RVE3n4slzLEliASZFG3NmsbEzng/x2Sh09mBg==}
+ '@next/swc-linux-x64-gnu@16.3.3':
+ resolution: {integrity: sha512-0W46zw1N3ODpI6n0GeivHvvob1pooozgZVqy65k0mh4/7vr+FbY9+WpHzNVXjHipJf/A3FDheBG19H1s5A25rA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-x64-musl@16.2.12':
- resolution: {integrity: sha512-qSjL/uppm+cbh21s72Ss8gkiOhQ4dExWHNGOWy6eZV7STj5WsKehgxT61beSsOj+YYQuTplL376lOCdMQU5T8w==}
+ '@next/swc-linux-x64-musl@16.3.3':
+ resolution: {integrity: sha512-H4mBso8ZTMBPtdT0PN0pBx2ayTvQuTuvS6qT13d77yVFJXAPCxkyIhLTmdMaGTJs0krQYI/qpzdHijCeihXhbg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@next/swc-win32-arm64-msvc@16.2.12':
- resolution: {integrity: sha512-X6hzsOUJac/e7AWSbn9gQ9nzHld1xWP5iyjHpYWvud8pufB679O1xg4JDyKr8Xd69Jvd+kM2Der6uftiZCmjYA==}
+ '@next/swc-win32-arm64-msvc@16.3.3':
+ resolution: {integrity: sha512-cTMUJpcEGmeywofCUfhR+rSsoE33+rVPnPEYNTNdLNlsOeEg/vktOsKUSTb28vUGqD2jkm4Zaskcwn7OCI6FQg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@16.2.12':
- resolution: {integrity: sha512-F6fakeHuFTLOPt0bslQJdf+xtT+WIP9DVn/m4y1w1mRnVPyh3D/cNvzlRkxM444xfm+IvvYNSOrKiA2CDJ0Uxw==}
+ '@next/swc-win32-x64-msvc@16.3.3':
+ resolution: {integrity: sha512-2VR4cTBzHXaBjnGsuH6GyJjENzQOmHeAh11uY1iUhjm3j5dEUrVJuUj+VL78jaGi/Dik8xS76zEj18BsFhlVZQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -1343,8 +1343,8 @@ packages:
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
- '@swc/helpers@0.5.15':
- resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+ '@swc/helpers@0.5.23':
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
'@tailwindcss/node@4.3.3':
resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
@@ -2381,8 +2381,8 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- fast-uri@3.1.6:
- resolution: {integrity: sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==}
+ fast-uri@3.1.7:
+ resolution: {integrity: sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==}
fastq@1.20.1:
resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
@@ -2949,8 +2949,8 @@ packages:
neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- next@16.2.12:
- resolution: {integrity: sha512-iD59eYQWmbFcEbX7v/acG5DRym9iw1DdaPoD0WTA920naWsE25wShzJW4+UvAs8MK9EC2kBfIH6vtto1H1PHGw==}
+ next@16.3.3:
+ resolution: {integrity: sha512-tuRTx1nQ/yVw83cwJBo9F+njGUgMn3UHQycreWHB8XsStvvAh1AthbI8/4IpKnFaF58F+iSiHejYOlMQ/eq83g==}
engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
@@ -3221,8 +3221,8 @@ packages:
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines: {node: '>= 0.4'}
- sharp@0.35.3:
- resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==}
+ sharp@0.35.4:
+ resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==}
engines: {node: '>=20.9.0'}
peerDependencies:
'@types/node': '*'
@@ -4022,108 +4022,108 @@ snapshots:
'@img/colour@1.1.0':
optional: true
- '@img/sharp-darwin-arm64@0.35.3':
+ '@img/sharp-darwin-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.3.2
+ '@img/sharp-libvips-darwin-arm64': 1.3.3
optional: true
- '@img/sharp-darwin-x64@0.35.3':
+ '@img/sharp-darwin-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.3.2
+ '@img/sharp-libvips-darwin-x64': 1.3.3
optional: true
- '@img/sharp-freebsd-wasm32@0.35.3':
+ '@img/sharp-freebsd-wasm32@0.35.4':
dependencies:
- '@img/sharp-wasm32': 0.35.3
+ '@img/sharp-wasm32': 0.35.4
optional: true
- '@img/sharp-libvips-darwin-arm64@1.3.2':
+ '@img/sharp-libvips-darwin-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-darwin-x64@1.3.2':
+ '@img/sharp-libvips-darwin-x64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-arm64@1.3.2':
+ '@img/sharp-libvips-linux-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-arm@1.3.2':
+ '@img/sharp-libvips-linux-arm@1.3.3':
optional: true
- '@img/sharp-libvips-linux-ppc64@1.3.2':
+ '@img/sharp-libvips-linux-ppc64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-riscv64@1.3.2':
+ '@img/sharp-libvips-linux-riscv64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-s390x@1.3.2':
+ '@img/sharp-libvips-linux-s390x@1.3.3':
optional: true
- '@img/sharp-libvips-linux-x64@1.3.2':
+ '@img/sharp-libvips-linux-x64@1.3.3':
optional: true
- '@img/sharp-libvips-linuxmusl-arm64@1.3.2':
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-linuxmusl-x64@1.3.2':
+ '@img/sharp-libvips-linuxmusl-x64@1.3.3':
optional: true
- '@img/sharp-linux-arm64@0.35.3':
+ '@img/sharp-linux-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.3.2
+ '@img/sharp-libvips-linux-arm64': 1.3.3
optional: true
- '@img/sharp-linux-arm@0.35.3':
+ '@img/sharp-linux-arm@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.3.2
+ '@img/sharp-libvips-linux-arm': 1.3.3
optional: true
- '@img/sharp-linux-ppc64@0.35.3':
+ '@img/sharp-linux-ppc64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-ppc64': 1.3.2
+ '@img/sharp-libvips-linux-ppc64': 1.3.3
optional: true
- '@img/sharp-linux-riscv64@0.35.3':
+ '@img/sharp-linux-riscv64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-riscv64': 1.3.2
+ '@img/sharp-libvips-linux-riscv64': 1.3.3
optional: true
- '@img/sharp-linux-s390x@0.35.3':
+ '@img/sharp-linux-s390x@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.3.2
+ '@img/sharp-libvips-linux-s390x': 1.3.3
optional: true
- '@img/sharp-linux-x64@0.35.3':
+ '@img/sharp-linux-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.3.2
+ '@img/sharp-libvips-linux-x64': 1.3.3
optional: true
- '@img/sharp-linuxmusl-arm64@0.35.3':
+ '@img/sharp-linuxmusl-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.2
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
optional: true
- '@img/sharp-linuxmusl-x64@0.35.3':
+ '@img/sharp-linuxmusl-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.3.2
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.3
optional: true
- '@img/sharp-wasm32@0.35.3':
+ '@img/sharp-wasm32@0.35.4':
dependencies:
'@emnapi/runtime': 1.11.3
optional: true
- '@img/sharp-webcontainers-wasm32@0.35.3':
+ '@img/sharp-webcontainers-wasm32@0.35.4':
dependencies:
- '@img/sharp-wasm32': 0.35.3
+ '@img/sharp-wasm32': 0.35.4
optional: true
- '@img/sharp-win32-arm64@0.35.3':
+ '@img/sharp-win32-arm64@0.35.4':
optional: true
- '@img/sharp-win32-ia32@0.35.3':
+ '@img/sharp-win32-ia32@0.35.4':
optional: true
- '@img/sharp-win32-x64@0.35.3':
+ '@img/sharp-win32-x64@0.35.4':
optional: true
'@jridgewell/gen-mapping@0.3.13':
@@ -4159,34 +4159,34 @@ snapshots:
'@tybys/wasm-util': 0.10.3
optional: true
- '@next/env@16.2.12': {}
+ '@next/env@16.3.3': {}
'@next/eslint-plugin-next@16.2.12':
dependencies:
fast-glob: 3.3.1
- '@next/swc-darwin-arm64@16.2.12':
+ '@next/swc-darwin-arm64@16.3.3':
optional: true
- '@next/swc-darwin-x64@16.2.12':
+ '@next/swc-darwin-x64@16.3.3':
optional: true
- '@next/swc-linux-arm64-gnu@16.2.12':
+ '@next/swc-linux-arm64-gnu@16.3.3':
optional: true
- '@next/swc-linux-arm64-musl@16.2.12':
+ '@next/swc-linux-arm64-musl@16.3.3':
optional: true
- '@next/swc-linux-x64-gnu@16.2.12':
+ '@next/swc-linux-x64-gnu@16.3.3':
optional: true
- '@next/swc-linux-x64-musl@16.2.12':
+ '@next/swc-linux-x64-musl@16.3.3':
optional: true
- '@next/swc-win32-arm64-msvc@16.2.12':
+ '@next/swc-win32-arm64-msvc@16.3.3':
optional: true
- '@next/swc-win32-x64-msvc@16.2.12':
+ '@next/swc-win32-x64-msvc@16.3.3':
optional: true
'@noble/ciphers@2.2.0': {}
@@ -4272,7 +4272,7 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
- '@swc/helpers@0.5.15':
+ '@swc/helpers@0.5.23':
dependencies:
tslib: 2.8.1
@@ -4718,7 +4718,7 @@ snapshots:
ajv@8.20.0:
dependencies:
fast-deep-equal: 3.1.3
- fast-uri: 3.1.6
+ fast-uri: 3.1.7
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
@@ -4821,7 +4821,7 @@ snapshots:
baseline-browser-mapping@2.11.4: {}
- better-auth@1.6.25(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(kysely@0.29.4)(postgres@3.4.9))(next@16.2.12(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10(@types/node@24.13.3)(vite@8.1.5(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))):
+ better-auth@1.6.25(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(kysely@0.29.4)(postgres@3.4.9))(next@16.3.3(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10(@types/node@24.13.3)(vite@8.1.5(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))):
dependencies:
'@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.4)(kysely@0.29.4)(nanostores@1.4.1)
'@better-auth/drizzle-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.4)(kysely@0.29.4)(nanostores@1.4.1))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(kysely@0.29.4)(postgres@3.4.9))
@@ -4843,7 +4843,7 @@ snapshots:
optionalDependencies:
drizzle-kit: 0.31.10
drizzle-orm: 0.45.2(kysely@0.29.4)(postgres@3.4.9)
- next: 16.2.12(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ next: 16.3.3(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
react: 19.2.8
react-dom: 19.2.8(react@19.2.8)
vitest: 4.1.10(@types/node@24.13.3)(vite@8.1.5(@types/node@24.13.3)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))
@@ -5412,7 +5412,7 @@ snapshots:
fast-levenshtein@2.0.6: {}
- fast-uri@3.1.6: {}
+ fast-uri@3.1.7: {}
fastq@1.20.1:
dependencies:
@@ -5911,10 +5911,10 @@ snapshots:
neo-async@2.6.2: {}
- next@16.2.12(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ next@16.3.3(@babel/core@7.29.7)(@playwright/test@1.62.0)(@types/node@24.13.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
dependencies:
- '@next/env': 16.2.12
- '@swc/helpers': 0.5.15
+ '@next/env': 16.3.3
+ '@swc/helpers': 0.5.23
baseline-browser-mapping: 2.11.4
caniuse-lite: 1.0.30001806
postcss: 8.5.23
@@ -5922,16 +5922,16 @@ snapshots:
react-dom: 19.2.8(react@19.2.8)
styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.8)
optionalDependencies:
- '@next/swc-darwin-arm64': 16.2.12
- '@next/swc-darwin-x64': 16.2.12
- '@next/swc-linux-arm64-gnu': 16.2.12
- '@next/swc-linux-arm64-musl': 16.2.12
- '@next/swc-linux-x64-gnu': 16.2.12
- '@next/swc-linux-x64-musl': 16.2.12
- '@next/swc-win32-arm64-msvc': 16.2.12
- '@next/swc-win32-x64-msvc': 16.2.12
+ '@next/swc-darwin-arm64': 16.3.3
+ '@next/swc-darwin-x64': 16.3.3
+ '@next/swc-linux-arm64-gnu': 16.3.3
+ '@next/swc-linux-arm64-musl': 16.3.3
+ '@next/swc-linux-x64-gnu': 16.3.3
+ '@next/swc-linux-x64-musl': 16.3.3
+ '@next/swc-win32-arm64-msvc': 16.3.3
+ '@next/swc-win32-x64-msvc': 16.3.3
'@playwright/test': 1.62.0
- sharp: 0.35.3(@types/node@24.13.3)
+ sharp: 0.35.4(@types/node@24.13.3)
transitivePeerDependencies:
- '@babel/core'
- '@types/node'
@@ -6218,37 +6218,37 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.2
- sharp@0.35.3(@types/node@24.13.3):
+ sharp@0.35.4(@types/node@24.13.3):
dependencies:
'@img/colour': 1.1.0
detect-libc: 2.1.2
semver: 7.8.5
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.35.3
- '@img/sharp-darwin-x64': 0.35.3
- '@img/sharp-freebsd-wasm32': 0.35.3
- '@img/sharp-libvips-darwin-arm64': 1.3.2
- '@img/sharp-libvips-darwin-x64': 1.3.2
- '@img/sharp-libvips-linux-arm': 1.3.2
- '@img/sharp-libvips-linux-arm64': 1.3.2
- '@img/sharp-libvips-linux-ppc64': 1.3.2
- '@img/sharp-libvips-linux-riscv64': 1.3.2
- '@img/sharp-libvips-linux-s390x': 1.3.2
- '@img/sharp-libvips-linux-x64': 1.3.2
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.2
- '@img/sharp-libvips-linuxmusl-x64': 1.3.2
- '@img/sharp-linux-arm': 0.35.3
- '@img/sharp-linux-arm64': 0.35.3
- '@img/sharp-linux-ppc64': 0.35.3
- '@img/sharp-linux-riscv64': 0.35.3
- '@img/sharp-linux-s390x': 0.35.3
- '@img/sharp-linux-x64': 0.35.3
- '@img/sharp-linuxmusl-arm64': 0.35.3
- '@img/sharp-linuxmusl-x64': 0.35.3
- '@img/sharp-webcontainers-wasm32': 0.35.3
- '@img/sharp-win32-arm64': 0.35.3
- '@img/sharp-win32-ia32': 0.35.3
- '@img/sharp-win32-x64': 0.35.3
+ '@img/sharp-darwin-arm64': 0.35.4
+ '@img/sharp-darwin-x64': 0.35.4
+ '@img/sharp-freebsd-wasm32': 0.35.4
+ '@img/sharp-libvips-darwin-arm64': 1.3.3
+ '@img/sharp-libvips-darwin-x64': 1.3.3
+ '@img/sharp-libvips-linux-arm': 1.3.3
+ '@img/sharp-libvips-linux-arm64': 1.3.3
+ '@img/sharp-libvips-linux-ppc64': 1.3.3
+ '@img/sharp-libvips-linux-riscv64': 1.3.3
+ '@img/sharp-libvips-linux-s390x': 1.3.3
+ '@img/sharp-libvips-linux-x64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.3
+ '@img/sharp-linux-arm': 0.35.4
+ '@img/sharp-linux-arm64': 0.35.4
+ '@img/sharp-linux-ppc64': 0.35.4
+ '@img/sharp-linux-riscv64': 0.35.4
+ '@img/sharp-linux-s390x': 0.35.4
+ '@img/sharp-linux-x64': 0.35.4
+ '@img/sharp-linuxmusl-arm64': 0.35.4
+ '@img/sharp-linuxmusl-x64': 0.35.4
+ '@img/sharp-webcontainers-wasm32': 0.35.4
+ '@img/sharp-win32-arm64': 0.35.4
+ '@img/sharp-win32-ia32': 0.35.4
+ '@img/sharp-win32-x64': 0.35.4
'@types/node': 24.13.3
optional: true
diff --git a/scripts/export-public-source.sh b/scripts/export-public-source.sh
old mode 100644
new mode 100755
index 74f0c57..5e2e81d
--- a/scripts/export-public-source.sh
+++ b/scripts/export-public-source.sh
@@ -25,6 +25,7 @@ git -C "$ROOT_DIR" archive --format=tar HEAD | tar -xf - -C "$OUTPUT_DIR"
# Production deployment is private operational policy, not public source.
rm -f "$OUTPUT_DIR/.gitea/workflows/unraid-deploy.yml"
+rm -f "$OUTPUT_DIR/.gitea/workflows/public-source-sync.yml"
for forbidden in \
'.env' '*.pem' '*.key' '*.p12' '*.pfx' '*.db' '*.sqlite' '*.sqlite3' \
diff --git a/scripts/release/backup.sh b/scripts/release/backup.sh
old mode 100644
new mode 100755
diff --git a/scripts/release/restore-empty-target.sh b/scripts/release/restore-empty-target.sh
old mode 100644
new mode 100755
diff --git a/vitest.integration.config.ts b/vitest.integration.config.ts
index 8cbd2a8..a408322 100644
--- a/vitest.integration.config.ts
+++ b/vitest.integration.config.ts
@@ -9,7 +9,10 @@ export default defineConfig({
'tests/integration/**/*.test.ts',
'packages/db/src/**/*.integration.test.ts',
],
- env: { DEVRUNBOOK_DATABASE_INTEGRATION: 'true' },
+ env: {
+ DATABASE_URL: process.env.DATABASE_URL ?? '',
+ DEVRUNBOOK_DATABASE_INTEGRATION: 'true',
+ },
testTimeout: 30_000,
},
})