feat(core,home,helpers,config): refresh style and homegeise strucutres ✨#3486
Merged
PierreBrisorgueil merged 1 commit intopierreb-devkit:masterfrom Jan 10, 2026
Merged
Conversation
PierreBrisorgueil
pushed a commit
that referenced
this pull request
Mar 1, 2026
# [1.4.0](v1.3.1...v1.4.0) (2026-03-01) ### Bug Fixes * apply Copilot feedback from rebrand PR ([6450969](6450969)) * **claude:** add CHECKS_FOUND guard to monitoring.md retry loop ([437fdee](437fdee)) * **claude:** add YAML frontmatter to all skills for proper triggering ([#3512](#3512)) ([05432c0](05432c0)) * **claude:** address pass-2 review feedback - watch guard, $PR placeholder, jq line field ([348c7a3](348c7a3)) * **claude:** address review feedback - stale refs, retry loop, jq pagination, variables ([56fab55](56fab55)) * **datatable:** register lodash as 'lodash' on globalProperties, not '_' ([24b68d2](24b68d2)) * **errors:** align ERRORS.md JSDoc rule with guardrail nuance (non-void + async) ([568f2b3](568f2b3)) * **guardrails:** add backticks to [@param](https://github.com/param) and [@return](https://github.com/return) in ERRORS.md for consistent Markdown rendering ([f92224a](f92224a)) * **guardrails:** apply Copilot feedback — use [@return](https://github.com/return), clarify async rule, sync copilot-instructions ([26cc510](26cc510)) * **home:** featuretabs image 🐛 ([#3498](#3498)) ([67bbde3](67bbde3)) * **jsdoc:** align ERRORS.md wording with guardrail (new or modified functions) ([5db5e65](5db5e65)) * **jsdoc:** fix JSDoc accuracy and remove stray /pr reference ([22f8f48](22f8f48)) * **jsdoc:** fix pageRequest [@returns](https://github.com/returns) description to match actual return value ([ed8bc1d](ed8bc1d)) * **jsdoc:** standardize on [@returns](https://github.com/returns) (canonical JSDoc tag) across docs and src ([1876e49](1876e49)) * **pr-skill:** add git push -f deny pattern and fix bug report placeholder ([8dffffa](8dffffa)) * **pr-skill:** add text language tag to pseudocode fence (MD040) ([77e06ba](77e06ba)) * **pr-skill:** address bot review feedback on pr skill ([8e03358](8e03358)) * **pr-skill:** address Copilot review pass 2 ([57a5941](57a5941)) * **pr-skill:** clarify draft PR scope — bots trigger only after gh pr ready ([a7cbb3c](a7cbb3c)) * **release:** move ci flag to release-it config, add .release-it.json ([2895d7d](2895d7d)) * remove duplicate test script, delete orphaned .release-it.json ([ec7d0ab](ec7d0ab)) * **seo:** address Copilot review feedback on seoInjectPlugin ([ad71ae2](ad71ae2)) * **seo:** address second round of Copilot feedback ([c676a14](c676a14)) * **seo:** make meta tags conditional and harden head injection ([5ac2518](5ac2518)) * **settings:** deny git switch to main/master branches ([03ab597](03ab597)) * **theme:** isDark accepts boolean and string, fix regression for isDark(true) ([8fb05f8](8fb05f8)) * **theme:** isDark accepts only string, light by default, remove boolean legacy ([6599c76](6599c76)) * **theme:** isDark now returns false for 'light', aligns logic with JSDoc ([df69430](df69430)) ### Features * **app,core,config:** header option and design adjustments ✨ ([#3485](#3485)) ([819aa1d](819aa1d)) * **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([2974ff3](2974ff3)) * **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([#3486](#3486)) ([925ad88](925ad88)) * **home,config:** handle overloap of hereo with every component ✨ ([#3488](#3488)) ([c38e2f6](c38e2f6)) * **home:** rework components ✨ ([a452f02](a452f02)) * **pr-skill:** make monitoring loop explicitly autonomous with polling ([b9b8373](b9b8373)) * **seo:** add full SEO support configurable per project ([2bc7796](2bc7796)) * **tooling:** add /pr skill with full PR lifecycle ([d5fefde](d5fefde))
PierreBrisorgueil
added a commit
that referenced
this pull request
Mar 9, 2026
* build(deps-dev): bump eslint-plugin-vue from 10.6.2 to 10.8.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.6.2 to 10.8.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.6.2...v10.8.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-vue
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump @unhead/vue from 2.0.19 to 2.1.4
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.0.19 to 2.1.4.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.4/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump prettier from 3.7.4 to 3.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/cli from 20.2.0 to 20.4.1
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.2.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump video.js from 8.23.4 to 8.23.7
Bumps [video.js](https://github.com/videojs/video.js) from 8.23.4 to 8.23.7.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v8.23.4...v8.23.7)
---
updated-dependencies:
- dependency-name: video.js
dependency-version: 8.23.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* ci: add Codecov coverage upload step
Upload coverage reports to Codecov after test:coverage runs.
Only runs on Node 22.x to avoid duplicate uploads from the matrix.
* ci: use lts/* and node instead of hardcoded versions
Replace pinned [24.x, 22.x] with ['lts/*', 'node'] to automatically
track the active LTS and latest Node.js releases.
* Update CI.yml
* ci(dependabot): align with Node stack auto-merge workflow
Replace ahmadnassri/action-dependabot-auto-merge with the same pattern
used in the Node stack: dependabot/fetch-metadata + approve + auto-merge.
Changes vs Node stack:
- Same workflow structure (approve then auto-merge for patch/minor)
- dependabot.yml: remove obsolete version-specific ignore entries
- dependabot.yml: add semver-major ignore for eslint/@eslint/js (Vue-specific,
eslint-plugin-vue requires ^8 || ^9)
Supersedes #3529.
* build(deps): bump @fortawesome/fontawesome-free from 7.1.0 to 7.2.0 (#3532)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/7.1.0...7.2.0)
---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
dependency-version: 7.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @vitejs/plugin-vue from 6.0.3 to 6.0.4 (#3531)
Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.4/packages/plugin-vue)
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
dependency-version: 6.0.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.23 to 10.4.24 (#3535)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.23 to 10.4.24.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.23...10.4.24)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.24
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump vue-eslint-parser from 10.2.0 to 10.4.0 (#3536)
Bumps [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) from 10.2.0 to 10.4.0.
- [Release notes](https://github.com/vuejs/vue-eslint-parser/releases)
- [Commits](https://github.com/vuejs/vue-eslint-parser/compare/v10.2.0...v10.4.0)
---
updated-dependencies:
- dependency-name: vue-eslint-parser
dependency-version: 10.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump semantic-release from 25.0.2 to 25.0.3 (#3525)
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 25.0.2 to 25.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v25.0.2...v25.0.3)
---
updated-dependencies:
- dependency-name: semantic-release
dependency-version: 25.0.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.331.0 to 1.347.2
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.331.0 to 1.347.2.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.331.0...posthog-js@1.347.2)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.347.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3524)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.0.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.1 to 17.0.2
Bumps [marked](https://github.com/markedjs/marked) from 17.0.1 to 17.0.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.1...v17.0.2)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump vue-router from 4.6.3 to 5.0.2
Bumps [vue-router](https://github.com/vuejs/router) from 4.6.3 to 5.0.2.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v4.6.3...v5.0.2)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump happy-dom from 20.6.1 to 20.6.2 (#3537)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.1 to 20.6.2.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.347.2 to 1.350.0 (#3538)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.347.2 to 1.350.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.347.2...posthog-js@1.350.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.350.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.2 to 17.0.3 (#3539)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.2...v17.0.3)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci: align CI with Node stack — single LTS, no matrix
Replace the node version matrix [22.x, 24.x] with a single lts/* node,
matching the Node stack CI. Remove the matrix condition on the Codecov step.
* docs: add Codecov coverage badge to README
* build(deps-dev): bump happy-dom from 20.6.2 to 20.6.3 (#3542)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.2 to 20.6.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.2...v20.6.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.350.0 to 1.351.1 (#3543)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.350.0 to 1.351.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.350.0...posthog-js@1.351.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(coverage): scope coverage to business logic and reach 90%+
Scope coverage.include in vitest.config.js to helpers, services,
middlewares, plugins, stores and app.store/app.vue — excluding
presentational Vue components and router config files.
Add 12 new test files (321 tests total, up from 226):
- src/lib/middlewares/tests/model.spec.js
- src/lib/plugins/tests/{aos,axios.plugin,dayjs,gravatar,images,index,lodash,markdown,posthog,vuetify}.spec.js
- src/modules/app/tests/app.store.spec.js
Improve existing tests:
- core.store.spec.js: add branch coverage for refreshNav() (unauthenticated,
matching roles, non-matching roles, display:false, logged-in with no roles)
- users.store.spec.js: add whitelist test verifying _id/updated/created
are never sent to the API by updateUser
Result: 96.59% statements / 96.62% lines on scoped perimeter
* chore(ai-config): align Claude, Copilot and Codex setup
CLAUDE.md:
- Rename WeAreOpenSource -> Devkit throughout
- Remove fake plugin install section (non-existent paths)
- Remove non-existent /dev, /config, /docker skill references
- Add Preflight section (ERRORS.md contract)
- Add Always-on guardrails section
- Add Definition of done section
- Align merge workflow remote name (vue-stack -> devkit-vue)
ERRORS.md:
- Reformat as structured AI error log with rules and date-stamped entries
- Convert free-form note to canonical entry format
AGENTS.md:
- Remove sections duplicated from CLAUDE.md (commands, guardrails,
modularity, naming, definition of done)
- Keep only Codex-specific content: mission, preflight, prompt routing,
review output convention
.github/copilot-instructions.md:
- Add Preflight section (ERRORS.md contract)
- Add Available prompts section referencing .github/prompts/
.github/prompts/*.prompt.md:
- Rewrite all 5 prompts as self-contained playbooks
- Remove "Source of truth: .claude/skills/..." indirection
- Each prompt now includes full steps, guardrails, and conventions
.claude/settings.local.json:
- Remove session artefacts (PRRT_* PR review IDs, bare do/done patterns)
- Keep only legitimate operational permission overrides
* refactor(prompts): make prompts thin pointers to Claude skills
Skills are the single source of truth for procedures.
Prompts are entry points for Codex/Copilot that reference the skill file
directly — no content duplication, one place to maintain.
* chore: remove empty WIKI.md (in construction, outdated WAOS links)
* chore(vscode): add extensions and settings for Copilot, expand README AI setup section
* chore(ai-config): address Copilot review comments (json support, PR template, CLAUDE note)
* build(deps): bump posthog-js from 1.351.1 to 1.351.4 (#3546)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.1 to 1.351.4.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.1...posthog-js@1.351.4)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.1 to 20.4.2 (#3547)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue-router from 5.0.2 to 5.0.3 (#3548)
Bumps [vue-router](https://github.com/vuejs/router) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v5.0.2...v5.0.3)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.11.8 to 3.12.0 (#3549)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.11.8 to 3.12.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v3.12.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3550)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs(readme): clarify AI tools require client install, align with Node stack wording
* fix(datatable): register lodash as 'lodash' on globalProperties, not '_'
'_' is reserved by Vue 3's template compiler — accessing it in templates
resolves to the internal context, not the lodash instance, causing
TypeError: Cannot read properties of undefined (reading 'get') when
the users list loads.
Fix: globalProperties._ -> globalProperties.lodash, template stays
lodash.get(...).
Adds core.datatable.component.spec.js as regression guard.
* test(datatable): fix regression comment wording and prevent setInterval leaks with fake timers
* chore(scripts): align npm scripts and docs with Node stack
- Add `start` alias for `dev` (cross-stack consistency)
- Fix `test:unit` to run one-shot (`vitest run`) instead of watch mode
- Add explicit `test:watch` alias
- Add `release:auto` for CI semantic release (already documented in README)
- Document `check:migration` in CLAUDE.md
- Update README, CLAUDE.md, copilot-instructions to reflect all scripts
* chore(tooling): replace weareopensource adapter with cz-git, standard-version with release-it
- Replace dead @weareopensource/conventional-changelog (last publish 2020) with cz-git
- Add release-it for manual releases, align release:auto on semantic-release
- Fix commitlint.config.js: module.exports -> export default (ESM)
- Fix package.json meta: name/author/repository/repositoryUrl weareopensource -> pierreb-devkit
- Add ci: false to semantic-release config
* chore(deps): update package-lock.json after tooling change
* fix(release): move ci flag to release-it config, add .release-it.json
- Remove ci:false from semantic-release section (not a valid option there)
- Add .release-it.json with ci:false, commit message format, no npm publish
* chore(tooling): remove release-it, keep only semantic-release for CI
release:auto (semantic-release) covers all release needs via CI.
Remove release-it dep, .release-it.json, and manual release script.
* fix: remove duplicate test script, delete orphaned .release-it.json
* docs(guardrails): enforce JSDoc on every new or modified function
* fix(guardrails): apply Copilot feedback — use @return, clarify async rule, sync copilot-instructions
- Use @return (no trailing s) to match codebase convention (CLAUDE.md, ERRORS.md)
- Clarify when @return is required: non-void returns + always for async functions
- Add JSDoc guardrail to .github/copilot-instructions.md to keep both AI instruction files in sync
* fix(guardrails): add backticks to @param and @return in ERRORS.md for consistent Markdown rendering
* fix(jsdoc): standardize on @returns (canonical JSDoc tag) across docs and src
- Migrate @return → @returns in src/lib/helpers/theme.js, tools.js, middlewares/model.js
- Update CLAUDE.md, copilot-instructions.md and ERRORS.md to use @returns
- Ensures full consistency with JSDoc standard and Node stack convention
* fix(jsdoc): fix JSDoc accuracy and remove stray /pr reference
- theme.js: add param names to isDark and style, document both args
- tools.js: fix releasesNumber param name and Array return type
- tools.js: fix serverItemsLength @returns to number
- model.js: fix description (null only) and improve @param/@returns
- CLAUDE.md, copilot-instructions.md: remove /pr row (wrong PR)
* fix(jsdoc): fix pageRequest @returns description to match actual return value
* fix(theme): isDark now returns false for 'light', aligns logic with JSDoc
* fix(theme): isDark accepts boolean and string, fix regression for isDark(true)
* fix(jsdoc): align ERRORS.md wording with guardrail (new or modified functions)
* fix(theme): isDark accepts only string, light by default, remove boolean legacy
* chore(errors): never patch code to pass a test, refactor if needed
* fix(errors): align ERRORS.md JSDoc rule with guardrail nuance (non-void + async)
* feat(tooling): add /pr skill with full PR lifecycle
- Add .claude/skills/pr/SKILL.md: branch workflow, commit on demand,
draft PR, issue linking, monitor loop with CI wait + grace period,
conflict resolution, actionable vs informational comment distinction
- Add .claude/skills/pr/references/monitoring.md: gh API / GraphQL
commands for replying to and resolving review threads
- Add .github/prompts/pr.prompt.md for Copilot/Codex routing
- Migrate issue templates from .md to YAML forms with labels,
severity/effort dropdowns, and acceptance criteria
- Improve pull_request_template.md: add Related issues field,
remove empty table row, clarify Optional section
- Update settings.json: add gh CLI and git branch/push/rebase
commands to allow list, replace git push * deny with force-only deny
- Register /pr in CLAUDE.md, AGENTS.md, README.md,
copilot-instructions.md
* fix(pr-skill): clarify draft PR scope — bots trigger only after gh pr ready
* fix(pr-skill): address bot review feedback on pr skill
- Use git switch instead of git checkout (safer, no accidental worktree)
- Restrict push patterns to HEAD only (no accidental branch push)
- Add git rebase origin/master and origin/HEAD to settings allow list
- Change gh issue create --body to --web (YAML templates need browser)
- Use origin/HEAD instead of hardcoded origin/main for rebase/conflicts
- Clarify draft PR note: CI runs immediately, review bots wait for ready
- Fix PR template instruction: follow template for optional sections
- Add variable setup note to monitoring.md
- Fix chore→Chore label mapping (was lowercase)
* feat(pr-skill): make monitoring loop explicitly autonomous with polling
- Add pseudocode loop procedure (CI → sleep 180 → read → fix → push → repeat)
- Clarify golden rules: commits within the loop are implicitly authorized
- Add explicit sleep 180 grace period between polling rounds
- Include push step in fix batch (step 6c)
- Update skill description to mention autonomous polling
* fix(pr-skill): address Copilot review pass 2
- Add sleep * to settings.json allowlist (required for autonomous polling)
- Add git push --force * and git push -f * to deny list (close force-push loopholes)
- Add 10-iteration safety limit to monitoring loop stop condition
* fix(pr-skill): add text language tag to pseudocode fence (MD040)
* fix(pr-skill): add git push -f deny pattern and fix bug report placeholder
- Add exact `git push -f` deny rule (without args) to close force-push loophole
- Change bug_report.yml Steps to reproduce from `value` to `placeholder` so
required validation enforces real user content
* fix(settings): deny git switch to main/master branches
Add explicit deny patterns for `git switch main` and `git switch master`
to enforce the "never work directly on default branch" guardrail at the
tooling level.
* build(deps): bump posthog-js from 1.351.4 to 1.352.0 (#3560)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.4 to 1.352.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.4...posthog-js@1.352.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.352.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.6.3 to 20.7.0 (#3561)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.3 to 20.7.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.3...v20.7.0)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(security): block direct git push to master/main (#3565)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(security): block direct git push to master/main branches
Add deny patterns to prevent Claude Code from pushing directly to
master or main, enforcing the PR-only workflow for protected branches.
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer (#3562)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(claude): rename pr skill to pull-request and fix automation gaps
- Rename .claude/skills/pr/ → .claude/skills/pull-request/ with shorter
description so the skill loads reliably in system-reminder
- Fix monitor loop: push before reply/resolve, CI retry fallback, thread ID source
- Add preliminary review pass after gh pr ready (CodeRabbit and ready-triggered bots)
- Add 10-iteration safety limit clarification (preliminary pass not counted)
- Add guardrail in CLAUDE.md to always invoke /pull-request when shipping work
- Update feature/SKILL.md to reference /pull-request
Closes #3566
* fix(claude): address review feedback - stale refs, retry loop, jq pagination, variables
* fix(claude): address pass-2 review feedback - watch guard, $PR placeholder, jq line field
* fix(claude): add CHECKS_FOUND guard to monitoring.md retry loop
* build(deps): bump posthog-js from 1.352.0 to 1.353.0 (#3569)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.352.0 to 1.353.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.352.0...posthog-js@1.353.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.12.0 to 4.0.0 (#3570)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: condense AI instruction files, remove duplication
* docs(ai): add conflict caution to README stack merge section
Caution was lost when CLAUDE.md stack merge workflow was replaced by a
pointer to README. Adding it back directly in README as the source of truth.
Closes review feedback on #3571
* fix(pull-request skill): reply and resolve all threads including non-actionable
Informational/false-positive threads must be explicitly replied to and
resolved before the stop condition is met — not silently skipped.
- Loop procedure: add step 6 for non-actionable open threads (reply, resolve)
- Stop condition: zero open threads (not just zero actionable)
* fix(pull-request skill): address review feedback — clarity and consistency
- Terminology: 'open threads' → 'unresolved threads' throughout loop procedure
- Step 6: add 'all' to match step 5 explicitness (reply all, resolve all)
- Informational section: reformat as bullet list, clarify review threads vs PR-level comments
* build(deps): bump unhead from 2.1.4 to 2.1.6 (#3574)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue from 3.5.28 to 3.5.29 (#3575)
Bumps [vue](https://github.com/vuejs/core) from 3.5.28 to 3.5.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.28...v3.5.29)
---
updated-dependencies:
- dependency-name: vue
dependency-version: 3.5.29
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.4 to 2.1.6 (#3576)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.353.0 to 1.353.1 (#3577)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.0 to 1.353.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.0...posthog-js@1.353.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(pull-request skill): add consecutive_zero guard and re-check pending review checks
- Loop procedure: add consecutive_zero counter (X=2) — stop only after
2 consecutive passes with zero unresolved threads, catching slow bots
- Step 4: re-check gh pr checks before reading threads — if any check
still pending, loop back to grace period (generic, bot-agnostic)
- Stop condition (6f): updated to reflect double-pass requirement
* build(deps): bump posthog-js from 1.353.1 to 1.354.3 (#3578)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.1 to 1.354.3.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.1...posthog-js@1.354.3)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.354.3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.6 to 2.1.8 (#3580)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.8/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.24 to 10.4.27 (#3581)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.24 to 10.4.27.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.27
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump rollup from 4.53.3 to 4.59.0 (#3582)
Bumps [rollup](https://github.com/rollup/rollup) from 4.53.3 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.3...v4.59.0)
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.8 to 2.1.9 (#3583)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.8 to 2.1.9 (#3584)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.354.3 to 1.356.0 (#3585)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.354.3 to 1.356.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.354.3...posthog-js@1.356.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @tryghost/content-api from 1.12.2 to 1.12.5 (#3586)
Bumps [@tryghost/content-api](https://github.com/TryGhost/SDK/tree/HEAD/packages/content-api) from 1.12.2 to 1.12.5.
- [Commits](https://github.com/TryGhost/SDK/commits/@tryghost/content-api@1.12.5/packages/content-api)
---
updated-dependencies:
- dependency-name: "@tryghost/content-api"
dependency-version: 1.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(home): hero vertical centering, overlap prop, and Vuetify 4 typography migration
- Fix v-row missing fill-height in hero and statistics causing align=center no-op
- Fix hero content offset: padding-top 65px on v-container to account for navbar overlap
- Add overlap prop to hero component (mirrors overlapStyle pattern from other home sections)
- Migrate VMarkdown plugin from span to div to fix invalid HTML block-in-inline nesting
- Move Vuetify typography classes to native elements above VMarkdown (d-inline pattern)
- Migrate all Vuetify 3 typography classes to Vuetify 4 MD3 across 11 files:
text-h1-h6 -> text-display/headline-*, text-body-1/2 -> text-body-large/medium,
text-subtitle-1/2 -> text-title-large/medium, text-caption -> text-label-small
Closes #3587
* fix(home): address CodeRabbit review feedback
- Add DOMPurify sanitization to VMarkdown to prevent XSS (marked does not sanitize by default)
- Add inline prop to VMarkdown: uses marked.parseInline() + <span> for valid HTML in h2/p contexts
- Switch hero VMarkdown usages to inline prop instead of d-inline class
- Add JSDoc to containerStyle() computed with @returns documentation
- Update markdown.spec.js: mock DOMPurify, cover inline mode and parseInline fallback
* docs(markdown): add JSDoc headers to test mock factories and helper function
* chore(release): 1.4.0
# [1.4.0](https://github.com/pierreb-devkit/Vue/compare/v1.3.1...v1.4.0) (2026-03-01)
### Bug Fixes
* apply Copilot feedback from rebrand PR ([6450969](https://github.com/pierreb-devkit/Vue/commit/6450969fa3de7383ceb58cdfd49fdc9980a2a63f))
* **claude:** add CHECKS_FOUND guard to monitoring.md retry loop ([437fdee](https://github.com/pierreb-devkit/Vue/commit/437fdeef8d2752184fada1f6346212e341b2ed28))
* **claude:** add YAML frontmatter to all skills for proper triggering ([#3512](https://github.com/pierreb-devkit/Vue/issues/3512)) ([05432c0](https://github.com/pierreb-devkit/Vue/commit/05432c0b654902601982fac55ed2a2412397af9c))
* **claude:** address pass-2 review feedback - watch guard, $PR placeholder, jq line field ([348c7a3](https://github.com/pierreb-devkit/Vue/commit/348c7a3f20687a611a47f6810e3fcd4b9184bcff))
* **claude:** address review feedback - stale refs, retry loop, jq pagination, variables ([56fab55](https://github.com/pierreb-devkit/Vue/commit/56fab5535d5049ba35e4e9bfff41d506ca7883c3))
* **datatable:** register lodash as 'lodash' on globalProperties, not '_' ([24b68d2](https://github.com/pierreb-devkit/Vue/commit/24b68d2d860b93181317413db60cd4766ed83588))
* **errors:** align ERRORS.md JSDoc rule with guardrail nuance (non-void + async) ([568f2b3](https://github.com/pierreb-devkit/Vue/commit/568f2b3cb8430bb029297ad44df0d01fde3a28ec))
* **guardrails:** add backticks to [@param](https://github.com/param) and [@return](https://github.com/return) in ERRORS.md for consistent Markdown rendering ([f92224a](https://github.com/pierreb-devkit/Vue/commit/f92224a786a9c70be8fd25a17131bcdbb56ae42c))
* **guardrails:** apply Copilot feedback — use [@return](https://github.com/return), clarify async rule, sync copilot-instructions ([26cc510](https://github.com/pierreb-devkit/Vue/commit/26cc510bebf458d8c4f2adb26e82fc059e98dbfb))
* **home:** featuretabs image 🐛 ([#3498](https://github.com/pierreb-devkit/Vue/issues/3498)) ([67bbde3](https://github.com/pierreb-devkit/Vue/commit/67bbde34b5b96ec7853004440f679b751e9437eb))
* **jsdoc:** align ERRORS.md wording with guardrail (new or modified functions) ([5db5e65](https://github.com/pierreb-devkit/Vue/commit/5db5e656cec3fd96e8859b70c446dfcf4ecc4b8b))
* **jsdoc:** fix JSDoc accuracy and remove stray /pr reference ([22f8f48](https://github.com/pierreb-devkit/Vue/commit/22f8f483fb1627758591e33d42837a5a2cef64bf))
* **jsdoc:** fix pageRequest [@returns](https://github.com/returns) description to match actual return value ([ed8bc1d](https://github.com/pierreb-devkit/Vue/commit/ed8bc1d3cc5e02c36041a0add07b92286df9f6e7))
* **jsdoc:** standardize on [@returns](https://github.com/returns) (canonical JSDoc tag) across docs and src ([1876e49](https://github.com/pierreb-devkit/Vue/commit/1876e498a416bdab09a9c8ede43df992921dac60))
* **pr-skill:** add git push -f deny pattern and fix bug report placeholder ([8dffffa](https://github.com/pierreb-devkit/Vue/commit/8dffffa10e5435dc54e67250a568b2dda75e5640))
* **pr-skill:** add text language tag to pseudocode fence (MD040) ([77e06ba](https://github.com/pierreb-devkit/Vue/commit/77e06badb13b1d5f2d49cfb418ae2c31a70950a8))
* **pr-skill:** address bot review feedback on pr skill ([8e03358](https://github.com/pierreb-devkit/Vue/commit/8e03358dd8d6eaf1dc3c9d79f199a7b089118b5f))
* **pr-skill:** address Copilot review pass 2 ([57a5941](https://github.com/pierreb-devkit/Vue/commit/57a5941c2e40736966edabb1f515562ef241c6a6))
* **pr-skill:** clarify draft PR scope — bots trigger only after gh pr ready ([a7cbb3c](https://github.com/pierreb-devkit/Vue/commit/a7cbb3c26b508d5571dd85ef0f0f809ee31f7b63))
* **release:** move ci flag to release-it config, add .release-it.json ([2895d7d](https://github.com/pierreb-devkit/Vue/commit/2895d7d8df3e7297f5f169a43ac9a35c3a7a639b))
* remove duplicate test script, delete orphaned .release-it.json ([ec7d0ab](https://github.com/pierreb-devkit/Vue/commit/ec7d0ab67a4bbfeca847eae996c31cdcb3eceb21))
* **seo:** address Copilot review feedback on seoInjectPlugin ([ad71ae2](https://github.com/pierreb-devkit/Vue/commit/ad71ae250e7c4871df6492d9fe55b89907ab42b3))
* **seo:** address second round of Copilot feedback ([c676a14](https://github.com/pierreb-devkit/Vue/commit/c676a14661b1f3ce9bcdde80f5b3cb615bf94508))
* **seo:** make meta tags conditional and harden head injection ([5ac2518](https://github.com/pierreb-devkit/Vue/commit/5ac251828e2e3212d20202f6a603f880a15ac8c3))
* **settings:** deny git switch to main/master branches ([03ab597](https://github.com/pierreb-devkit/Vue/commit/03ab597e70e5f7c0bd82330951ca9ec80543cf73))
* **theme:** isDark accepts boolean and string, fix regression for isDark(true) ([8fb05f8](https://github.com/pierreb-devkit/Vue/commit/8fb05f8b3157406a4e55a1dcc907972ef3228eee))
* **theme:** isDark accepts only string, light by default, remove boolean legacy ([6599c76](https://github.com/pierreb-devkit/Vue/commit/6599c76ffda2cc7eabf5811ca3c02153e4bf67b8))
* **theme:** isDark now returns false for 'light', aligns logic with JSDoc ([df69430](https://github.com/pierreb-devkit/Vue/commit/df694306247f73392c7321ab2bed328ff8800c46))
### Features
* **app,core,config:** header option and design adjustments ✨ ([#3485](https://github.com/pierreb-devkit/Vue/issues/3485)) ([819aa1d](https://github.com/pierreb-devkit/Vue/commit/819aa1d5244e9759700037d6106af59d195850d2))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([2974ff3](https://github.com/pierreb-devkit/Vue/commit/2974ff3a59bac46906985d0d9b9c3388fc755512))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([#3486](https://github.com/pierreb-devkit/Vue/issues/3486)) ([925ad88](https://github.com/pierreb-devkit/Vue/commit/925ad88ce79bb9f1d8dbaf94828cfc2aca62266c))
* **home,config:** handle overloap of hereo with every component ✨ ([#3488](https://github.com/pierreb-devkit/Vue/issues/3488)) ([c38e2f6](https://github.com/pierreb-devkit/Vue/commit/c38e2f673087d39aadc5457e75cd8bf30107561d))
* **home:** rework components ✨ ([a452f02](https://github.com/pierreb-devkit/Vue/commit/a452f0293725a16315825c1176bd067624966cbe))
* **pr-skill:** make monitoring loop explicitly autonomous with polling ([b9b8373](https://github.com/pierreb-devkit/Vue/commit/b9b8373fcef2208ad3d859c4cb82e485b3eb7e15))
* **seo:** add full SEO support configurable per project ([2bc7796](https://github.com/pierreb-devkit/Vue/commit/2bc77965cfe6daab7524130267f6b7e718d8f275))
* **tooling:** add /pr skill with full PR lifecycle ([d5fefde](https://github.com/pierreb-devkit/Vue/commit/d5fefde786f791f805209429381669fef96f16d3))
* build(deps): bump axios from 1.13.5 to 1.13.6 (#3589)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.13.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.356.0 to 1.356.1 (#3590)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.0 to 1.356.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.0...posthog-js@1.356.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump globals from 17.3.0 to 17.4.0 (#3591)
Bumps [globals](https://github.com/sindresorhus/globals) from 17.3.0 to 17.4.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0)
---
updated-dependencies:
- dependency-name: globals
dependency-version: 17.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(auth): fix runtime deprecation warnings and add auth view unit tests
- Replace MD5 with SHA-256 in gravatar plugin (Web Crypto API does not support MD5)
- Replace next() callback style with return-value style in Vue Router guard
- Fix v-snackbar :top/:right deprecated props → location="top right"
- Remove spurious `this` first argument from Pinia store action calls in all views
- Add unit tests for all five auth views (signin, signup, forgot, reset, token)
Closes #3592
* fix(auth): address review feedback from pass 1
- Add JSDoc headers to watch.email and mounted() hooks in gravatar plugin
- Use vi.hoisted() for mock functions in all five auth view test files to prevent
potential TDZ issues under Vitest's vi.mock() hoisting transform
* fix(home): add JSDoc to created() hook in home.team.view
Closes CodeRabbit review feedback: every modified function must have a JSDoc header.
* chore(update-stack): rework skill as 2-phase ISO merge + remove stack-maintainer agent
- Phase 1: ISO merge with explicit --theirs rules for stack modules
- Phase 2: project alignment via MIGRATION.md + tasks reference module
- Remove stack-maintainer agent (guardrails covered by CLAUDE.md + skill)
- Update CLAUDE.md: remove agent reference
* fix(update-stack): address review feedback from pass 1
- Add secure to stack modules list
- Move app.router.js as explicit exception above ISO rule
- Add git add + merge --continue step after conflict resolution
- Full commands in all table rows (no --ours shorthand)
- Fix MIGRATION.md row to include file path
* fix(update-stack): add downstream-only new files rule to conflict table
* fix(update-stack): address review feedback from pass 2
- Replace git add . with git add -u to avoid staging untracked files
* chore(verify,update-stack): read ERRORS.md in verify, simplify ERRORS row in update-stack
* chore(update-stack): remove pattern list from Phase 2, defer to ERRORS.md
* build(deps): bump posthog-js from 1.356.1 to 1.357.1 (#3600)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.1 to 1.357.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.1...posthog-js@1.357.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.357.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.7.0 to 20.8.3 (#3602)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.7.0 to 20.8.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.7.0...v20.8.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.8.3
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.9 to 2.1.10 (#3601)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.9 to 2.1.10 (#3599)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.357.1 to 1.358.0 (#3605)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.357.1 to 1.358.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.357.1...posthog-js@1.358.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.2 to 20.4.3 (#3606)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 4.0.0 to 4.0.1 (#3607)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.1/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3608)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump immutable from 5.1.4 to 5.1.5 (#3609)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 5.1.4 to 5.1.5.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.4...v5.1.5)
---
updated-dependencies:
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.0 to 1.358.1 (#3610)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.0 to 1.358.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.0...posthog-js@1.358.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.3 to 17.0.4 (#3611)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.3 to 17.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.3...v17.0.4)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump dompurify from 3.3.1 to 3.3.2 (#3612)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)
---
updated-dependencies:
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.1 to 1.359.0 (#3613)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.1 to 1.359.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.1...posthog-js@1.359.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.359.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(config): migrate WAOS_VUE_* env prefix to DEVKIT_VUE_*
Rename all environment variable prefixes from WAOS_VUE_ to DEVKIT_VUE_
for consistency with the Node stack which already uses DEVKIT_NODE_.
Updated files:
- scripts/generateConfig.js
- Dockerfile
- .env.example
- hooks/build
- docker-compose.yml
- scripts/deploy-travis.sh
- src/config/defaults/production.js
- README.md
Closes #3614
* fix(config): address review feedback from pass 1
- Rename DEVKIT_VUE_cookie to DEVKIT_VUE_cookie_prefix to match nested config shape
- Fix .env.example: reference src/config/index.js (not .cjs)
- Fix .env.example: use underscore-separated keys (not dots) in examples
- Fix double space typo in generateConfig.js comment
* fix(config): align app_title default between Dockerfile and hooks/build
Both now use 'Devkit-Docker' (hyphenated) consistently.
* fix(core): make datatable generic via fetchAction prop
Replace hardcoded getUsers store call with a fetchAction prop (Function)
that parents provide. This allows any module to use the datatable with
its own store action.
Also replace legacy $store.dispatch (Vuex) in the dispatch method with
a Vue 3 emit-based approach.
Closes #3596
* fix(core): address review feedback from pass 1
- Remove unused request prop
- Fix JSDoc @param types (string, not object) for callStoreAction and fetchUsers
- Add error handling in callStoreAction to prevent stuck loading state
- Make dispatch sync with done callback for proper loading lifecycle
* fix(skill): pull-request skill should ignore stack-level CodeRabbit comments for downstream projects
Add section 6b-bis to classify review comments on downstream projects:
- Stack-level comments (files from upstream) → create issue on stack repo + reply + resolve
- Downstream-only comments → fix locally as usual
Closes #3604
* fix(skill): address review feedback from pass 1
- Add remote setup step before git ls-tree check
- Use heredoc for issue body to avoid shell escaping issues
- Capture issue URL from gh issue create and use in thread reply
* style(home): design tweaks, colorMode option, WAOS cleanup
- Add colorModeStyle helper to force text light/dark per section
- Apply colorMode to all 12 home components + header (incl. submenus)
- Reduce hero height (90/70vh → 85/65vh) and overlap (40/20vh → 35/18vh)
- Push hero content lower (padding-top: 15vh)
- Reduce capabilities tab spacing (padding 16→8px, tab-content gap mt-4→mt-1)
- Header: text logo mode by default (DevKit), forced light colorMode
- Remove statistics parallax variant (blur only)
- Rename Waos* → Devkit* (components, CSS classes, imports)
- Replace all WAOS/WeAreOpenSource refs with DevKit/devkit
- Cookie prefix waos → devkit (config + tests)
- Add 4 colorModeStyle tests
Closes #3618
* fix(home,config): address review feedback from pass 1
* chore(coverage): add vitest thresholds and codecov patch config
* fix(home): pass colorMode to tabs component so forced text color applies to tab items
* fix(home): add JSDoc for tabs colorMode validator and tabStyle method
* refactor(config): split monolithic config into per-module files
Extract module-specific configuration from the single development.js into
dedicated files under each module's config/ directory (home, app, auth).
The generateConfig script now globs module configs and merges them with
global defaults using a layered priority system. Config files are renamed
to config.<env>.js for consistency. Production config no longer imports
development.js directly; instead generateConfig handles the base layer.
* docs(migrations): add config split migration guide for downstream projects
* fix(config): use pathToFileURL for cross-platform dynamic imports
* fix(config): address review — use lodash-es, drop glob dep, add env warning
* chore: trigger CI
* fix(config): remove duplicate vuetify.theme block from app config merge
* fix(config): remove unused imports and fix typo in generateConfig
* feat(update-stack): report upstream issues when verify fails on stack code
Add step 3bis to the update-stack skill so that verify failures
originating from stack module code are reported as GitHub issues on
the upstream repo, ensuring regressions are tracked at the source.
* fix(coverage): exclude bootstrapper files with 0% coverage from collection
Remove plugin/service bootstrappers (index.js, vuetify.js, config.js) and
app.vue from coverage include — these are side-effect-only files with no
testable logic that drag down thresholds in downstream projects.
* fix(update-stack): clarify failure origin criteria in step 3bis
Add guidance on how to distinguish stack code failures from conflict
resolution mistakes, and scope the step 3 description accordingly.
* fix(update-stack): add concrete gh issue create command and resolution guidance
Address review feedback: provide the exact CLI command for creating
upstream issues and clarify that Phase 2 proceeds without blocking.
* feat(header): add float scroll behavior and document all config options
Add a new 'float' scrollBehavior mode for the header that progressively
shrinks the navbar to a centered floating pill on scroll. Add opacity
param to liquidGlassStyle for controllable glass transparency. Document
all config options inline across development config files.
* test(theme): add coverage for liquidGlassStyle opacity parameter
* fix(header): address review feedback from pass 1
- Only apply colorModeStyle for header variant, not dropdown menus
- Add prefers-reduced-motion media query for accessibility
- Expand migration notes to document default changes and rollback values
* fix(lod…
PierreBrisorgueil
added a commit
that referenced
this pull request
Mar 9, 2026
* build(deps-dev): bump eslint-plugin-vue from 10.6.2 to 10.8.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.6.2 to 10.8.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.6.2...v10.8.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-vue
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump @unhead/vue from 2.0.19 to 2.1.4
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.0.19 to 2.1.4.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.4/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump prettier from 3.7.4 to 3.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/cli from 20.2.0 to 20.4.1
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.2.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump video.js from 8.23.4 to 8.23.7
Bumps [video.js](https://github.com/videojs/video.js) from 8.23.4 to 8.23.7.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v8.23.4...v8.23.7)
---
updated-dependencies:
- dependency-name: video.js
dependency-version: 8.23.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* ci: add Codecov coverage upload step
Upload coverage reports to Codecov after test:coverage runs.
Only runs on Node 22.x to avoid duplicate uploads from the matrix.
* ci: use lts/* and node instead of hardcoded versions
Replace pinned [24.x, 22.x] with ['lts/*', 'node'] to automatically
track the active LTS and latest Node.js releases.
* Update CI.yml
* ci(dependabot): align with Node stack auto-merge workflow
Replace ahmadnassri/action-dependabot-auto-merge with the same pattern
used in the Node stack: dependabot/fetch-metadata + approve + auto-merge.
Changes vs Node stack:
- Same workflow structure (approve then auto-merge for patch/minor)
- dependabot.yml: remove obsolete version-specific ignore entries
- dependabot.yml: add semver-major ignore for eslint/@eslint/js (Vue-specific,
eslint-plugin-vue requires ^8 || ^9)
Supersedes #3529.
* build(deps): bump @fortawesome/fontawesome-free from 7.1.0 to 7.2.0 (#3532)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/7.1.0...7.2.0)
---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
dependency-version: 7.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @vitejs/plugin-vue from 6.0.3 to 6.0.4 (#3531)
Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.4/packages/plugin-vue)
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
dependency-version: 6.0.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.23 to 10.4.24 (#3535)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.23 to 10.4.24.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.23...10.4.24)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.24
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump vue-eslint-parser from 10.2.0 to 10.4.0 (#3536)
Bumps [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) from 10.2.0 to 10.4.0.
- [Release notes](https://github.com/vuejs/vue-eslint-parser/releases)
- [Commits](https://github.com/vuejs/vue-eslint-parser/compare/v10.2.0...v10.4.0)
---
updated-dependencies:
- dependency-name: vue-eslint-parser
dependency-version: 10.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump semantic-release from 25.0.2 to 25.0.3 (#3525)
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 25.0.2 to 25.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v25.0.2...v25.0.3)
---
updated-dependencies:
- dependency-name: semantic-release
dependency-version: 25.0.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.331.0 to 1.347.2
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.331.0 to 1.347.2.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.331.0...posthog-js@1.347.2)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.347.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3524)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.0.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.1 to 17.0.2
Bumps [marked](https://github.com/markedjs/marked) from 17.0.1 to 17.0.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.1...v17.0.2)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump vue-router from 4.6.3 to 5.0.2
Bumps [vue-router](https://github.com/vuejs/router) from 4.6.3 to 5.0.2.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v4.6.3...v5.0.2)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump happy-dom from 20.6.1 to 20.6.2 (#3537)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.1 to 20.6.2.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.347.2 to 1.350.0 (#3538)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.347.2 to 1.350.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.347.2...posthog-js@1.350.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.350.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.2 to 17.0.3 (#3539)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.2...v17.0.3)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci: align CI with Node stack — single LTS, no matrix
Replace the node version matrix [22.x, 24.x] with a single lts/* node,
matching the Node stack CI. Remove the matrix condition on the Codecov step.
* docs: add Codecov coverage badge to README
* build(deps-dev): bump happy-dom from 20.6.2 to 20.6.3 (#3542)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.2 to 20.6.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.2...v20.6.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.350.0 to 1.351.1 (#3543)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.350.0 to 1.351.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.350.0...posthog-js@1.351.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(coverage): scope coverage to business logic and reach 90%+
Scope coverage.include in vitest.config.js to helpers, services,
middlewares, plugins, stores and app.store/app.vue — excluding
presentational Vue components and router config files.
Add 12 new test files (321 tests total, up from 226):
- src/lib/middlewares/tests/model.spec.js
- src/lib/plugins/tests/{aos,axios.plugin,dayjs,gravatar,images,index,lodash,markdown,posthog,vuetify}.spec.js
- src/modules/app/tests/app.store.spec.js
Improve existing tests:
- core.store.spec.js: add branch coverage for refreshNav() (unauthenticated,
matching roles, non-matching roles, display:false, logged-in with no roles)
- users.store.spec.js: add whitelist test verifying _id/updated/created
are never sent to the API by updateUser
Result: 96.59% statements / 96.62% lines on scoped perimeter
* chore(ai-config): align Claude, Copilot and Codex setup
CLAUDE.md:
- Rename WeAreOpenSource -> Devkit throughout
- Remove fake plugin install section (non-existent paths)
- Remove non-existent /dev, /config, /docker skill references
- Add Preflight section (ERRORS.md contract)
- Add Always-on guardrails section
- Add Definition of done section
- Align merge workflow remote name (vue-stack -> devkit-vue)
ERRORS.md:
- Reformat as structured AI error log with rules and date-stamped entries
- Convert free-form note to canonical entry format
AGENTS.md:
- Remove sections duplicated from CLAUDE.md (commands, guardrails,
modularity, naming, definition of done)
- Keep only Codex-specific content: mission, preflight, prompt routing,
review output convention
.github/copilot-instructions.md:
- Add Preflight section (ERRORS.md contract)
- Add Available prompts section referencing .github/prompts/
.github/prompts/*.prompt.md:
- Rewrite all 5 prompts as self-contained playbooks
- Remove "Source of truth: .claude/skills/..." indirection
- Each prompt now includes full steps, guardrails, and conventions
.claude/settings.local.json:
- Remove session artefacts (PRRT_* PR review IDs, bare do/done patterns)
- Keep only legitimate operational permission overrides
* refactor(prompts): make prompts thin pointers to Claude skills
Skills are the single source of truth for procedures.
Prompts are entry points for Codex/Copilot that reference the skill file
directly — no content duplication, one place to maintain.
* chore: remove empty WIKI.md (in construction, outdated WAOS links)
* chore(vscode): add extensions and settings for Copilot, expand README AI setup section
* chore(ai-config): address Copilot review comments (json support, PR template, CLAUDE note)
* build(deps): bump posthog-js from 1.351.1 to 1.351.4 (#3546)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.1 to 1.351.4.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.1...posthog-js@1.351.4)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.1 to 20.4.2 (#3547)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue-router from 5.0.2 to 5.0.3 (#3548)
Bumps [vue-router](https://github.com/vuejs/router) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v5.0.2...v5.0.3)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.11.8 to 3.12.0 (#3549)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.11.8 to 3.12.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v3.12.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3550)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs(readme): clarify AI tools require client install, align with Node stack wording
* fix(datatable): register lodash as 'lodash' on globalProperties, not '_'
'_' is reserved by Vue 3's template compiler — accessing it in templates
resolves to the internal context, not the lodash instance, causing
TypeError: Cannot read properties of undefined (reading 'get') when
the users list loads.
Fix: globalProperties._ -> globalProperties.lodash, template stays
lodash.get(...).
Adds core.datatable.component.spec.js as regression guard.
* test(datatable): fix regression comment wording and prevent setInterval leaks with fake timers
* chore(scripts): align npm scripts and docs with Node stack
- Add `start` alias for `dev` (cross-stack consistency)
- Fix `test:unit` to run one-shot (`vitest run`) instead of watch mode
- Add explicit `test:watch` alias
- Add `release:auto` for CI semantic release (already documented in README)
- Document `check:migration` in CLAUDE.md
- Update README, CLAUDE.md, copilot-instructions to reflect all scripts
* chore(tooling): replace weareopensource adapter with cz-git, standard-version with release-it
- Replace dead @weareopensource/conventional-changelog (last publish 2020) with cz-git
- Add release-it for manual releases, align release:auto on semantic-release
- Fix commitlint.config.js: module.exports -> export default (ESM)
- Fix package.json meta: name/author/repository/repositoryUrl weareopensource -> pierreb-devkit
- Add ci: false to semantic-release config
* chore(deps): update package-lock.json after tooling change
* fix(release): move ci flag to release-it config, add .release-it.json
- Remove ci:false from semantic-release section (not a valid option there)
- Add .release-it.json with ci:false, commit message format, no npm publish
* chore(tooling): remove release-it, keep only semantic-release for CI
release:auto (semantic-release) covers all release needs via CI.
Remove release-it dep, .release-it.json, and manual release script.
* fix: remove duplicate test script, delete orphaned .release-it.json
* docs(guardrails): enforce JSDoc on every new or modified function
* fix(guardrails): apply Copilot feedback — use @return, clarify async rule, sync copilot-instructions
- Use @return (no trailing s) to match codebase convention (CLAUDE.md, ERRORS.md)
- Clarify when @return is required: non-void returns + always for async functions
- Add JSDoc guardrail to .github/copilot-instructions.md to keep both AI instruction files in sync
* fix(guardrails): add backticks to @param and @return in ERRORS.md for consistent Markdown rendering
* fix(jsdoc): standardize on @returns (canonical JSDoc tag) across docs and src
- Migrate @return → @returns in src/lib/helpers/theme.js, tools.js, middlewares/model.js
- Update CLAUDE.md, copilot-instructions.md and ERRORS.md to use @returns
- Ensures full consistency with JSDoc standard and Node stack convention
* fix(jsdoc): fix JSDoc accuracy and remove stray /pr reference
- theme.js: add param names to isDark and style, document both args
- tools.js: fix releasesNumber param name and Array return type
- tools.js: fix serverItemsLength @returns to number
- model.js: fix description (null only) and improve @param/@returns
- CLAUDE.md, copilot-instructions.md: remove /pr row (wrong PR)
* fix(jsdoc): fix pageRequest @returns description to match actual return value
* fix(theme): isDark now returns false for 'light', aligns logic with JSDoc
* fix(theme): isDark accepts boolean and string, fix regression for isDark(true)
* fix(jsdoc): align ERRORS.md wording with guardrail (new or modified functions)
* fix(theme): isDark accepts only string, light by default, remove boolean legacy
* chore(errors): never patch code to pass a test, refactor if needed
* fix(errors): align ERRORS.md JSDoc rule with guardrail nuance (non-void + async)
* feat(tooling): add /pr skill with full PR lifecycle
- Add .claude/skills/pr/SKILL.md: branch workflow, commit on demand,
draft PR, issue linking, monitor loop with CI wait + grace period,
conflict resolution, actionable vs informational comment distinction
- Add .claude/skills/pr/references/monitoring.md: gh API / GraphQL
commands for replying to and resolving review threads
- Add .github/prompts/pr.prompt.md for Copilot/Codex routing
- Migrate issue templates from .md to YAML forms with labels,
severity/effort dropdowns, and acceptance criteria
- Improve pull_request_template.md: add Related issues field,
remove empty table row, clarify Optional section
- Update settings.json: add gh CLI and git branch/push/rebase
commands to allow list, replace git push * deny with force-only deny
- Register /pr in CLAUDE.md, AGENTS.md, README.md,
copilot-instructions.md
* fix(pr-skill): clarify draft PR scope — bots trigger only after gh pr ready
* fix(pr-skill): address bot review feedback on pr skill
- Use git switch instead of git checkout (safer, no accidental worktree)
- Restrict push patterns to HEAD only (no accidental branch push)
- Add git rebase origin/master and origin/HEAD to settings allow list
- Change gh issue create --body to --web (YAML templates need browser)
- Use origin/HEAD instead of hardcoded origin/main for rebase/conflicts
- Clarify draft PR note: CI runs immediately, review bots wait for ready
- Fix PR template instruction: follow template for optional sections
- Add variable setup note to monitoring.md
- Fix chore→Chore label mapping (was lowercase)
* feat(pr-skill): make monitoring loop explicitly autonomous with polling
- Add pseudocode loop procedure (CI → sleep 180 → read → fix → push → repeat)
- Clarify golden rules: commits within the loop are implicitly authorized
- Add explicit sleep 180 grace period between polling rounds
- Include push step in fix batch (step 6c)
- Update skill description to mention autonomous polling
* fix(pr-skill): address Copilot review pass 2
- Add sleep * to settings.json allowlist (required for autonomous polling)
- Add git push --force * and git push -f * to deny list (close force-push loopholes)
- Add 10-iteration safety limit to monitoring loop stop condition
* fix(pr-skill): add text language tag to pseudocode fence (MD040)
* fix(pr-skill): add git push -f deny pattern and fix bug report placeholder
- Add exact `git push -f` deny rule (without args) to close force-push loophole
- Change bug_report.yml Steps to reproduce from `value` to `placeholder` so
required validation enforces real user content
* fix(settings): deny git switch to main/master branches
Add explicit deny patterns for `git switch main` and `git switch master`
to enforce the "never work directly on default branch" guardrail at the
tooling level.
* build(deps): bump posthog-js from 1.351.4 to 1.352.0 (#3560)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.4 to 1.352.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.4...posthog-js@1.352.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.352.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.6.3 to 20.7.0 (#3561)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.3 to 20.7.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.3...v20.7.0)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(security): block direct git push to master/main (#3565)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(security): block direct git push to master/main branches
Add deny patterns to prevent Claude Code from pushing directly to
master or main, enforcing the PR-only workflow for protected branches.
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer (#3562)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(claude): rename pr skill to pull-request and fix automation gaps
- Rename .claude/skills/pr/ → .claude/skills/pull-request/ with shorter
description so the skill loads reliably in system-reminder
- Fix monitor loop: push before reply/resolve, CI retry fallback, thread ID source
- Add preliminary review pass after gh pr ready (CodeRabbit and ready-triggered bots)
- Add 10-iteration safety limit clarification (preliminary pass not counted)
- Add guardrail in CLAUDE.md to always invoke /pull-request when shipping work
- Update feature/SKILL.md to reference /pull-request
Closes #3566
* fix(claude): address review feedback - stale refs, retry loop, jq pagination, variables
* fix(claude): address pass-2 review feedback - watch guard, $PR placeholder, jq line field
* fix(claude): add CHECKS_FOUND guard to monitoring.md retry loop
* build(deps): bump posthog-js from 1.352.0 to 1.353.0 (#3569)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.352.0 to 1.353.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.352.0...posthog-js@1.353.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.12.0 to 4.0.0 (#3570)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: condense AI instruction files, remove duplication
* docs(ai): add conflict caution to README stack merge section
Caution was lost when CLAUDE.md stack merge workflow was replaced by a
pointer to README. Adding it back directly in README as the source of truth.
Closes review feedback on #3571
* fix(pull-request skill): reply and resolve all threads including non-actionable
Informational/false-positive threads must be explicitly replied to and
resolved before the stop condition is met — not silently skipped.
- Loop procedure: add step 6 for non-actionable open threads (reply, resolve)
- Stop condition: zero open threads (not just zero actionable)
* fix(pull-request skill): address review feedback — clarity and consistency
- Terminology: 'open threads' → 'unresolved threads' throughout loop procedure
- Step 6: add 'all' to match step 5 explicitness (reply all, resolve all)
- Informational section: reformat as bullet list, clarify review threads vs PR-level comments
* build(deps): bump unhead from 2.1.4 to 2.1.6 (#3574)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue from 3.5.28 to 3.5.29 (#3575)
Bumps [vue](https://github.com/vuejs/core) from 3.5.28 to 3.5.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.28...v3.5.29)
---
updated-dependencies:
- dependency-name: vue
dependency-version: 3.5.29
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.4 to 2.1.6 (#3576)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.353.0 to 1.353.1 (#3577)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.0 to 1.353.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.0...posthog-js@1.353.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(pull-request skill): add consecutive_zero guard and re-check pending review checks
- Loop procedure: add consecutive_zero counter (X=2) — stop only after
2 consecutive passes with zero unresolved threads, catching slow bots
- Step 4: re-check gh pr checks before reading threads — if any check
still pending, loop back to grace period (generic, bot-agnostic)
- Stop condition (6f): updated to reflect double-pass requirement
* build(deps): bump posthog-js from 1.353.1 to 1.354.3 (#3578)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.1 to 1.354.3.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.1...posthog-js@1.354.3)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.354.3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.6 to 2.1.8 (#3580)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.8/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.24 to 10.4.27 (#3581)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.24 to 10.4.27.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.27
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump rollup from 4.53.3 to 4.59.0 (#3582)
Bumps [rollup](https://github.com/rollup/rollup) from 4.53.3 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.3...v4.59.0)
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.8 to 2.1.9 (#3583)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.8 to 2.1.9 (#3584)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.354.3 to 1.356.0 (#3585)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.354.3 to 1.356.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.354.3...posthog-js@1.356.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @tryghost/content-api from 1.12.2 to 1.12.5 (#3586)
Bumps [@tryghost/content-api](https://github.com/TryGhost/SDK/tree/HEAD/packages/content-api) from 1.12.2 to 1.12.5.
- [Commits](https://github.com/TryGhost/SDK/commits/@tryghost/content-api@1.12.5/packages/content-api)
---
updated-dependencies:
- dependency-name: "@tryghost/content-api"
dependency-version: 1.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(home): hero vertical centering, overlap prop, and Vuetify 4 typography migration
- Fix v-row missing fill-height in hero and statistics causing align=center no-op
- Fix hero content offset: padding-top 65px on v-container to account for navbar overlap
- Add overlap prop to hero component (mirrors overlapStyle pattern from other home sections)
- Migrate VMarkdown plugin from span to div to fix invalid HTML block-in-inline nesting
- Move Vuetify typography classes to native elements above VMarkdown (d-inline pattern)
- Migrate all Vuetify 3 typography classes to Vuetify 4 MD3 across 11 files:
text-h1-h6 -> text-display/headline-*, text-body-1/2 -> text-body-large/medium,
text-subtitle-1/2 -> text-title-large/medium, text-caption -> text-label-small
Closes #3587
* fix(home): address CodeRabbit review feedback
- Add DOMPurify sanitization to VMarkdown to prevent XSS (marked does not sanitize by default)
- Add inline prop to VMarkdown: uses marked.parseInline() + <span> for valid HTML in h2/p contexts
- Switch hero VMarkdown usages to inline prop instead of d-inline class
- Add JSDoc to containerStyle() computed with @returns documentation
- Update markdown.spec.js: mock DOMPurify, cover inline mode and parseInline fallback
* docs(markdown): add JSDoc headers to test mock factories and helper function
* chore(release): 1.4.0
# [1.4.0](https://github.com/pierreb-devkit/Vue/compare/v1.3.1...v1.4.0) (2026-03-01)
### Bug Fixes
* apply Copilot feedback from rebrand PR ([6450969](https://github.com/pierreb-devkit/Vue/commit/6450969fa3de7383ceb58cdfd49fdc9980a2a63f))
* **claude:** add CHECKS_FOUND guard to monitoring.md retry loop ([437fdee](https://github.com/pierreb-devkit/Vue/commit/437fdeef8d2752184fada1f6346212e341b2ed28))
* **claude:** add YAML frontmatter to all skills for proper triggering ([#3512](https://github.com/pierreb-devkit/Vue/issues/3512)) ([05432c0](https://github.com/pierreb-devkit/Vue/commit/05432c0b654902601982fac55ed2a2412397af9c))
* **claude:** address pass-2 review feedback - watch guard, $PR placeholder, jq line field ([348c7a3](https://github.com/pierreb-devkit/Vue/commit/348c7a3f20687a611a47f6810e3fcd4b9184bcff))
* **claude:** address review feedback - stale refs, retry loop, jq pagination, variables ([56fab55](https://github.com/pierreb-devkit/Vue/commit/56fab5535d5049ba35e4e9bfff41d506ca7883c3))
* **datatable:** register lodash as 'lodash' on globalProperties, not '_' ([24b68d2](https://github.com/pierreb-devkit/Vue/commit/24b68d2d860b93181317413db60cd4766ed83588))
* **errors:** align ERRORS.md JSDoc rule with guardrail nuance (non-void + async) ([568f2b3](https://github.com/pierreb-devkit/Vue/commit/568f2b3cb8430bb029297ad44df0d01fde3a28ec))
* **guardrails:** add backticks to [@param](https://github.com/param) and [@return](https://github.com/return) in ERRORS.md for consistent Markdown rendering ([f92224a](https://github.com/pierreb-devkit/Vue/commit/f92224a786a9c70be8fd25a17131bcdbb56ae42c))
* **guardrails:** apply Copilot feedback — use [@return](https://github.com/return), clarify async rule, sync copilot-instructions ([26cc510](https://github.com/pierreb-devkit/Vue/commit/26cc510bebf458d8c4f2adb26e82fc059e98dbfb))
* **home:** featuretabs image 🐛 ([#3498](https://github.com/pierreb-devkit/Vue/issues/3498)) ([67bbde3](https://github.com/pierreb-devkit/Vue/commit/67bbde34b5b96ec7853004440f679b751e9437eb))
* **jsdoc:** align ERRORS.md wording with guardrail (new or modified functions) ([5db5e65](https://github.com/pierreb-devkit/Vue/commit/5db5e656cec3fd96e8859b70c446dfcf4ecc4b8b))
* **jsdoc:** fix JSDoc accuracy and remove stray /pr reference ([22f8f48](https://github.com/pierreb-devkit/Vue/commit/22f8f483fb1627758591e33d42837a5a2cef64bf))
* **jsdoc:** fix pageRequest [@returns](https://github.com/returns) description to match actual return value ([ed8bc1d](https://github.com/pierreb-devkit/Vue/commit/ed8bc1d3cc5e02c36041a0add07b92286df9f6e7))
* **jsdoc:** standardize on [@returns](https://github.com/returns) (canonical JSDoc tag) across docs and src ([1876e49](https://github.com/pierreb-devkit/Vue/commit/1876e498a416bdab09a9c8ede43df992921dac60))
* **pr-skill:** add git push -f deny pattern and fix bug report placeholder ([8dffffa](https://github.com/pierreb-devkit/Vue/commit/8dffffa10e5435dc54e67250a568b2dda75e5640))
* **pr-skill:** add text language tag to pseudocode fence (MD040) ([77e06ba](https://github.com/pierreb-devkit/Vue/commit/77e06badb13b1d5f2d49cfb418ae2c31a70950a8))
* **pr-skill:** address bot review feedback on pr skill ([8e03358](https://github.com/pierreb-devkit/Vue/commit/8e03358dd8d6eaf1dc3c9d79f199a7b089118b5f))
* **pr-skill:** address Copilot review pass 2 ([57a5941](https://github.com/pierreb-devkit/Vue/commit/57a5941c2e40736966edabb1f515562ef241c6a6))
* **pr-skill:** clarify draft PR scope — bots trigger only after gh pr ready ([a7cbb3c](https://github.com/pierreb-devkit/Vue/commit/a7cbb3c26b508d5571dd85ef0f0f809ee31f7b63))
* **release:** move ci flag to release-it config, add .release-it.json ([2895d7d](https://github.com/pierreb-devkit/Vue/commit/2895d7d8df3e7297f5f169a43ac9a35c3a7a639b))
* remove duplicate test script, delete orphaned .release-it.json ([ec7d0ab](https://github.com/pierreb-devkit/Vue/commit/ec7d0ab67a4bbfeca847eae996c31cdcb3eceb21))
* **seo:** address Copilot review feedback on seoInjectPlugin ([ad71ae2](https://github.com/pierreb-devkit/Vue/commit/ad71ae250e7c4871df6492d9fe55b89907ab42b3))
* **seo:** address second round of Copilot feedback ([c676a14](https://github.com/pierreb-devkit/Vue/commit/c676a14661b1f3ce9bcdde80f5b3cb615bf94508))
* **seo:** make meta tags conditional and harden head injection ([5ac2518](https://github.com/pierreb-devkit/Vue/commit/5ac251828e2e3212d20202f6a603f880a15ac8c3))
* **settings:** deny git switch to main/master branches ([03ab597](https://github.com/pierreb-devkit/Vue/commit/03ab597e70e5f7c0bd82330951ca9ec80543cf73))
* **theme:** isDark accepts boolean and string, fix regression for isDark(true) ([8fb05f8](https://github.com/pierreb-devkit/Vue/commit/8fb05f8b3157406a4e55a1dcc907972ef3228eee))
* **theme:** isDark accepts only string, light by default, remove boolean legacy ([6599c76](https://github.com/pierreb-devkit/Vue/commit/6599c76ffda2cc7eabf5811ca3c02153e4bf67b8))
* **theme:** isDark now returns false for 'light', aligns logic with JSDoc ([df69430](https://github.com/pierreb-devkit/Vue/commit/df694306247f73392c7321ab2bed328ff8800c46))
### Features
* **app,core,config:** header option and design adjustments ✨ ([#3485](https://github.com/pierreb-devkit/Vue/issues/3485)) ([819aa1d](https://github.com/pierreb-devkit/Vue/commit/819aa1d5244e9759700037d6106af59d195850d2))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([2974ff3](https://github.com/pierreb-devkit/Vue/commit/2974ff3a59bac46906985d0d9b9c3388fc755512))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([#3486](https://github.com/pierreb-devkit/Vue/issues/3486)) ([925ad88](https://github.com/pierreb-devkit/Vue/commit/925ad88ce79bb9f1d8dbaf94828cfc2aca62266c))
* **home,config:** handle overloap of hereo with every component ✨ ([#3488](https://github.com/pierreb-devkit/Vue/issues/3488)) ([c38e2f6](https://github.com/pierreb-devkit/Vue/commit/c38e2f673087d39aadc5457e75cd8bf30107561d))
* **home:** rework components ✨ ([a452f02](https://github.com/pierreb-devkit/Vue/commit/a452f0293725a16315825c1176bd067624966cbe))
* **pr-skill:** make monitoring loop explicitly autonomous with polling ([b9b8373](https://github.com/pierreb-devkit/Vue/commit/b9b8373fcef2208ad3d859c4cb82e485b3eb7e15))
* **seo:** add full SEO support configurable per project ([2bc7796](https://github.com/pierreb-devkit/Vue/commit/2bc77965cfe6daab7524130267f6b7e718d8f275))
* **tooling:** add /pr skill with full PR lifecycle ([d5fefde](https://github.com/pierreb-devkit/Vue/commit/d5fefde786f791f805209429381669fef96f16d3))
* build(deps): bump axios from 1.13.5 to 1.13.6 (#3589)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.13.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.356.0 to 1.356.1 (#3590)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.0 to 1.356.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.0...posthog-js@1.356.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump globals from 17.3.0 to 17.4.0 (#3591)
Bumps [globals](https://github.com/sindresorhus/globals) from 17.3.0 to 17.4.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0)
---
updated-dependencies:
- dependency-name: globals
dependency-version: 17.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(auth): fix runtime deprecation warnings and add auth view unit tests
- Replace MD5 with SHA-256 in gravatar plugin (Web Crypto API does not support MD5)
- Replace next() callback style with return-value style in Vue Router guard
- Fix v-snackbar :top/:right deprecated props → location="top right"
- Remove spurious `this` first argument from Pinia store action calls in all views
- Add unit tests for all five auth views (signin, signup, forgot, reset, token)
Closes #3592
* fix(auth): address review feedback from pass 1
- Add JSDoc headers to watch.email and mounted() hooks in gravatar plugin
- Use vi.hoisted() for mock functions in all five auth view test files to prevent
potential TDZ issues under Vitest's vi.mock() hoisting transform
* fix(home): add JSDoc to created() hook in home.team.view
Closes CodeRabbit review feedback: every modified function must have a JSDoc header.
* chore(update-stack): rework skill as 2-phase ISO merge + remove stack-maintainer agent
- Phase 1: ISO merge with explicit --theirs rules for stack modules
- Phase 2: project alignment via MIGRATION.md + tasks reference module
- Remove stack-maintainer agent (guardrails covered by CLAUDE.md + skill)
- Update CLAUDE.md: remove agent reference
* fix(update-stack): address review feedback from pass 1
- Add secure to stack modules list
- Move app.router.js as explicit exception above ISO rule
- Add git add + merge --continue step after conflict resolution
- Full commands in all table rows (no --ours shorthand)
- Fix MIGRATION.md row to include file path
* fix(update-stack): add downstream-only new files rule to conflict table
* fix(update-stack): address review feedback from pass 2
- Replace git add . with git add -u to avoid staging untracked files
* chore(verify,update-stack): read ERRORS.md in verify, simplify ERRORS row in update-stack
* chore(update-stack): remove pattern list from Phase 2, defer to ERRORS.md
* build(deps): bump posthog-js from 1.356.1 to 1.357.1 (#3600)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.1 to 1.357.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.1...posthog-js@1.357.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.357.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.7.0 to 20.8.3 (#3602)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.7.0 to 20.8.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.7.0...v20.8.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.8.3
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.9 to 2.1.10 (#3601)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.9 to 2.1.10 (#3599)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.357.1 to 1.358.0 (#3605)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.357.1 to 1.358.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.357.1...posthog-js@1.358.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.2 to 20.4.3 (#3606)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 4.0.0 to 4.0.1 (#3607)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.1/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3608)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump immutable from 5.1.4 to 5.1.5 (#3609)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 5.1.4 to 5.1.5.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.4...v5.1.5)
---
updated-dependencies:
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.0 to 1.358.1 (#3610)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.0 to 1.358.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.0...posthog-js@1.358.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.3 to 17.0.4 (#3611)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.3 to 17.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.3...v17.0.4)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump dompurify from 3.3.1 to 3.3.2 (#3612)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)
---
updated-dependencies:
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.1 to 1.359.0 (#3613)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.1 to 1.359.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.1...posthog-js@1.359.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.359.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(config): migrate WAOS_VUE_* env prefix to DEVKIT_VUE_*
Rename all environment variable prefixes from WAOS_VUE_ to DEVKIT_VUE_
for consistency with the Node stack which already uses DEVKIT_NODE_.
Updated files:
- scripts/generateConfig.js
- Dockerfile
- .env.example
- hooks/build
- docker-compose.yml
- scripts/deploy-travis.sh
- src/config/defaults/production.js
- README.md
Closes #3614
* fix(config): address review feedback from pass 1
- Rename DEVKIT_VUE_cookie to DEVKIT_VUE_cookie_prefix to match nested config shape
- Fix .env.example: reference src/config/index.js (not .cjs)
- Fix .env.example: use underscore-separated keys (not dots) in examples
- Fix double space typo in generateConfig.js comment
* fix(config): align app_title default between Dockerfile and hooks/build
Both now use 'Devkit-Docker' (hyphenated) consistently.
* fix(core): make datatable generic via fetchAction prop
Replace hardcoded getUsers store call with a fetchAction prop (Function)
that parents provide. This allows any module to use the datatable with
its own store action.
Also replace legacy $store.dispatch (Vuex) in the dispatch method with
a Vue 3 emit-based approach.
Closes #3596
* fix(core): address review feedback from pass 1
- Remove unused request prop
- Fix JSDoc @param types (string, not object) for callStoreAction and fetchUsers
- Add error handling in callStoreAction to prevent stuck loading state
- Make dispatch sync with done callback for proper loading lifecycle
* fix(skill): pull-request skill should ignore stack-level CodeRabbit comments for downstream projects
Add section 6b-bis to classify review comments on downstream projects:
- Stack-level comments (files from upstream) → create issue on stack repo + reply + resolve
- Downstream-only comments → fix locally as usual
Closes #3604
* fix(skill): address review feedback from pass 1
- Add remote setup step before git ls-tree check
- Use heredoc for issue body to avoid shell escaping issues
- Capture issue URL from gh issue create and use in thread reply
* style(home): design tweaks, colorMode option, WAOS cleanup
- Add colorModeStyle helper to force text light/dark per section
- Apply colorMode to all 12 home components + header (incl. submenus)
- Reduce hero height (90/70vh → 85/65vh) and overlap (40/20vh → 35/18vh)
- Push hero content lower (padding-top: 15vh)
- Reduce capabilities tab spacing (padding 16→8px, tab-content gap mt-4→mt-1)
- Header: text logo mode by default (DevKit), forced light colorMode
- Remove statistics parallax variant (blur only)
- Rename Waos* → Devkit* (components, CSS classes, imports)
- Replace all WAOS/WeAreOpenSource refs with DevKit/devkit
- Cookie prefix waos → devkit (config + tests)
- Add 4 colorModeStyle tests
Closes #3618
* fix(home,config): address review feedback from pass 1
* chore(coverage): add vitest thresholds and codecov patch config
* fix(home): pass colorMode to tabs component so forced text color applies to tab items
* fix(home): add JSDoc for tabs colorMode validator and tabStyle method
* refactor(config): split monolithic config into per-module files
Extract module-specific configuration from the single development.js into
dedicated files under each module's config/ directory (home, app, auth).
The generateConfig script now globs module configs and merges them with
global defaults using a layered priority system. Config files are renamed
to config.<env>.js for consistency. Production config no longer imports
development.js directly; instead generateConfig handles the base layer.
* docs(migrations): add config split migration guide for downstream projects
* fix(config): use pathToFileURL for cross-platform dynamic imports
* fix(config): address review — use lodash-es, drop glob dep, add env warning
* chore: trigger CI
* fix(config): remove duplicate vuetify.theme block from app config merge
* fix(config): remove unused imports and fix typo in generateConfig
* feat(update-stack): report upstream issues when verify fails on stack code
Add step 3bis to the update-stack skill so that verify failures
originating from stack module code are reported as GitHub issues on
the upstream repo, ensuring regressions are tracked at the source.
* fix(coverage): exclude bootstrapper files with 0% coverage from collection
Remove plugin/service bootstrappers (index.js, vuetify.js, config.js) and
app.vue from coverage include — these are side-effect-only files with no
testable logic that drag down thresholds in downstream projects.
* fix(update-stack): clarify failure origin criteria in step 3bis
Add guidance on how to distinguish stack code failures from conflict
resolution mistakes, and scope the step 3 description accordingly.
* fix(update-stack): add concrete gh issue create command and resolution guidance
Address review feedback: provide the exact CLI command for creating
upstream issues and clarify that Phase 2 proceeds without blocking.
* feat(header): add float scroll behavior and document all config options
Add a new 'float' scrollBehavior mode for the header that progressively
shrinks the navbar to a centered floating pill on scroll. Add opacity
param to liquidGlassStyle for controllable glass transparency. Document
all config options inline across development config files.
* test(theme): add coverage for liquidGlassStyle opacity parameter
* fix(header): address review feedback from pass 1
- Only apply colorModeStyle for header variant, not dropdown menus
- Add prefers-reduced-motion media query for accessibility
- Expand migration notes to document default changes and rollback values
* fix(lod…
PierreBrisorgueil
added a commit
that referenced
this pull request
Mar 9, 2026
* build(deps-dev): bump eslint-plugin-vue from 10.6.2 to 10.8.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.6.2 to 10.8.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.6.2...v10.8.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-vue
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump @unhead/vue from 2.0.19 to 2.1.4
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.0.19 to 2.1.4.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.4/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump prettier from 3.7.4 to 3.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/cli from 20.2.0 to 20.4.1
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.2.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump video.js from 8.23.4 to 8.23.7
Bumps [video.js](https://github.com/videojs/video.js) from 8.23.4 to 8.23.7.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v8.23.4...v8.23.7)
---
updated-dependencies:
- dependency-name: video.js
dependency-version: 8.23.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* ci: add Codecov coverage upload step
Upload coverage reports to Codecov after test:coverage runs.
Only runs on Node 22.x to avoid duplicate uploads from the matrix.
* ci: use lts/* and node instead of hardcoded versions
Replace pinned [24.x, 22.x] with ['lts/*', 'node'] to automatically
track the active LTS and latest Node.js releases.
* Update CI.yml
* ci(dependabot): align with Node stack auto-merge workflow
Replace ahmadnassri/action-dependabot-auto-merge with the same pattern
used in the Node stack: dependabot/fetch-metadata + approve + auto-merge.
Changes vs Node stack:
- Same workflow structure (approve then auto-merge for patch/minor)
- dependabot.yml: remove obsolete version-specific ignore entries
- dependabot.yml: add semver-major ignore for eslint/@eslint/js (Vue-specific,
eslint-plugin-vue requires ^8 || ^9)
Supersedes #3529.
* build(deps): bump @fortawesome/fontawesome-free from 7.1.0 to 7.2.0 (#3532)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/7.1.0...7.2.0)
---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
dependency-version: 7.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @vitejs/plugin-vue from 6.0.3 to 6.0.4 (#3531)
Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.4/packages/plugin-vue)
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
dependency-version: 6.0.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.23 to 10.4.24 (#3535)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.23 to 10.4.24.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.23...10.4.24)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.24
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump vue-eslint-parser from 10.2.0 to 10.4.0 (#3536)
Bumps [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) from 10.2.0 to 10.4.0.
- [Release notes](https://github.com/vuejs/vue-eslint-parser/releases)
- [Commits](https://github.com/vuejs/vue-eslint-parser/compare/v10.2.0...v10.4.0)
---
updated-dependencies:
- dependency-name: vue-eslint-parser
dependency-version: 10.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump semantic-release from 25.0.2 to 25.0.3 (#3525)
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 25.0.2 to 25.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v25.0.2...v25.0.3)
---
updated-dependencies:
- dependency-name: semantic-release
dependency-version: 25.0.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.331.0 to 1.347.2
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.331.0 to 1.347.2.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.331.0...posthog-js@1.347.2)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.347.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3524)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.0.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.1 to 17.0.2
Bumps [marked](https://github.com/markedjs/marked) from 17.0.1 to 17.0.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.1...v17.0.2)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump vue-router from 4.6.3 to 5.0.2
Bumps [vue-router](https://github.com/vuejs/router) from 4.6.3 to 5.0.2.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v4.6.3...v5.0.2)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump happy-dom from 20.6.1 to 20.6.2 (#3537)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.1 to 20.6.2.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.347.2 to 1.350.0 (#3538)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.347.2 to 1.350.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.347.2...posthog-js@1.350.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.350.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.2 to 17.0.3 (#3539)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.2...v17.0.3)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci: align CI with Node stack — single LTS, no matrix
Replace the node version matrix [22.x, 24.x] with a single lts/* node,
matching the Node stack CI. Remove the matrix condition on the Codecov step.
* docs: add Codecov coverage badge to README
* build(deps-dev): bump happy-dom from 20.6.2 to 20.6.3 (#3542)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.2 to 20.6.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.2...v20.6.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.350.0 to 1.351.1 (#3543)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.350.0 to 1.351.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.350.0...posthog-js@1.351.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(coverage): scope coverage to business logic and reach 90%+
Scope coverage.include in vitest.config.js to helpers, services,
middlewares, plugins, stores and app.store/app.vue — excluding
presentational Vue components and router config files.
Add 12 new test files (321 tests total, up from 226):
- src/lib/middlewares/tests/model.spec.js
- src/lib/plugins/tests/{aos,axios.plugin,dayjs,gravatar,images,index,lodash,markdown,posthog,vuetify}.spec.js
- src/modules/app/tests/app.store.spec.js
Improve existing tests:
- core.store.spec.js: add branch coverage for refreshNav() (unauthenticated,
matching roles, non-matching roles, display:false, logged-in with no roles)
- users.store.spec.js: add whitelist test verifying _id/updated/created
are never sent to the API by updateUser
Result: 96.59% statements / 96.62% lines on scoped perimeter
* chore(ai-config): align Claude, Copilot and Codex setup
CLAUDE.md:
- Rename WeAreOpenSource -> Devkit throughout
- Remove fake plugin install section (non-existent paths)
- Remove non-existent /dev, /config, /docker skill references
- Add Preflight section (ERRORS.md contract)
- Add Always-on guardrails section
- Add Definition of done section
- Align merge workflow remote name (vue-stack -> devkit-vue)
ERRORS.md:
- Reformat as structured AI error log with rules and date-stamped entries
- Convert free-form note to canonical entry format
AGENTS.md:
- Remove sections duplicated from CLAUDE.md (commands, guardrails,
modularity, naming, definition of done)
- Keep only Codex-specific content: mission, preflight, prompt routing,
review output convention
.github/copilot-instructions.md:
- Add Preflight section (ERRORS.md contract)
- Add Available prompts section referencing .github/prompts/
.github/prompts/*.prompt.md:
- Rewrite all 5 prompts as self-contained playbooks
- Remove "Source of truth: .claude/skills/..." indirection
- Each prompt now includes full steps, guardrails, and conventions
.claude/settings.local.json:
- Remove session artefacts (PRRT_* PR review IDs, bare do/done patterns)
- Keep only legitimate operational permission overrides
* refactor(prompts): make prompts thin pointers to Claude skills
Skills are the single source of truth for procedures.
Prompts are entry points for Codex/Copilot that reference the skill file
directly — no content duplication, one place to maintain.
* chore: remove empty WIKI.md (in construction, outdated WAOS links)
* chore(vscode): add extensions and settings for Copilot, expand README AI setup section
* chore(ai-config): address Copilot review comments (json support, PR template, CLAUDE note)
* build(deps): bump posthog-js from 1.351.1 to 1.351.4 (#3546)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.1 to 1.351.4.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.1...posthog-js@1.351.4)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.1 to 20.4.2 (#3547)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue-router from 5.0.2 to 5.0.3 (#3548)
Bumps [vue-router](https://github.com/vuejs/router) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v5.0.2...v5.0.3)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.11.8 to 3.12.0 (#3549)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.11.8 to 3.12.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v3.12.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3550)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs(readme): clarify AI tools require client install, align with Node stack wording
* fix(datatable): register lodash as 'lodash' on globalProperties, not '_'
'_' is reserved by Vue 3's template compiler — accessing it in templates
resolves to the internal context, not the lodash instance, causing
TypeError: Cannot read properties of undefined (reading 'get') when
the users list loads.
Fix: globalProperties._ -> globalProperties.lodash, template stays
lodash.get(...).
Adds core.datatable.component.spec.js as regression guard.
* test(datatable): fix regression comment wording and prevent setInterval leaks with fake timers
* chore(scripts): align npm scripts and docs with Node stack
- Add `start` alias for `dev` (cross-stack consistency)
- Fix `test:unit` to run one-shot (`vitest run`) instead of watch mode
- Add explicit `test:watch` alias
- Add `release:auto` for CI semantic release (already documented in README)
- Document `check:migration` in CLAUDE.md
- Update README, CLAUDE.md, copilot-instructions to reflect all scripts
* chore(tooling): replace weareopensource adapter with cz-git, standard-version with release-it
- Replace dead @weareopensource/conventional-changelog (last publish 2020) with cz-git
- Add release-it for manual releases, align release:auto on semantic-release
- Fix commitlint.config.js: module.exports -> export default (ESM)
- Fix package.json meta: name/author/repository/repositoryUrl weareopensource -> pierreb-devkit
- Add ci: false to semantic-release config
* chore(deps): update package-lock.json after tooling change
* fix(release): move ci flag to release-it config, add .release-it.json
- Remove ci:false from semantic-release section (not a valid option there)
- Add .release-it.json with ci:false, commit message format, no npm publish
* chore(tooling): remove release-it, keep only semantic-release for CI
release:auto (semantic-release) covers all release needs via CI.
Remove release-it dep, .release-it.json, and manual release script.
* fix: remove duplicate test script, delete orphaned .release-it.json
* docs(guardrails): enforce JSDoc on every new or modified function
* fix(guardrails): apply Copilot feedback — use @return, clarify async rule, sync copilot-instructions
- Use @return (no trailing s) to match codebase convention (CLAUDE.md, ERRORS.md)
- Clarify when @return is required: non-void returns + always for async functions
- Add JSDoc guardrail to .github/copilot-instructions.md to keep both AI instruction files in sync
* fix(guardrails): add backticks to @param and @return in ERRORS.md for consistent Markdown rendering
* fix(jsdoc): standardize on @returns (canonical JSDoc tag) across docs and src
- Migrate @return → @returns in src/lib/helpers/theme.js, tools.js, middlewares/model.js
- Update CLAUDE.md, copilot-instructions.md and ERRORS.md to use @returns
- Ensures full consistency with JSDoc standard and Node stack convention
* fix(jsdoc): fix JSDoc accuracy and remove stray /pr reference
- theme.js: add param names to isDark and style, document both args
- tools.js: fix releasesNumber param name and Array return type
- tools.js: fix serverItemsLength @returns to number
- model.js: fix description (null only) and improve @param/@returns
- CLAUDE.md, copilot-instructions.md: remove /pr row (wrong PR)
* fix(jsdoc): fix pageRequest @returns description to match actual return value
* fix(theme): isDark now returns false for 'light', aligns logic with JSDoc
* fix(theme): isDark accepts boolean and string, fix regression for isDark(true)
* fix(jsdoc): align ERRORS.md wording with guardrail (new or modified functions)
* fix(theme): isDark accepts only string, light by default, remove boolean legacy
* chore(errors): never patch code to pass a test, refactor if needed
* fix(errors): align ERRORS.md JSDoc rule with guardrail nuance (non-void + async)
* feat(tooling): add /pr skill with full PR lifecycle
- Add .claude/skills/pr/SKILL.md: branch workflow, commit on demand,
draft PR, issue linking, monitor loop with CI wait + grace period,
conflict resolution, actionable vs informational comment distinction
- Add .claude/skills/pr/references/monitoring.md: gh API / GraphQL
commands for replying to and resolving review threads
- Add .github/prompts/pr.prompt.md for Copilot/Codex routing
- Migrate issue templates from .md to YAML forms with labels,
severity/effort dropdowns, and acceptance criteria
- Improve pull_request_template.md: add Related issues field,
remove empty table row, clarify Optional section
- Update settings.json: add gh CLI and git branch/push/rebase
commands to allow list, replace git push * deny with force-only deny
- Register /pr in CLAUDE.md, AGENTS.md, README.md,
copilot-instructions.md
* fix(pr-skill): clarify draft PR scope — bots trigger only after gh pr ready
* fix(pr-skill): address bot review feedback on pr skill
- Use git switch instead of git checkout (safer, no accidental worktree)
- Restrict push patterns to HEAD only (no accidental branch push)
- Add git rebase origin/master and origin/HEAD to settings allow list
- Change gh issue create --body to --web (YAML templates need browser)
- Use origin/HEAD instead of hardcoded origin/main for rebase/conflicts
- Clarify draft PR note: CI runs immediately, review bots wait for ready
- Fix PR template instruction: follow template for optional sections
- Add variable setup note to monitoring.md
- Fix chore→Chore label mapping (was lowercase)
* feat(pr-skill): make monitoring loop explicitly autonomous with polling
- Add pseudocode loop procedure (CI → sleep 180 → read → fix → push → repeat)
- Clarify golden rules: commits within the loop are implicitly authorized
- Add explicit sleep 180 grace period between polling rounds
- Include push step in fix batch (step 6c)
- Update skill description to mention autonomous polling
* fix(pr-skill): address Copilot review pass 2
- Add sleep * to settings.json allowlist (required for autonomous polling)
- Add git push --force * and git push -f * to deny list (close force-push loopholes)
- Add 10-iteration safety limit to monitoring loop stop condition
* fix(pr-skill): add text language tag to pseudocode fence (MD040)
* fix(pr-skill): add git push -f deny pattern and fix bug report placeholder
- Add exact `git push -f` deny rule (without args) to close force-push loophole
- Change bug_report.yml Steps to reproduce from `value` to `placeholder` so
required validation enforces real user content
* fix(settings): deny git switch to main/master branches
Add explicit deny patterns for `git switch main` and `git switch master`
to enforce the "never work directly on default branch" guardrail at the
tooling level.
* build(deps): bump posthog-js from 1.351.4 to 1.352.0 (#3560)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.4 to 1.352.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.4...posthog-js@1.352.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.352.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.6.3 to 20.7.0 (#3561)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.3 to 20.7.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.3...v20.7.0)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(security): block direct git push to master/main (#3565)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(security): block direct git push to master/main branches
Add deny patterns to prevent Claude Code from pushing directly to
master or main, enforcing the PR-only workflow for protected branches.
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer (#3562)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(claude): rename pr skill to pull-request and fix automation gaps
- Rename .claude/skills/pr/ → .claude/skills/pull-request/ with shorter
description so the skill loads reliably in system-reminder
- Fix monitor loop: push before reply/resolve, CI retry fallback, thread ID source
- Add preliminary review pass after gh pr ready (CodeRabbit and ready-triggered bots)
- Add 10-iteration safety limit clarification (preliminary pass not counted)
- Add guardrail in CLAUDE.md to always invoke /pull-request when shipping work
- Update feature/SKILL.md to reference /pull-request
Closes #3566
* fix(claude): address review feedback - stale refs, retry loop, jq pagination, variables
* fix(claude): address pass-2 review feedback - watch guard, $PR placeholder, jq line field
* fix(claude): add CHECKS_FOUND guard to monitoring.md retry loop
* build(deps): bump posthog-js from 1.352.0 to 1.353.0 (#3569)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.352.0 to 1.353.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.352.0...posthog-js@1.353.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.12.0 to 4.0.0 (#3570)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: condense AI instruction files, remove duplication
* docs(ai): add conflict caution to README stack merge section
Caution was lost when CLAUDE.md stack merge workflow was replaced by a
pointer to README. Adding it back directly in README as the source of truth.
Closes review feedback on #3571
* fix(pull-request skill): reply and resolve all threads including non-actionable
Informational/false-positive threads must be explicitly replied to and
resolved before the stop condition is met — not silently skipped.
- Loop procedure: add step 6 for non-actionable open threads (reply, resolve)
- Stop condition: zero open threads (not just zero actionable)
* fix(pull-request skill): address review feedback — clarity and consistency
- Terminology: 'open threads' → 'unresolved threads' throughout loop procedure
- Step 6: add 'all' to match step 5 explicitness (reply all, resolve all)
- Informational section: reformat as bullet list, clarify review threads vs PR-level comments
* build(deps): bump unhead from 2.1.4 to 2.1.6 (#3574)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue from 3.5.28 to 3.5.29 (#3575)
Bumps [vue](https://github.com/vuejs/core) from 3.5.28 to 3.5.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.28...v3.5.29)
---
updated-dependencies:
- dependency-name: vue
dependency-version: 3.5.29
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.4 to 2.1.6 (#3576)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.353.0 to 1.353.1 (#3577)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.0 to 1.353.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.0...posthog-js@1.353.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(pull-request skill): add consecutive_zero guard and re-check pending review checks
- Loop procedure: add consecutive_zero counter (X=2) — stop only after
2 consecutive passes with zero unresolved threads, catching slow bots
- Step 4: re-check gh pr checks before reading threads — if any check
still pending, loop back to grace period (generic, bot-agnostic)
- Stop condition (6f): updated to reflect double-pass requirement
* build(deps): bump posthog-js from 1.353.1 to 1.354.3 (#3578)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.1 to 1.354.3.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.1...posthog-js@1.354.3)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.354.3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.6 to 2.1.8 (#3580)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.8/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.24 to 10.4.27 (#3581)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.24 to 10.4.27.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.27
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump rollup from 4.53.3 to 4.59.0 (#3582)
Bumps [rollup](https://github.com/rollup/rollup) from 4.53.3 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.3...v4.59.0)
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.8 to 2.1.9 (#3583)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.8 to 2.1.9 (#3584)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.354.3 to 1.356.0 (#3585)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.354.3 to 1.356.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.354.3...posthog-js@1.356.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @tryghost/content-api from 1.12.2 to 1.12.5 (#3586)
Bumps [@tryghost/content-api](https://github.com/TryGhost/SDK/tree/HEAD/packages/content-api) from 1.12.2 to 1.12.5.
- [Commits](https://github.com/TryGhost/SDK/commits/@tryghost/content-api@1.12.5/packages/content-api)
---
updated-dependencies:
- dependency-name: "@tryghost/content-api"
dependency-version: 1.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(home): hero vertical centering, overlap prop, and Vuetify 4 typography migration
- Fix v-row missing fill-height in hero and statistics causing align=center no-op
- Fix hero content offset: padding-top 65px on v-container to account for navbar overlap
- Add overlap prop to hero component (mirrors overlapStyle pattern from other home sections)
- Migrate VMarkdown plugin from span to div to fix invalid HTML block-in-inline nesting
- Move Vuetify typography classes to native elements above VMarkdown (d-inline pattern)
- Migrate all Vuetify 3 typography classes to Vuetify 4 MD3 across 11 files:
text-h1-h6 -> text-display/headline-*, text-body-1/2 -> text-body-large/medium,
text-subtitle-1/2 -> text-title-large/medium, text-caption -> text-label-small
Closes #3587
* fix(home): address CodeRabbit review feedback
- Add DOMPurify sanitization to VMarkdown to prevent XSS (marked does not sanitize by default)
- Add inline prop to VMarkdown: uses marked.parseInline() + <span> for valid HTML in h2/p contexts
- Switch hero VMarkdown usages to inline prop instead of d-inline class
- Add JSDoc to containerStyle() computed with @returns documentation
- Update markdown.spec.js: mock DOMPurify, cover inline mode and parseInline fallback
* docs(markdown): add JSDoc headers to test mock factories and helper function
* chore(release): 1.4.0
# [1.4.0](https://github.com/pierreb-devkit/Vue/compare/v1.3.1...v1.4.0) (2026-03-01)
### Bug Fixes
* apply Copilot feedback from rebrand PR ([6450969](https://github.com/pierreb-devkit/Vue/commit/6450969fa3de7383ceb58cdfd49fdc9980a2a63f))
* **claude:** add CHECKS_FOUND guard to monitoring.md retry loop ([437fdee](https://github.com/pierreb-devkit/Vue/commit/437fdeef8d2752184fada1f6346212e341b2ed28))
* **claude:** add YAML frontmatter to all skills for proper triggering ([#3512](https://github.com/pierreb-devkit/Vue/issues/3512)) ([05432c0](https://github.com/pierreb-devkit/Vue/commit/05432c0b654902601982fac55ed2a2412397af9c))
* **claude:** address pass-2 review feedback - watch guard, $PR placeholder, jq line field ([348c7a3](https://github.com/pierreb-devkit/Vue/commit/348c7a3f20687a611a47f6810e3fcd4b9184bcff))
* **claude:** address review feedback - stale refs, retry loop, jq pagination, variables ([56fab55](https://github.com/pierreb-devkit/Vue/commit/56fab5535d5049ba35e4e9bfff41d506ca7883c3))
* **datatable:** register lodash as 'lodash' on globalProperties, not '_' ([24b68d2](https://github.com/pierreb-devkit/Vue/commit/24b68d2d860b93181317413db60cd4766ed83588))
* **errors:** align ERRORS.md JSDoc rule with guardrail nuance (non-void + async) ([568f2b3](https://github.com/pierreb-devkit/Vue/commit/568f2b3cb8430bb029297ad44df0d01fde3a28ec))
* **guardrails:** add backticks to [@param](https://github.com/param) and [@return](https://github.com/return) in ERRORS.md for consistent Markdown rendering ([f92224a](https://github.com/pierreb-devkit/Vue/commit/f92224a786a9c70be8fd25a17131bcdbb56ae42c))
* **guardrails:** apply Copilot feedback — use [@return](https://github.com/return), clarify async rule, sync copilot-instructions ([26cc510](https://github.com/pierreb-devkit/Vue/commit/26cc510bebf458d8c4f2adb26e82fc059e98dbfb))
* **home:** featuretabs image 🐛 ([#3498](https://github.com/pierreb-devkit/Vue/issues/3498)) ([67bbde3](https://github.com/pierreb-devkit/Vue/commit/67bbde34b5b96ec7853004440f679b751e9437eb))
* **jsdoc:** align ERRORS.md wording with guardrail (new or modified functions) ([5db5e65](https://github.com/pierreb-devkit/Vue/commit/5db5e656cec3fd96e8859b70c446dfcf4ecc4b8b))
* **jsdoc:** fix JSDoc accuracy and remove stray /pr reference ([22f8f48](https://github.com/pierreb-devkit/Vue/commit/22f8f483fb1627758591e33d42837a5a2cef64bf))
* **jsdoc:** fix pageRequest [@returns](https://github.com/returns) description to match actual return value ([ed8bc1d](https://github.com/pierreb-devkit/Vue/commit/ed8bc1d3cc5e02c36041a0add07b92286df9f6e7))
* **jsdoc:** standardize on [@returns](https://github.com/returns) (canonical JSDoc tag) across docs and src ([1876e49](https://github.com/pierreb-devkit/Vue/commit/1876e498a416bdab09a9c8ede43df992921dac60))
* **pr-skill:** add git push -f deny pattern and fix bug report placeholder ([8dffffa](https://github.com/pierreb-devkit/Vue/commit/8dffffa10e5435dc54e67250a568b2dda75e5640))
* **pr-skill:** add text language tag to pseudocode fence (MD040) ([77e06ba](https://github.com/pierreb-devkit/Vue/commit/77e06badb13b1d5f2d49cfb418ae2c31a70950a8))
* **pr-skill:** address bot review feedback on pr skill ([8e03358](https://github.com/pierreb-devkit/Vue/commit/8e03358dd8d6eaf1dc3c9d79f199a7b089118b5f))
* **pr-skill:** address Copilot review pass 2 ([57a5941](https://github.com/pierreb-devkit/Vue/commit/57a5941c2e40736966edabb1f515562ef241c6a6))
* **pr-skill:** clarify draft PR scope — bots trigger only after gh pr ready ([a7cbb3c](https://github.com/pierreb-devkit/Vue/commit/a7cbb3c26b508d5571dd85ef0f0f809ee31f7b63))
* **release:** move ci flag to release-it config, add .release-it.json ([2895d7d](https://github.com/pierreb-devkit/Vue/commit/2895d7d8df3e7297f5f169a43ac9a35c3a7a639b))
* remove duplicate test script, delete orphaned .release-it.json ([ec7d0ab](https://github.com/pierreb-devkit/Vue/commit/ec7d0ab67a4bbfeca847eae996c31cdcb3eceb21))
* **seo:** address Copilot review feedback on seoInjectPlugin ([ad71ae2](https://github.com/pierreb-devkit/Vue/commit/ad71ae250e7c4871df6492d9fe55b89907ab42b3))
* **seo:** address second round of Copilot feedback ([c676a14](https://github.com/pierreb-devkit/Vue/commit/c676a14661b1f3ce9bcdde80f5b3cb615bf94508))
* **seo:** make meta tags conditional and harden head injection ([5ac2518](https://github.com/pierreb-devkit/Vue/commit/5ac251828e2e3212d20202f6a603f880a15ac8c3))
* **settings:** deny git switch to main/master branches ([03ab597](https://github.com/pierreb-devkit/Vue/commit/03ab597e70e5f7c0bd82330951ca9ec80543cf73))
* **theme:** isDark accepts boolean and string, fix regression for isDark(true) ([8fb05f8](https://github.com/pierreb-devkit/Vue/commit/8fb05f8b3157406a4e55a1dcc907972ef3228eee))
* **theme:** isDark accepts only string, light by default, remove boolean legacy ([6599c76](https://github.com/pierreb-devkit/Vue/commit/6599c76ffda2cc7eabf5811ca3c02153e4bf67b8))
* **theme:** isDark now returns false for 'light', aligns logic with JSDoc ([df69430](https://github.com/pierreb-devkit/Vue/commit/df694306247f73392c7321ab2bed328ff8800c46))
### Features
* **app,core,config:** header option and design adjustments ✨ ([#3485](https://github.com/pierreb-devkit/Vue/issues/3485)) ([819aa1d](https://github.com/pierreb-devkit/Vue/commit/819aa1d5244e9759700037d6106af59d195850d2))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([2974ff3](https://github.com/pierreb-devkit/Vue/commit/2974ff3a59bac46906985d0d9b9c3388fc755512))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([#3486](https://github.com/pierreb-devkit/Vue/issues/3486)) ([925ad88](https://github.com/pierreb-devkit/Vue/commit/925ad88ce79bb9f1d8dbaf94828cfc2aca62266c))
* **home,config:** handle overloap of hereo with every component ✨ ([#3488](https://github.com/pierreb-devkit/Vue/issues/3488)) ([c38e2f6](https://github.com/pierreb-devkit/Vue/commit/c38e2f673087d39aadc5457e75cd8bf30107561d))
* **home:** rework components ✨ ([a452f02](https://github.com/pierreb-devkit/Vue/commit/a452f0293725a16315825c1176bd067624966cbe))
* **pr-skill:** make monitoring loop explicitly autonomous with polling ([b9b8373](https://github.com/pierreb-devkit/Vue/commit/b9b8373fcef2208ad3d859c4cb82e485b3eb7e15))
* **seo:** add full SEO support configurable per project ([2bc7796](https://github.com/pierreb-devkit/Vue/commit/2bc77965cfe6daab7524130267f6b7e718d8f275))
* **tooling:** add /pr skill with full PR lifecycle ([d5fefde](https://github.com/pierreb-devkit/Vue/commit/d5fefde786f791f805209429381669fef96f16d3))
* build(deps): bump axios from 1.13.5 to 1.13.6 (#3589)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.13.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.356.0 to 1.356.1 (#3590)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.0 to 1.356.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.0...posthog-js@1.356.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump globals from 17.3.0 to 17.4.0 (#3591)
Bumps [globals](https://github.com/sindresorhus/globals) from 17.3.0 to 17.4.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0)
---
updated-dependencies:
- dependency-name: globals
dependency-version: 17.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(auth): fix runtime deprecation warnings and add auth view unit tests
- Replace MD5 with SHA-256 in gravatar plugin (Web Crypto API does not support MD5)
- Replace next() callback style with return-value style in Vue Router guard
- Fix v-snackbar :top/:right deprecated props → location="top right"
- Remove spurious `this` first argument from Pinia store action calls in all views
- Add unit tests for all five auth views (signin, signup, forgot, reset, token)
Closes #3592
* fix(auth): address review feedback from pass 1
- Add JSDoc headers to watch.email and mounted() hooks in gravatar plugin
- Use vi.hoisted() for mock functions in all five auth view test files to prevent
potential TDZ issues under Vitest's vi.mock() hoisting transform
* fix(home): add JSDoc to created() hook in home.team.view
Closes CodeRabbit review feedback: every modified function must have a JSDoc header.
* chore(update-stack): rework skill as 2-phase ISO merge + remove stack-maintainer agent
- Phase 1: ISO merge with explicit --theirs rules for stack modules
- Phase 2: project alignment via MIGRATION.md + tasks reference module
- Remove stack-maintainer agent (guardrails covered by CLAUDE.md + skill)
- Update CLAUDE.md: remove agent reference
* fix(update-stack): address review feedback from pass 1
- Add secure to stack modules list
- Move app.router.js as explicit exception above ISO rule
- Add git add + merge --continue step after conflict resolution
- Full commands in all table rows (no --ours shorthand)
- Fix MIGRATION.md row to include file path
* fix(update-stack): add downstream-only new files rule to conflict table
* fix(update-stack): address review feedback from pass 2
- Replace git add . with git add -u to avoid staging untracked files
* chore(verify,update-stack): read ERRORS.md in verify, simplify ERRORS row in update-stack
* chore(update-stack): remove pattern list from Phase 2, defer to ERRORS.md
* build(deps): bump posthog-js from 1.356.1 to 1.357.1 (#3600)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.1 to 1.357.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.1...posthog-js@1.357.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.357.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.7.0 to 20.8.3 (#3602)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.7.0 to 20.8.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.7.0...v20.8.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.8.3
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.9 to 2.1.10 (#3601)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.9 to 2.1.10 (#3599)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.357.1 to 1.358.0 (#3605)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.357.1 to 1.358.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.357.1...posthog-js@1.358.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.2 to 20.4.3 (#3606)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 4.0.0 to 4.0.1 (#3607)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.1/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3608)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump immutable from 5.1.4 to 5.1.5 (#3609)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 5.1.4 to 5.1.5.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.4...v5.1.5)
---
updated-dependencies:
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.0 to 1.358.1 (#3610)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.0 to 1.358.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.0...posthog-js@1.358.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.3 to 17.0.4 (#3611)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.3 to 17.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.3...v17.0.4)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump dompurify from 3.3.1 to 3.3.2 (#3612)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)
---
updated-dependencies:
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.1 to 1.359.0 (#3613)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.1 to 1.359.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.1...posthog-js@1.359.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.359.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(config): migrate WAOS_VUE_* env prefix to DEVKIT_VUE_*
Rename all environment variable prefixes from WAOS_VUE_ to DEVKIT_VUE_
for consistency with the Node stack which already uses DEVKIT_NODE_.
Updated files:
- scripts/generateConfig.js
- Dockerfile
- .env.example
- hooks/build
- docker-compose.yml
- scripts/deploy-travis.sh
- src/config/defaults/production.js
- README.md
Closes #3614
* fix(config): address review feedback from pass 1
- Rename DEVKIT_VUE_cookie to DEVKIT_VUE_cookie_prefix to match nested config shape
- Fix .env.example: reference src/config/index.js (not .cjs)
- Fix .env.example: use underscore-separated keys (not dots) in examples
- Fix double space typo in generateConfig.js comment
* fix(config): align app_title default between Dockerfile and hooks/build
Both now use 'Devkit-Docker' (hyphenated) consistently.
* fix(core): make datatable generic via fetchAction prop
Replace hardcoded getUsers store call with a fetchAction prop (Function)
that parents provide. This allows any module to use the datatable with
its own store action.
Also replace legacy $store.dispatch (Vuex) in the dispatch method with
a Vue 3 emit-based approach.
Closes #3596
* fix(core): address review feedback from pass 1
- Remove unused request prop
- Fix JSDoc @param types (string, not object) for callStoreAction and fetchUsers
- Add error handling in callStoreAction to prevent stuck loading state
- Make dispatch sync with done callback for proper loading lifecycle
* fix(skill): pull-request skill should ignore stack-level CodeRabbit comments for downstream projects
Add section 6b-bis to classify review comments on downstream projects:
- Stack-level comments (files from upstream) → create issue on stack repo + reply + resolve
- Downstream-only comments → fix locally as usual
Closes #3604
* fix(skill): address review feedback from pass 1
- Add remote setup step before git ls-tree check
- Use heredoc for issue body to avoid shell escaping issues
- Capture issue URL from gh issue create and use in thread reply
* style(home): design tweaks, colorMode option, WAOS cleanup
- Add colorModeStyle helper to force text light/dark per section
- Apply colorMode to all 12 home components + header (incl. submenus)
- Reduce hero height (90/70vh → 85/65vh) and overlap (40/20vh → 35/18vh)
- Push hero content lower (padding-top: 15vh)
- Reduce capabilities tab spacing (padding 16→8px, tab-content gap mt-4→mt-1)
- Header: text logo mode by default (DevKit), forced light colorMode
- Remove statistics parallax variant (blur only)
- Rename Waos* → Devkit* (components, CSS classes, imports)
- Replace all WAOS/WeAreOpenSource refs with DevKit/devkit
- Cookie prefix waos → devkit (config + tests)
- Add 4 colorModeStyle tests
Closes #3618
* fix(home,config): address review feedback from pass 1
* chore(coverage): add vitest thresholds and codecov patch config
* fix(home): pass colorMode to tabs component so forced text color applies to tab items
* fix(home): add JSDoc for tabs colorMode validator and tabStyle method
* refactor(config): split monolithic config into per-module files
Extract module-specific configuration from the single development.js into
dedicated files under each module's config/ directory (home, app, auth).
The generateConfig script now globs module configs and merges them with
global defaults using a layered priority system. Config files are renamed
to config.<env>.js for consistency. Production config no longer imports
development.js directly; instead generateConfig handles the base layer.
* docs(migrations): add config split migration guide for downstream projects
* fix(config): use pathToFileURL for cross-platform dynamic imports
* fix(config): address review — use lodash-es, drop glob dep, add env warning
* chore: trigger CI
* fix(config): remove duplicate vuetify.theme block from app config merge
* fix(config): remove unused imports and fix typo in generateConfig
* feat(update-stack): report upstream issues when verify fails on stack code
Add step 3bis to the update-stack skill so that verify failures
originating from stack module code are reported as GitHub issues on
the upstream repo, ensuring regressions are tracked at the source.
* fix(coverage): exclude bootstrapper files with 0% coverage from collection
Remove plugin/service bootstrappers (index.js, vuetify.js, config.js) and
app.vue from coverage include — these are side-effect-only files with no
testable logic that drag down thresholds in downstream projects.
* fix(update-stack): clarify failure origin criteria in step 3bis
Add guidance on how to distinguish stack code failures from conflict
resolution mistakes, and scope the step 3 description accordingly.
* fix(update-stack): add concrete gh issue create command and resolution guidance
Address review feedback: provide the exact CLI command for creating
upstream issues and clarify that Phase 2 proceeds without blocking.
* feat(header): add float scroll behavior and document all config options
Add a new 'float' scrollBehavior mode for the header that progressively
shrinks the navbar to a centered floating pill on scroll. Add opacity
param to liquidGlassStyle for controllable glass transparency. Document
all config options inline across development config files.
* test(theme): add coverage for liquidGlassStyle opacity parameter
* fix(header): address review feedback from pass 1
- Only apply colorModeStyle for header variant, not dropdown menus
- Add prefers-reduced-motion media query for accessibility
- Expand migration notes to document default changes and rollback values
* fix(lod…
PierreBrisorgueil
added a commit
that referenced
this pull request
Mar 9, 2026
* build(deps-dev): bump eslint-plugin-vue from 10.6.2 to 10.8.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 10.6.2 to 10.8.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Changelog](https://github.com/vuejs/eslint-plugin-vue/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v10.6.2...v10.8.0)
---
updated-dependencies:
- dependency-name: eslint-plugin-vue
dependency-version: 10.8.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump @unhead/vue from 2.0.19 to 2.1.4
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.0.19 to 2.1.4.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.4/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump prettier from 3.7.4 to 3.8.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/cli from 20.2.0 to 20.4.1
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.2.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump video.js from 8.23.4 to 8.23.7
Bumps [video.js](https://github.com/videojs/video.js) from 8.23.4 to 8.23.7.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v8.23.4...v8.23.7)
---
updated-dependencies:
- dependency-name: video.js
dependency-version: 8.23.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* ci: add Codecov coverage upload step
Upload coverage reports to Codecov after test:coverage runs.
Only runs on Node 22.x to avoid duplicate uploads from the matrix.
* ci: use lts/* and node instead of hardcoded versions
Replace pinned [24.x, 22.x] with ['lts/*', 'node'] to automatically
track the active LTS and latest Node.js releases.
* Update CI.yml
* ci(dependabot): align with Node stack auto-merge workflow
Replace ahmadnassri/action-dependabot-auto-merge with the same pattern
used in the Node stack: dependabot/fetch-metadata + approve + auto-merge.
Changes vs Node stack:
- Same workflow structure (approve then auto-merge for patch/minor)
- dependabot.yml: remove obsolete version-specific ignore entries
- dependabot.yml: add semver-major ignore for eslint/@eslint/js (Vue-specific,
eslint-plugin-vue requires ^8 || ^9)
Supersedes #3529.
* build(deps): bump @fortawesome/fontawesome-free from 7.1.0 to 7.2.0 (#3532)
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/7.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/7.1.0...7.2.0)
---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
dependency-version: 7.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @vitejs/plugin-vue from 6.0.3 to 6.0.4 (#3531)
Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/plugin-vue@6.0.4/packages/plugin-vue)
---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
dependency-version: 6.0.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.23 to 10.4.24 (#3535)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.23 to 10.4.24.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.23...10.4.24)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.24
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump vue-eslint-parser from 10.2.0 to 10.4.0 (#3536)
Bumps [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) from 10.2.0 to 10.4.0.
- [Release notes](https://github.com/vuejs/vue-eslint-parser/releases)
- [Commits](https://github.com/vuejs/vue-eslint-parser/compare/v10.2.0...v10.4.0)
---
updated-dependencies:
- dependency-name: vue-eslint-parser
dependency-version: 10.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump semantic-release from 25.0.2 to 25.0.3 (#3525)
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 25.0.2 to 25.0.3.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v25.0.2...v25.0.3)
---
updated-dependencies:
- dependency-name: semantic-release
dependency-version: 25.0.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.331.0 to 1.347.2
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.331.0 to 1.347.2.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.331.0...posthog-js@1.347.2)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.347.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3524)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.0.0 to 20.4.1.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.1/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.1 to 17.0.2
Bumps [marked](https://github.com/markedjs/marked) from 17.0.1 to 17.0.2.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.1...v17.0.2)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): bump vue-router from 4.6.3 to 5.0.2
Bumps [vue-router](https://github.com/vuejs/router) from 4.6.3 to 5.0.2.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v4.6.3...v5.0.2)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps-dev): bump happy-dom from 20.6.1 to 20.6.2 (#3537)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.1 to 20.6.2.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.1...v20.6.2)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.347.2 to 1.350.0 (#3538)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.347.2 to 1.350.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.347.2...posthog-js@1.350.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.350.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.2 to 17.0.3 (#3539)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.2...v17.0.3)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci: align CI with Node stack — single LTS, no matrix
Replace the node version matrix [22.x, 24.x] with a single lts/* node,
matching the Node stack CI. Remove the matrix condition on the Codecov step.
* docs: add Codecov coverage badge to README
* build(deps-dev): bump happy-dom from 20.6.2 to 20.6.3 (#3542)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.2 to 20.6.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.2...v20.6.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.6.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.350.0 to 1.351.1 (#3543)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.350.0 to 1.351.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.350.0...posthog-js@1.351.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* test(coverage): scope coverage to business logic and reach 90%+
Scope coverage.include in vitest.config.js to helpers, services,
middlewares, plugins, stores and app.store/app.vue — excluding
presentational Vue components and router config files.
Add 12 new test files (321 tests total, up from 226):
- src/lib/middlewares/tests/model.spec.js
- src/lib/plugins/tests/{aos,axios.plugin,dayjs,gravatar,images,index,lodash,markdown,posthog,vuetify}.spec.js
- src/modules/app/tests/app.store.spec.js
Improve existing tests:
- core.store.spec.js: add branch coverage for refreshNav() (unauthenticated,
matching roles, non-matching roles, display:false, logged-in with no roles)
- users.store.spec.js: add whitelist test verifying _id/updated/created
are never sent to the API by updateUser
Result: 96.59% statements / 96.62% lines on scoped perimeter
* chore(ai-config): align Claude, Copilot and Codex setup
CLAUDE.md:
- Rename WeAreOpenSource -> Devkit throughout
- Remove fake plugin install section (non-existent paths)
- Remove non-existent /dev, /config, /docker skill references
- Add Preflight section (ERRORS.md contract)
- Add Always-on guardrails section
- Add Definition of done section
- Align merge workflow remote name (vue-stack -> devkit-vue)
ERRORS.md:
- Reformat as structured AI error log with rules and date-stamped entries
- Convert free-form note to canonical entry format
AGENTS.md:
- Remove sections duplicated from CLAUDE.md (commands, guardrails,
modularity, naming, definition of done)
- Keep only Codex-specific content: mission, preflight, prompt routing,
review output convention
.github/copilot-instructions.md:
- Add Preflight section (ERRORS.md contract)
- Add Available prompts section referencing .github/prompts/
.github/prompts/*.prompt.md:
- Rewrite all 5 prompts as self-contained playbooks
- Remove "Source of truth: .claude/skills/..." indirection
- Each prompt now includes full steps, guardrails, and conventions
.claude/settings.local.json:
- Remove session artefacts (PRRT_* PR review IDs, bare do/done patterns)
- Keep only legitimate operational permission overrides
* refactor(prompts): make prompts thin pointers to Claude skills
Skills are the single source of truth for procedures.
Prompts are entry points for Codex/Copilot that reference the skill file
directly — no content duplication, one place to maintain.
* chore: remove empty WIKI.md (in construction, outdated WAOS links)
* chore(vscode): add extensions and settings for Copilot, expand README AI setup section
* chore(ai-config): address Copilot review comments (json support, PR template, CLAUDE note)
* build(deps): bump posthog-js from 1.351.1 to 1.351.4 (#3546)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.1 to 1.351.4.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.1...posthog-js@1.351.4)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.351.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.1 to 20.4.2 (#3547)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue-router from 5.0.2 to 5.0.3 (#3548)
Bumps [vue-router](https://github.com/vuejs/router) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/vuejs/router/releases)
- [Commits](https://github.com/vuejs/router/compare/v5.0.2...v5.0.3)
---
updated-dependencies:
- dependency-name: vue-router
dependency-version: 5.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.11.8 to 3.12.0 (#3549)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.11.8 to 3.12.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v3.12.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 3.12.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3550)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.1 to 20.4.2.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.2/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs(readme): clarify AI tools require client install, align with Node stack wording
* fix(datatable): register lodash as 'lodash' on globalProperties, not '_'
'_' is reserved by Vue 3's template compiler — accessing it in templates
resolves to the internal context, not the lodash instance, causing
TypeError: Cannot read properties of undefined (reading 'get') when
the users list loads.
Fix: globalProperties._ -> globalProperties.lodash, template stays
lodash.get(...).
Adds core.datatable.component.spec.js as regression guard.
* test(datatable): fix regression comment wording and prevent setInterval leaks with fake timers
* chore(scripts): align npm scripts and docs with Node stack
- Add `start` alias for `dev` (cross-stack consistency)
- Fix `test:unit` to run one-shot (`vitest run`) instead of watch mode
- Add explicit `test:watch` alias
- Add `release:auto` for CI semantic release (already documented in README)
- Document `check:migration` in CLAUDE.md
- Update README, CLAUDE.md, copilot-instructions to reflect all scripts
* chore(tooling): replace weareopensource adapter with cz-git, standard-version with release-it
- Replace dead @weareopensource/conventional-changelog (last publish 2020) with cz-git
- Add release-it for manual releases, align release:auto on semantic-release
- Fix commitlint.config.js: module.exports -> export default (ESM)
- Fix package.json meta: name/author/repository/repositoryUrl weareopensource -> pierreb-devkit
- Add ci: false to semantic-release config
* chore(deps): update package-lock.json after tooling change
* fix(release): move ci flag to release-it config, add .release-it.json
- Remove ci:false from semantic-release section (not a valid option there)
- Add .release-it.json with ci:false, commit message format, no npm publish
* chore(tooling): remove release-it, keep only semantic-release for CI
release:auto (semantic-release) covers all release needs via CI.
Remove release-it dep, .release-it.json, and manual release script.
* fix: remove duplicate test script, delete orphaned .release-it.json
* docs(guardrails): enforce JSDoc on every new or modified function
* fix(guardrails): apply Copilot feedback — use @return, clarify async rule, sync copilot-instructions
- Use @return (no trailing s) to match codebase convention (CLAUDE.md, ERRORS.md)
- Clarify when @return is required: non-void returns + always for async functions
- Add JSDoc guardrail to .github/copilot-instructions.md to keep both AI instruction files in sync
* fix(guardrails): add backticks to @param and @return in ERRORS.md for consistent Markdown rendering
* fix(jsdoc): standardize on @returns (canonical JSDoc tag) across docs and src
- Migrate @return → @returns in src/lib/helpers/theme.js, tools.js, middlewares/model.js
- Update CLAUDE.md, copilot-instructions.md and ERRORS.md to use @returns
- Ensures full consistency with JSDoc standard and Node stack convention
* fix(jsdoc): fix JSDoc accuracy and remove stray /pr reference
- theme.js: add param names to isDark and style, document both args
- tools.js: fix releasesNumber param name and Array return type
- tools.js: fix serverItemsLength @returns to number
- model.js: fix description (null only) and improve @param/@returns
- CLAUDE.md, copilot-instructions.md: remove /pr row (wrong PR)
* fix(jsdoc): fix pageRequest @returns description to match actual return value
* fix(theme): isDark now returns false for 'light', aligns logic with JSDoc
* fix(theme): isDark accepts boolean and string, fix regression for isDark(true)
* fix(jsdoc): align ERRORS.md wording with guardrail (new or modified functions)
* fix(theme): isDark accepts only string, light by default, remove boolean legacy
* chore(errors): never patch code to pass a test, refactor if needed
* fix(errors): align ERRORS.md JSDoc rule with guardrail nuance (non-void + async)
* feat(tooling): add /pr skill with full PR lifecycle
- Add .claude/skills/pr/SKILL.md: branch workflow, commit on demand,
draft PR, issue linking, monitor loop with CI wait + grace period,
conflict resolution, actionable vs informational comment distinction
- Add .claude/skills/pr/references/monitoring.md: gh API / GraphQL
commands for replying to and resolving review threads
- Add .github/prompts/pr.prompt.md for Copilot/Codex routing
- Migrate issue templates from .md to YAML forms with labels,
severity/effort dropdowns, and acceptance criteria
- Improve pull_request_template.md: add Related issues field,
remove empty table row, clarify Optional section
- Update settings.json: add gh CLI and git branch/push/rebase
commands to allow list, replace git push * deny with force-only deny
- Register /pr in CLAUDE.md, AGENTS.md, README.md,
copilot-instructions.md
* fix(pr-skill): clarify draft PR scope — bots trigger only after gh pr ready
* fix(pr-skill): address bot review feedback on pr skill
- Use git switch instead of git checkout (safer, no accidental worktree)
- Restrict push patterns to HEAD only (no accidental branch push)
- Add git rebase origin/master and origin/HEAD to settings allow list
- Change gh issue create --body to --web (YAML templates need browser)
- Use origin/HEAD instead of hardcoded origin/main for rebase/conflicts
- Clarify draft PR note: CI runs immediately, review bots wait for ready
- Fix PR template instruction: follow template for optional sections
- Add variable setup note to monitoring.md
- Fix chore→Chore label mapping (was lowercase)
* feat(pr-skill): make monitoring loop explicitly autonomous with polling
- Add pseudocode loop procedure (CI → sleep 180 → read → fix → push → repeat)
- Clarify golden rules: commits within the loop are implicitly authorized
- Add explicit sleep 180 grace period between polling rounds
- Include push step in fix batch (step 6c)
- Update skill description to mention autonomous polling
* fix(pr-skill): address Copilot review pass 2
- Add sleep * to settings.json allowlist (required for autonomous polling)
- Add git push --force * and git push -f * to deny list (close force-push loopholes)
- Add 10-iteration safety limit to monitoring loop stop condition
* fix(pr-skill): add text language tag to pseudocode fence (MD040)
* fix(pr-skill): add git push -f deny pattern and fix bug report placeholder
- Add exact `git push -f` deny rule (without args) to close force-push loophole
- Change bug_report.yml Steps to reproduce from `value` to `placeholder` so
required validation enforces real user content
* fix(settings): deny git switch to main/master branches
Add explicit deny patterns for `git switch main` and `git switch master`
to enforce the "never work directly on default branch" guardrail at the
tooling level.
* build(deps): bump posthog-js from 1.351.4 to 1.352.0 (#3560)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.351.4 to 1.352.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.351.4...posthog-js@1.352.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.352.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.6.3 to 20.7.0 (#3561)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.6.3 to 20.7.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.3...v20.7.0)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.7.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(security): block direct git push to master/main (#3565)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(security): block direct git push to master/main branches
Add deny patterns to prevent Claude Code from pushing directly to
master or main, enforcing the PR-only workflow for protected branches.
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer (#3562)
* chore(agents): rename WeAreOpenSource to Devkit in stack-maintainer
* chore(docs): add pr skill monitor loop entry to ERRORS.md
* chore(docs): add missing issue creation entry to ERRORS.md
* chore(claude): rename pr skill to pull-request and fix automation gaps
- Rename .claude/skills/pr/ → .claude/skills/pull-request/ with shorter
description so the skill loads reliably in system-reminder
- Fix monitor loop: push before reply/resolve, CI retry fallback, thread ID source
- Add preliminary review pass after gh pr ready (CodeRabbit and ready-triggered bots)
- Add 10-iteration safety limit clarification (preliminary pass not counted)
- Add guardrail in CLAUDE.md to always invoke /pull-request when shipping work
- Update feature/SKILL.md to reference /pull-request
Closes #3566
* fix(claude): address review feedback - stale refs, retry loop, jq pagination, variables
* fix(claude): address pass-2 review feedback - watch guard, $PR placeholder, jq line field
* fix(claude): add CHECKS_FOUND guard to monitoring.md retry loop
* build(deps): bump posthog-js from 1.352.0 to 1.353.0 (#3569)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.352.0 to 1.353.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.352.0...posthog-js@1.353.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 3.12.0 to 4.0.0 (#3570)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.0/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* docs: condense AI instruction files, remove duplication
* docs(ai): add conflict caution to README stack merge section
Caution was lost when CLAUDE.md stack merge workflow was replaced by a
pointer to README. Adding it back directly in README as the source of truth.
Closes review feedback on #3571
* fix(pull-request skill): reply and resolve all threads including non-actionable
Informational/false-positive threads must be explicitly replied to and
resolved before the stop condition is met — not silently skipped.
- Loop procedure: add step 6 for non-actionable open threads (reply, resolve)
- Stop condition: zero open threads (not just zero actionable)
* fix(pull-request skill): address review feedback — clarity and consistency
- Terminology: 'open threads' → 'unresolved threads' throughout loop procedure
- Step 6: add 'all' to match step 5 explicitness (reply all, resolve all)
- Informational section: reformat as bullet list, clarify review threads vs PR-level comments
* build(deps): bump unhead from 2.1.4 to 2.1.6 (#3574)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vue from 3.5.28 to 3.5.29 (#3575)
Bumps [vue](https://github.com/vuejs/core) from 3.5.28 to 3.5.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.28...v3.5.29)
---
updated-dependencies:
- dependency-name: vue
dependency-version: 3.5.29
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.4 to 2.1.6 (#3576)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.4 to 2.1.6.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.6/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.353.0 to 1.353.1 (#3577)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.0 to 1.353.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.0...posthog-js@1.353.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.353.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(pull-request skill): add consecutive_zero guard and re-check pending review checks
- Loop procedure: add consecutive_zero counter (X=2) — stop only after
2 consecutive passes with zero unresolved threads, catching slow bots
- Step 4: re-check gh pr checks before reading threads — if any check
still pending, loop back to grace period (generic, bot-agnostic)
- Stop condition (6f): updated to reflect double-pass requirement
* build(deps): bump posthog-js from 1.353.1 to 1.354.3 (#3578)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.353.1 to 1.354.3.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.353.1...posthog-js@1.354.3)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.354.3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.6 to 2.1.8 (#3580)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.8/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump autoprefixer from 10.4.24 to 10.4.27 (#3581)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.24 to 10.4.27.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)
---
updated-dependencies:
- dependency-name: autoprefixer
dependency-version: 10.4.27
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump rollup from 4.53.3 to 4.59.0 (#3582)
Bumps [rollup](https://github.com/rollup/rollup) from 4.53.3 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.53.3...v4.59.0)
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.8 to 2.1.9 (#3583)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.8 to 2.1.9 (#3584)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.8 to 2.1.9.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.9/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.354.3 to 1.356.0 (#3585)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.354.3 to 1.356.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.354.3...posthog-js@1.356.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @tryghost/content-api from 1.12.2 to 1.12.5 (#3586)
Bumps [@tryghost/content-api](https://github.com/TryGhost/SDK/tree/HEAD/packages/content-api) from 1.12.2 to 1.12.5.
- [Commits](https://github.com/TryGhost/SDK/commits/@tryghost/content-api@1.12.5/packages/content-api)
---
updated-dependencies:
- dependency-name: "@tryghost/content-api"
dependency-version: 1.12.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(home): hero vertical centering, overlap prop, and Vuetify 4 typography migration
- Fix v-row missing fill-height in hero and statistics causing align=center no-op
- Fix hero content offset: padding-top 65px on v-container to account for navbar overlap
- Add overlap prop to hero component (mirrors overlapStyle pattern from other home sections)
- Migrate VMarkdown plugin from span to div to fix invalid HTML block-in-inline nesting
- Move Vuetify typography classes to native elements above VMarkdown (d-inline pattern)
- Migrate all Vuetify 3 typography classes to Vuetify 4 MD3 across 11 files:
text-h1-h6 -> text-display/headline-*, text-body-1/2 -> text-body-large/medium,
text-subtitle-1/2 -> text-title-large/medium, text-caption -> text-label-small
Closes #3587
* fix(home): address CodeRabbit review feedback
- Add DOMPurify sanitization to VMarkdown to prevent XSS (marked does not sanitize by default)
- Add inline prop to VMarkdown: uses marked.parseInline() + <span> for valid HTML in h2/p contexts
- Switch hero VMarkdown usages to inline prop instead of d-inline class
- Add JSDoc to containerStyle() computed with @returns documentation
- Update markdown.spec.js: mock DOMPurify, cover inline mode and parseInline fallback
* docs(markdown): add JSDoc headers to test mock factories and helper function
* chore(release): 1.4.0
# [1.4.0](https://github.com/pierreb-devkit/Vue/compare/v1.3.1...v1.4.0) (2026-03-01)
### Bug Fixes
* apply Copilot feedback from rebrand PR ([6450969](https://github.com/pierreb-devkit/Vue/commit/6450969fa3de7383ceb58cdfd49fdc9980a2a63f))
* **claude:** add CHECKS_FOUND guard to monitoring.md retry loop ([437fdee](https://github.com/pierreb-devkit/Vue/commit/437fdeef8d2752184fada1f6346212e341b2ed28))
* **claude:** add YAML frontmatter to all skills for proper triggering ([#3512](https://github.com/pierreb-devkit/Vue/issues/3512)) ([05432c0](https://github.com/pierreb-devkit/Vue/commit/05432c0b654902601982fac55ed2a2412397af9c))
* **claude:** address pass-2 review feedback - watch guard, $PR placeholder, jq line field ([348c7a3](https://github.com/pierreb-devkit/Vue/commit/348c7a3f20687a611a47f6810e3fcd4b9184bcff))
* **claude:** address review feedback - stale refs, retry loop, jq pagination, variables ([56fab55](https://github.com/pierreb-devkit/Vue/commit/56fab5535d5049ba35e4e9bfff41d506ca7883c3))
* **datatable:** register lodash as 'lodash' on globalProperties, not '_' ([24b68d2](https://github.com/pierreb-devkit/Vue/commit/24b68d2d860b93181317413db60cd4766ed83588))
* **errors:** align ERRORS.md JSDoc rule with guardrail nuance (non-void + async) ([568f2b3](https://github.com/pierreb-devkit/Vue/commit/568f2b3cb8430bb029297ad44df0d01fde3a28ec))
* **guardrails:** add backticks to [@param](https://github.com/param) and [@return](https://github.com/return) in ERRORS.md for consistent Markdown rendering ([f92224a](https://github.com/pierreb-devkit/Vue/commit/f92224a786a9c70be8fd25a17131bcdbb56ae42c))
* **guardrails:** apply Copilot feedback — use [@return](https://github.com/return), clarify async rule, sync copilot-instructions ([26cc510](https://github.com/pierreb-devkit/Vue/commit/26cc510bebf458d8c4f2adb26e82fc059e98dbfb))
* **home:** featuretabs image 🐛 ([#3498](https://github.com/pierreb-devkit/Vue/issues/3498)) ([67bbde3](https://github.com/pierreb-devkit/Vue/commit/67bbde34b5b96ec7853004440f679b751e9437eb))
* **jsdoc:** align ERRORS.md wording with guardrail (new or modified functions) ([5db5e65](https://github.com/pierreb-devkit/Vue/commit/5db5e656cec3fd96e8859b70c446dfcf4ecc4b8b))
* **jsdoc:** fix JSDoc accuracy and remove stray /pr reference ([22f8f48](https://github.com/pierreb-devkit/Vue/commit/22f8f483fb1627758591e33d42837a5a2cef64bf))
* **jsdoc:** fix pageRequest [@returns](https://github.com/returns) description to match actual return value ([ed8bc1d](https://github.com/pierreb-devkit/Vue/commit/ed8bc1d3cc5e02c36041a0add07b92286df9f6e7))
* **jsdoc:** standardize on [@returns](https://github.com/returns) (canonical JSDoc tag) across docs and src ([1876e49](https://github.com/pierreb-devkit/Vue/commit/1876e498a416bdab09a9c8ede43df992921dac60))
* **pr-skill:** add git push -f deny pattern and fix bug report placeholder ([8dffffa](https://github.com/pierreb-devkit/Vue/commit/8dffffa10e5435dc54e67250a568b2dda75e5640))
* **pr-skill:** add text language tag to pseudocode fence (MD040) ([77e06ba](https://github.com/pierreb-devkit/Vue/commit/77e06badb13b1d5f2d49cfb418ae2c31a70950a8))
* **pr-skill:** address bot review feedback on pr skill ([8e03358](https://github.com/pierreb-devkit/Vue/commit/8e03358dd8d6eaf1dc3c9d79f199a7b089118b5f))
* **pr-skill:** address Copilot review pass 2 ([57a5941](https://github.com/pierreb-devkit/Vue/commit/57a5941c2e40736966edabb1f515562ef241c6a6))
* **pr-skill:** clarify draft PR scope — bots trigger only after gh pr ready ([a7cbb3c](https://github.com/pierreb-devkit/Vue/commit/a7cbb3c26b508d5571dd85ef0f0f809ee31f7b63))
* **release:** move ci flag to release-it config, add .release-it.json ([2895d7d](https://github.com/pierreb-devkit/Vue/commit/2895d7d8df3e7297f5f169a43ac9a35c3a7a639b))
* remove duplicate test script, delete orphaned .release-it.json ([ec7d0ab](https://github.com/pierreb-devkit/Vue/commit/ec7d0ab67a4bbfeca847eae996c31cdcb3eceb21))
* **seo:** address Copilot review feedback on seoInjectPlugin ([ad71ae2](https://github.com/pierreb-devkit/Vue/commit/ad71ae250e7c4871df6492d9fe55b89907ab42b3))
* **seo:** address second round of Copilot feedback ([c676a14](https://github.com/pierreb-devkit/Vue/commit/c676a14661b1f3ce9bcdde80f5b3cb615bf94508))
* **seo:** make meta tags conditional and harden head injection ([5ac2518](https://github.com/pierreb-devkit/Vue/commit/5ac251828e2e3212d20202f6a603f880a15ac8c3))
* **settings:** deny git switch to main/master branches ([03ab597](https://github.com/pierreb-devkit/Vue/commit/03ab597e70e5f7c0bd82330951ca9ec80543cf73))
* **theme:** isDark accepts boolean and string, fix regression for isDark(true) ([8fb05f8](https://github.com/pierreb-devkit/Vue/commit/8fb05f8b3157406a4e55a1dcc907972ef3228eee))
* **theme:** isDark accepts only string, light by default, remove boolean legacy ([6599c76](https://github.com/pierreb-devkit/Vue/commit/6599c76ffda2cc7eabf5811ca3c02153e4bf67b8))
* **theme:** isDark now returns false for 'light', aligns logic with JSDoc ([df69430](https://github.com/pierreb-devkit/Vue/commit/df694306247f73392c7321ab2bed328ff8800c46))
### Features
* **app,core,config:** header option and design adjustments ✨ ([#3485](https://github.com/pierreb-devkit/Vue/issues/3485)) ([819aa1d](https://github.com/pierreb-devkit/Vue/commit/819aa1d5244e9759700037d6106af59d195850d2))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([2974ff3](https://github.com/pierreb-devkit/Vue/commit/2974ff3a59bac46906985d0d9b9c3388fc755512))
* **core,home,helpers,config:** refresh style and homegeise strucutres ✨ ([#3486](https://github.com/pierreb-devkit/Vue/issues/3486)) ([925ad88](https://github.com/pierreb-devkit/Vue/commit/925ad88ce79bb9f1d8dbaf94828cfc2aca62266c))
* **home,config:** handle overloap of hereo with every component ✨ ([#3488](https://github.com/pierreb-devkit/Vue/issues/3488)) ([c38e2f6](https://github.com/pierreb-devkit/Vue/commit/c38e2f673087d39aadc5457e75cd8bf30107561d))
* **home:** rework components ✨ ([a452f02](https://github.com/pierreb-devkit/Vue/commit/a452f0293725a16315825c1176bd067624966cbe))
* **pr-skill:** make monitoring loop explicitly autonomous with polling ([b9b8373](https://github.com/pierreb-devkit/Vue/commit/b9b8373fcef2208ad3d859c4cb82e485b3eb7e15))
* **seo:** add full SEO support configurable per project ([2bc7796](https://github.com/pierreb-devkit/Vue/commit/2bc77965cfe6daab7524130267f6b7e718d8f275))
* **tooling:** add /pr skill with full PR lifecycle ([d5fefde](https://github.com/pierreb-devkit/Vue/commit/d5fefde786f791f805209429381669fef96f16d3))
* build(deps): bump axios from 1.13.5 to 1.13.6 (#3589)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.13.6.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.356.0 to 1.356.1 (#3590)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.0 to 1.356.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.0...posthog-js@1.356.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.356.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump globals from 17.3.0 to 17.4.0 (#3591)
Bumps [globals](https://github.com/sindresorhus/globals) from 17.3.0 to 17.4.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.3.0...v17.4.0)
---
updated-dependencies:
- dependency-name: globals
dependency-version: 17.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(auth): fix runtime deprecation warnings and add auth view unit tests
- Replace MD5 with SHA-256 in gravatar plugin (Web Crypto API does not support MD5)
- Replace next() callback style with return-value style in Vue Router guard
- Fix v-snackbar :top/:right deprecated props → location="top right"
- Remove spurious `this` first argument from Pinia store action calls in all views
- Add unit tests for all five auth views (signin, signup, forgot, reset, token)
Closes #3592
* fix(auth): address review feedback from pass 1
- Add JSDoc headers to watch.email and mounted() hooks in gravatar plugin
- Use vi.hoisted() for mock functions in all five auth view test files to prevent
potential TDZ issues under Vitest's vi.mock() hoisting transform
* fix(home): add JSDoc to created() hook in home.team.view
Closes CodeRabbit review feedback: every modified function must have a JSDoc header.
* chore(update-stack): rework skill as 2-phase ISO merge + remove stack-maintainer agent
- Phase 1: ISO merge with explicit --theirs rules for stack modules
- Phase 2: project alignment via MIGRATION.md + tasks reference module
- Remove stack-maintainer agent (guardrails covered by CLAUDE.md + skill)
- Update CLAUDE.md: remove agent reference
* fix(update-stack): address review feedback from pass 1
- Add secure to stack modules list
- Move app.router.js as explicit exception above ISO rule
- Add git add + merge --continue step after conflict resolution
- Full commands in all table rows (no --ours shorthand)
- Fix MIGRATION.md row to include file path
* fix(update-stack): add downstream-only new files rule to conflict table
* fix(update-stack): address review feedback from pass 2
- Replace git add . with git add -u to avoid staging untracked files
* chore(verify,update-stack): read ERRORS.md in verify, simplify ERRORS row in update-stack
* chore(update-stack): remove pattern list from Phase 2, defer to ERRORS.md
* build(deps): bump posthog-js from 1.356.1 to 1.357.1 (#3600)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.356.1 to 1.357.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.356.1...posthog-js@1.357.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.357.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump happy-dom from 20.7.0 to 20.8.3 (#3602)
Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 20.7.0 to 20.8.3.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.7.0...v20.8.3)
---
updated-dependencies:
- dependency-name: happy-dom
dependency-version: 20.8.3
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump unhead from 2.1.9 to 2.1.10 (#3601)
Bumps [unhead](https://github.com/unjs/unhead/tree/HEAD/packages/unhead) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/unhead)
---
updated-dependencies:
- dependency-name: unhead
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump @unhead/vue from 2.1.9 to 2.1.10 (#3599)
Bumps [@unhead/vue](https://github.com/unjs/unhead/tree/HEAD/packages/vue) from 2.1.9 to 2.1.10.
- [Release notes](https://github.com/unjs/unhead/releases)
- [Commits](https://github.com/unjs/unhead/commits/v2.1.10/packages/vue)
---
updated-dependencies:
- dependency-name: "@unhead/vue"
dependency-version: 2.1.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.357.1 to 1.358.0 (#3605)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.357.1 to 1.358.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.357.1...posthog-js@1.358.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/cli from 20.4.2 to 20.4.3 (#3606)
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump vuetify from 4.0.0 to 4.0.1 (#3607)
Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v4.0.1/packages/vuetify)
---
updated-dependencies:
- dependency-name: vuetify
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps-dev): bump @commitlint/config-conventional (#3608)
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 20.4.2 to 20.4.3.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.3/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump immutable from 5.1.4 to 5.1.5 (#3609)
Bumps [immutable](https://github.com/immutable-js/immutable-js) from 5.1.4 to 5.1.5.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.4...v5.1.5)
---
updated-dependencies:
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.0 to 1.358.1 (#3610)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.0 to 1.358.1.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.0...posthog-js@1.358.1)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.358.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump marked from 17.0.3 to 17.0.4 (#3611)
Bumps [marked](https://github.com/markedjs/marked) from 17.0.3 to 17.0.4.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Commits](https://github.com/markedjs/marked/compare/v17.0.3...v17.0.4)
---
updated-dependencies:
- dependency-name: marked
dependency-version: 17.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump dompurify from 3.3.1 to 3.3.2 (#3612)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)
---
updated-dependencies:
- dependency-name: dompurify
dependency-version: 3.3.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump posthog-js from 1.358.1 to 1.359.0 (#3613)
Bumps [posthog-js](https://github.com/PostHog/posthog-js) from 1.358.1 to 1.359.0.
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/compare/posthog-js@1.358.1...posthog-js@1.359.0)
---
updated-dependencies:
- dependency-name: posthog-js
dependency-version: 1.359.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat(config): migrate WAOS_VUE_* env prefix to DEVKIT_VUE_*
Rename all environment variable prefixes from WAOS_VUE_ to DEVKIT_VUE_
for consistency with the Node stack which already uses DEVKIT_NODE_.
Updated files:
- scripts/generateConfig.js
- Dockerfile
- .env.example
- hooks/build
- docker-compose.yml
- scripts/deploy-travis.sh
- src/config/defaults/production.js
- README.md
Closes #3614
* fix(config): address review feedback from pass 1
- Rename DEVKIT_VUE_cookie to DEVKIT_VUE_cookie_prefix to match nested config shape
- Fix .env.example: reference src/config/index.js (not .cjs)
- Fix .env.example: use underscore-separated keys (not dots) in examples
- Fix double space typo in generateConfig.js comment
* fix(config): align app_title default between Dockerfile and hooks/build
Both now use 'Devkit-Docker' (hyphenated) consistently.
* fix(core): make datatable generic via fetchAction prop
Replace hardcoded getUsers store call with a fetchAction prop (Function)
that parents provide. This allows any module to use the datatable with
its own store action.
Also replace legacy $store.dispatch (Vuex) in the dispatch method with
a Vue 3 emit-based approach.
Closes #3596
* fix(core): address review feedback from pass 1
- Remove unused request prop
- Fix JSDoc @param types (string, not object) for callStoreAction and fetchUsers
- Add error handling in callStoreAction to prevent stuck loading state
- Make dispatch sync with done callback for proper loading lifecycle
* fix(skill): pull-request skill should ignore stack-level CodeRabbit comments for downstream projects
Add section 6b-bis to classify review comments on downstream projects:
- Stack-level comments (files from upstream) → create issue on stack repo + reply + resolve
- Downstream-only comments → fix locally as usual
Closes #3604
* fix(skill): address review feedback from pass 1
- Add remote setup step before git ls-tree check
- Use heredoc for issue body to avoid shell escaping issues
- Capture issue URL from gh issue create and use in thread reply
* style(home): design tweaks, colorMode option, WAOS cleanup
- Add colorModeStyle helper to force text light/dark per section
- Apply colorMode to all 12 home components + header (incl. submenus)
- Reduce hero height (90/70vh → 85/65vh) and overlap (40/20vh → 35/18vh)
- Push hero content lower (padding-top: 15vh)
- Reduce capabilities tab spacing (padding 16→8px, tab-content gap mt-4→mt-1)
- Header: text logo mode by default (DevKit), forced light colorMode
- Remove statistics parallax variant (blur only)
- Rename Waos* → Devkit* (components, CSS classes, imports)
- Replace all WAOS/WeAreOpenSource refs with DevKit/devkit
- Cookie prefix waos → devkit (config + tests)
- Add 4 colorModeStyle tests
Closes #3618
* fix(home,config): address review feedback from pass 1
* chore(coverage): add vitest thresholds and codecov patch config
* fix(home): pass colorMode to tabs component so forced text color applies to tab items
* fix(home): add JSDoc for tabs colorMode validator and tabStyle method
* refactor(config): split monolithic config into per-module files
Extract module-specific configuration from the single development.js into
dedicated files under each module's config/ directory (home, app, auth).
The generateConfig script now globs module configs and merges them with
global defaults using a layered priority system. Config files are renamed
to config.<env>.js for consistency. Production config no longer imports
development.js directly; instead generateConfig handles the base layer.
* docs(migrations): add config split migration guide for downstream projects
* fix(config): use pathToFileURL for cross-platform dynamic imports
* fix(config): address review — use lodash-es, drop glob dep, add env warning
* chore: trigger CI
* fix(config): remove duplicate vuetify.theme block from app config merge
* fix(config): remove unused imports and fix typo in generateConfig
* feat(update-stack): report upstream issues when verify fails on stack code
Add step 3bis to the update-stack skill so that verify failures
originating from stack module code are reported as GitHub issues on
the upstream repo, ensuring regressions are tracked at the source.
* fix(coverage): exclude bootstrapper files with 0% coverage from collection
Remove plugin/service bootstrappers (index.js, vuetify.js, config.js) and
app.vue from coverage include — these are side-effect-only files with no
testable logic that drag down thresholds in downstream projects.
* fix(update-stack): clarify failure origin criteria in step 3bis
Add guidance on how to distinguish stack code failures from conflict
resolution mistakes, and scope the step 3 description accordingly.
* fix(update-stack): add concrete gh issue create command and resolution guidance
Address review feedback: provide the exact CLI command for creating
upstream issues and clarify that Phase 2 proceeds without blocking.
* feat(header): add float scroll behavior and document all config options
Add a new 'float' scrollBehavior mode for the header that progressively
shrinks the navbar to a centered floating pill on scroll. Add opacity
param to liquidGlassStyle for controllable glass transparency. Document
all config options inline across development config files.
* test(theme): add coverage for liquidGlassStyle opacity parameter
* fix(header): address review feedback from pass 1
- Only apply colorModeStyle for header variant, not dropdown menus
- Add prefers-reduced-motion media query for accessibility
- Expand migration notes to document default changes and rollback values
* fix(lod…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.