This repository was archived by the owner on May 29, 2026. It is now read-only.
chore: openspec strict-clean + npm audit fix + dashboard-sharing archive + playwright wiring#100
Merged
Merged
Conversation
…llowups archive
- Add minimal spec deltas for newman-integration-suite + spec-annotation-pass
changes so they pass validate --strict (each previously had a README.md
noting "no delta needed" which the validator rejects). They now declare
their intent against new tooling capabilities (integration-tests,
code-annotations).
- Archive dashboard-sharing-followups: features REQ-SHARE-008..013 are
implemented in lib/ (notifications via INotifier, bulk replace via
PUT /api/dashboard/{id}/shares, recipient revoke via
DELETE /api/sharees/{type}/{with}, UserDeletedEvent listener with admin
retention + deterministic new-owner selection). Spec delta merged into
canonical openspec/specs/dashboard-sharing/spec.md.
- npm audit fix clears both highs (serialize-javascript), now 0 high.
Only package-lock.json modified, no breaking changes.
openspec validate --all --strict: 46/46 passing, 0 failed.
Contributor
Quality Report — ConductionNL/mydash @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 500/500 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-02 16:26 UTC
Download the full PDF report from the workflow artifacts.
…ssertions Picks up the net-new test additions from the user's WIP that weren't on dev: testGroupSharedConstants verifies REQ-DASH-011/012/013 constants (TYPE_GROUP_SHARED, DEFAULT_GROUP_ID, SOURCE_USER/GROUP/DEFAULT) are exposed on the entity, and the existing testTypeConstants gains three PERMISSION_* assertions. Both files also gain SPDX-FileCopyrightText + SPDX-License-Identifier inside the existing docblock per project rules. All other WIP-vs-dev divergence is the user's branch lagging behind dev (working tree contains older versions of files that PR #99 already updated) — no further integration work needed.
Contributor
Quality Report — ConductionNL/mydash @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 500/500 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-02 16:28 UTC
Download the full PDF report from the workflow artifacts.
Adds @playwright/test config, admin-login global setup, tiny PNG upload fixture, and per-suite README with triage results. Per-spec auth handled once via storageState harvested from a real browser login (driving the NC /login form is the only stable cross-version method since CSRF token rotation shifted across NC 28/29/30). Discovered: only 4 e2e spec files (14 cases) made it onto development via PR #99 — not the 24 originally scoped, since most feature branches carried only the canonical label-widget.spec.ts template. First-run results: 0 passing / 14 failing — every failure is the same 500 from PageController::index() because the mounted custom_apps/mydash copy predates InitialStateBuilder (introduced by initial-state-contract on dev). Specs themselves are sound; runner needs the install switched to development. Documented in tests/e2e/README.md; no .skip()/.fixme() markers added because hiding the 500 would mask the real env signal.
Contributor
Quality Report — ConductionNL/mydash @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 501/501 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-02 16:42 UTC
Download the full PDF report from the workflow artifacts.
This was referenced May 2, 2026
rubenvdlinde
added a commit
that referenced
this pull request
May 3, 2026
chore: openspec strict-clean + npm audit fix + dashboard-sharing archive + playwright wiring
rubenvdlinde
added a commit
that referenced
this pull request
May 3, 2026
Closes the temporary `~2.5.2` pin from the OpenSpec merge stabilisation work (PR #100). 2.6 is ESM-only and ships an `exports` map that no longer exposes a `require` condition. Vite/Vitest worker now resolves the ESM exports map natively, so the local stub at `tests/vitest/stubs/nextcloud-axios.js` and its alias in `vitest.config.js` are no longer needed and have been removed. All 299 unit tests still pass via `vi.mock('@nextcloud/axios', ...)` overrides. Webpack 5 needs a small alias to bypass the `exports` map: the CJS bundle of `@nextcloud/vue@8.x` (latest Vue 2 line, locked to 8.36.0) internally does `require('@nextcloud/axios')`, which the new exports map rejects under the `require` condition. Aliasing `@nextcloud/axios$` directly to `dist/index.js` lets webpack treat the module as a regular ESM file and interop it itself. This is a build-only workaround; once @nextcloud/vue ships a 2.6-aware build (or once we move to Vue 3 / @nextcloud/vue 9.x) the alias can drop. Quality gates: - `npm test` — 27 files, 299/299 passing - `npm run build` — 0 errors, 5 pre-existing warnings (floating-ui, asset size) - `composer check:strict` — PHPCS, Psalm, PHPStan, PHPUnit (411/411) all green
Merged
4 tasks
rubenvdlinde
added a commit
that referenced
this pull request
May 3, 2026
Resolves the SHA-based merge ambiguity caused by the wave2 filter-branch rewrite. Wave2 textually contains all of PRs #99/#100/#101/#102, and all 60 conflicting code/spec/l10n files were superset-resolved by taking wave2's version (HEAD). Brings in PR #103 (.github/CODEOWNERS) and PR #105 (openspec/changes/mydash-adopt-or-abstractions/) cleanly since neither overlapped with wave2 work.
5 tasks
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Four small fixups bundled:
OpenSpec strict-clean —
newman-integration-suite-2026-04-24andspec-annotation-pass-2026-04-24previously hadspecs/README.mdfiles declaring "no delta needed", whichopenspec validate --strictrejects. Replaced with minimal real spec deltas declaring their intent against new tooling capabilities (integration-tests,code-annotations).npm audit fix — clears both HIGH severity vulnerabilities (serialize-javascript). Now 0 high. Only
package-lock.jsonmodified, no breaking changes.dashboard-sharing-followups archived — features REQ-SHARE-008..013 (notifications, bulk replace, recipient revoke, UserDeletedEvent cascade with admin retention + deterministic owner selection) verified implemented across 36 references in
lib/. Spec delta merged into canonicalopenspec/specs/dashboard-sharing/spec.md. Change folder moved toopenspec/changes/archive/2026-04-30-dashboard-sharing-followups/.Net-new test additions from WIP —
testGroupSharedConstants(REQ-DASH-011/012/013) plus threePERMISSION_*assertions. SPDX headers added to both test files.Playwright E2E runner wired up — adds
@playwright/test,playwright.config.ts, admin-loginglobal-setup.ts, and npm scripts (test:e2e,test:e2e:ui,test:e2e:headed). Storage state persisted attests/e2e/.auth/admin.json(gitignored). 4 spec files exist on dev (label/image/text-display/responsive-grid); first-run triage shows wiring works but the mountedcustom_apps/mydashis on an older branch — once it's switched todevelopmentthe specs should run.Quality gates
openspec validate --all --strict: 46 passed, 0 failednpm test: 299/299 vitest passingnpm run build: cleannpm audit: 0 high (was 2 high before)Test plan
custom_apps/mydashmount todevelopmentdevelopmentbase