chore(brand): align app-store hex to canonical cobalt #21468B - #15
Conversation
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ❌ | ||||
| stylelint | ❌ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ❌ | ❌ | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-13 09:33 UTC
Download the full PDF report from the workflow artifacts.
The icon hex was filled with the legacy '#4376FC' (the conduction-design-tokens 'Conduction Cobalt'). The design-system has retired this in preview/colors.html with the caption > Our legacy blue (#4376FC) read as 'cloud / SaaS', light, frisky, > lacking weight. Cobalt is the official blue of the Dutch flag, > Dutch by birthright, dark enough to feel serious, light enough > to stay blue, and AAA-contrast on white so it can carry body > text. Swap to #21468B (--c-blue-cobalt in tokens.css) so the app-store hex matches the navbar wordmark and the rest of the brand chrome. Fleet sweep 2026-05-13.
78d3202 to
73196b2
Compare
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-19 04:13 UTC
Download the full PDF report from the workflow artifacts.
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-20 12:07 UTC
Download the full PDF report from the workflow artifacts.
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ❌ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-05-20 12:22 UTC
Download the full PDF report from the workflow artifacts.
composer audit was flagging 14 vulnerabilities across symfony/yaml + twig/twig: - symfony/yaml v6.4.34 → v6.4.40 (CVE-2026-45304/45305 + others) - twig/twig v3.24.0 → v3.26.0 (sandbox-escape advisories chain) Lock-only update; no composer.json changes (both come in transitively via Symfony deps + edgedesign/phpqa).
Same fix as #15. Eliminates 14 composer audit vulnerabilities.
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ❌ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/3 statements)
Quality workflow — 2026-05-20 12:41 UTC
Download the full PDF report from the workflow artifacts.
5 test files still carried the nextcloud-app-template scaffold's `OCA\AppTemplate\*` namespace + class names — never updated when the app was renamed to DeskDesk. PHPUnit was failing with 25 errors: "Class OCA\AppTemplate\Service\ItemService not found". Renames: - tests/Unit/AppTemplateTest.php → DeskDeskTest.php (class + namespace) - tests/unit/Controller/SettingsControllerTest.php — namespace + 'use' - tests/unit/Controller/ItemControllerTest.php — namespace + 'use' - tests/unit/Service/ItemServiceTest.php — namespace + 'use' - tests/unit/Service/SettingsServiceTest.php — namespace + 'use' Production classes already use `OCA\DeskDesk\*`; this just brings the tests in line so PHPUnit can resolve the classes under test.
Same fix as #15. 5 scaffold-leftover test files used the wrong namespace, causing 'Class OCA\AppTemplate\Service\ItemService not found' on every test method.
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ❌ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/3 statements)
Quality workflow — 2026-05-20 12:45 UTC
Download the full PDF report from the workflow artifacts.
Three PHPUnit failures after the namespace fix were real assertion
mismatches between tests and production:
1. testGetSettingsReturnsIsAdminTrueForAdminUser + testUpdateSettings…
— mocks expected IAppConfig calls to use 'app-template' app-id;
production uses 'deskdesk' (Application::APP_ID). Updated both
->with(...) matchers.
2. testLoadConfigurationSuccessPathWithForce —
- Stubbed configurationService had importFromApp($appId, $force)
but production calls importFromFilePath($appId, $filePath,
$version, $force). Replaced the stub method signature.
- appManager mock was missing getAppPath() — needed for the bundle
path resolution. Added stub returning a non-existent path so
production falls back to the default version '0.2.0'.
- Asserted version '0.1.0' but with no register file present
production returns the '0.2.0' fallback. Updated assertion.
Bootstrap tests/bootstrap.php — \OC_App::loadApp('app-template')
also updated to 'deskdesk' so functional bootstrap matches the app
ID.
Same fix as #15 — 3 real test/production mismatches (app-id, OR stub method, version assertion + bootstrap loadApp call).
Quality Report — ConductionNL/deskdesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 576/576 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ |
Coverage: 0% (0/3 statements)
Quality workflow — 2026-05-20 12:56 UTC
Download the full PDF report from the workflow artifacts.
#18) * chore(brand): preset ^2.10.0 + auto-derived hero status + smaller glyph @conduction/docusaurus-preset 2.10.0 ships: - deriveStability(version): 0.x → Beta, *-rc → RC, ≥1.0 → Stable, *-beta → Beta, *-alpha → Alpha - Navbar versionPill auto-uses the derived label so the chrome and the hero badge row can no longer disagree - <DetailHero/> reads version + status from customFields.appVersion (createConfig auto-populates this from appinfo/info.xml) when callers omit the props Three coordinated changes here: docs/package.json — bump @conduction/docusaurus-preset to ^2.10.0 docs/src/pages/index.js — drop hard-coded `status={...}` and `version="..."` props on <DetailHero>; the hero now auto-derives via the same source the navbar reads img/app-store.svg — shrink inner glyph (~40% of hex height instead of ~60%), better breathing room around the cobalt hex * chore(security): bump symfony/yaml + twig/twig past advisories Same fix as #15. Eliminates 14 composer audit vulnerabilities. * fix(tests): rename OCA\AppTemplate → OCA\DeskDesk in PHPUnit tests Same fix as #15. 5 scaffold-leftover test files used the wrong namespace, causing 'Class OCA\AppTemplate\Service\ItemService not found' on every test method. * fix(tests): update PHPUnit tests to match deskdesk production state Same fix as #15 — 3 real test/production mismatches (app-id, OR stub method, version assertion + bootstrap loadApp call).
Single-file change to
img/app-store.svg: hex polygon fill updated from legacy#4376FCto canonical#21468B(--c-blue-cobalt). Part of the fleet sweep aligning the app icon to the brand cobalt — see design-system colors.html for the rationale. No code or behavior changes.