Repository navigation
feat: build open OpenSpec changes (launchpad, part 1) - #826
Merged
Merged
Conversation
…says so Archives grid-bottom-append-placement: REQ-GRID-006 describes the shipped bottom-append rule and the push-down scenarios are retired.
…d step stays a follow-up
…s endpoint are gone Decision 131 (Q-launchpad-1): drop setup-wizard step 2, POST /api/admin/setup-wizard/storage, AdminSettingKey::CONTENT_STORAGE and the three SetupWizardService storage methods. A stored content_storage row stays unread. occ launchpad:setup no longer needs storage_backend and says an old field was ignored. GET /api/admin/settings returns twelve keys. The code half landed in the coordinator's wip daa7a92; this commit adds the command test, the two test fixes for the twelve-key settings, the formatted Vitest spec and the archived change.
… with per-event settings Four activity settings in one LaunchPad group (REQ-DIGE-001): shared and published go to the digest by default, updated and acknowledged stay in the stream only. Registered in info.xml (validated against app-info.xsd), labels in all 37 locales. engagement-activity-digest stays open for its live check (task 5); e-digest moves to building.
…y built in dae7ade The unfiltered People list pages searchDisplayName in bounded chunks; REQ-PPL-013 now says so (renumbered from a REQ-PPL-007 that collided with Avatar URLs).
…fix-l10n-domain-mismatch-mydash-calls Both stay open: the E2E leg is skipped on development push runs, and the Dutch-locale check needs the live instance.
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
October 9, 2026 21:23
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ❌ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 107/107 | |||
| npm | ✅ | ✅ 636/636 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-09 21:26 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ❌ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 107/107 | |||
| npm | ✅ | ✅ 636/636 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ 1953/1954 | ||||
| Newman | ❌ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-09 21:51 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ❌ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 107/107 | |||
| npm | ✅ | ✅ 636/636 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ❌ 1953/1954 | ||||
| Newman | ✅ 224/224 | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-10 07:54 UTC
Download the full PDF report from the workflow artifacts.
…r the Nextcloud bootstrap
Contributor
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| format | ❌ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 107/107 | |||
| npm | ✅ | ✅ 636/636 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ✅ 1954/1954 | ||||
| Newman | ✅ 224/224 | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ❌ |
Quality workflow — 2026-10-10 08:17 UTC
Download the full PDF report from the workflow artifacts.
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.
What this lands
Part 1 of building launchpad's open OpenSpec changes (decisions 121 to 124, landed small per decision 134).
Built and archived
POST /api/admin/setup-wizard/storage,AdminController::setWizardStorage(),AdminSettingKey::CONTENT_STORAGEand itsAdminSettingalias,SetupWizardService::{getContentStorage,setContentStorage,hasGroupfolderApp}and the unusedIAppManager.GET /api/admin/settingsreturns twelve keys (nolaunchpad.content_storage);PUTno longer takeslaunchpadContentStorage.occ launchpad:setupno longer needsstorage_backendand prints that an old field was ignored. A storedcontent_storagerow stays in the table, unread; no migration. Specssetup-wizard(REQ-WIZ-003 removed, steps renumbered) andadmin-settings(REQ-ASET-001) amended. No matrix row.Built, still open for a live check
lib/Activity/Settings/), mail on for shared and published, off for updated and acknowledged, registered inappinfo/info.xml(validated against Nextcloud'sapp-info.xsd), labels in all 37 locales. Row e-digest moves tobuilding. Task 5 needs the live instance.skippedon every development push run, so it waits for the live pass. The two "left for later" items became a Follow-up note.t('mydash'calls, the lint guard is wired). Task 7 is a Dutch-locale look in a live session.Still owed (live recipes)
SELECT amq_type, amq_affecteduser FROM oc_activity_mq WHERE amq_appid = 'launchpad'shows onedashboard_sharedrow for B, and editing the dashboard queues nodashboard_updatedrow./,/store,/reports,/features-roadmap,/flowsand/dashboards/<id>under both/apps/launchpad/and/index.php/apps/launchpad/; each renders its page;tests/e2e/app-chrome.spec.tspasses.nlsession, the admin Health panel and the widget context menu show Dutch text.Skipped
Checks
Run once on head 7f5c681 (origin/development f7b9192 merged in), through
with-slot.sh:COMPOSER_PROCESS_TIMEOUT=0 composer check:strict: exit 0 (PHPUnit 1954 tests, 14 skipped)npm run lint: exit 0 (includes check:manifest, lint:initial-state, lint:translation-domain)npm run test(Vitest): exit 0, 119 files, 962 testscheck:manifest0,check:schema-l10n0,check:l10n-parity0,phpmetrics0npm run format: exit 1 onsrc/__tests__/App.navigationPanel.spec.jsonly, a file this PR does not touch; development's own push run is red on the same jobsrc/manifest.json(unchanged here):/setup/steps/1has a property the schema no longer allows, and the Reports entry sits insettings, notfooter. gate-19 is advisory: the new scenarios carry@e2e excludebecause they are server contracts.SetupWizardServiceTest,AdminControllerSetupWizardTest,AdminSettingKeyTest,AdminSettingsServiceTest,SetupCommandTestandActivitySettingsTestfailed before the code changed.Inherited findings
t('launchpad', …)strings insrc/have no catalogue key (found while verifying the l10n change); not part of this PR.openspec validate --specs --stricton development as well (same 9 here).@spectags inAdminSetting.php,SetupWizardService.php,SetupCommand.phpare on lines this PR did not touch.