Merge development into beta: OpenSpec scaffold, settings stack, and dev docs#6
Merged
WilcoLouwerse merged 7 commits intobetafrom Mar 23, 2026
Merged
Merge development into beta: OpenSpec scaffold, settings stack, and dev docs#6WilcoLouwerse merged 7 commits intobetafrom
WilcoLouwerse merged 7 commits intobetafrom
Conversation
… expectations - Add lib/Controller/SettingsController.php — settings API (index/create/load) - Add lib/Service/SettingsService.php — settings + OpenRegister integration - Add lib/Listener/DeepLinkRegistrationListener.php — deep link registration - Add lib/Repair/InitializeSettings.php — auto-import register on install - Add lib/Settings/app_template_register.json — OpenAPI 3.0 register schema - Add src/navigation/MainMenu.vue — extracted navigation sidebar component - Add src/views/settings/UserSettings.vue — user settings dialog placeholder - Add l10n/en.json and l10n/nl.json — translation stubs - Add tests/unit/Controller/SettingsControllerTest.php — 3 unit tests, 100% coverage - Add openspec/config.yaml — OpenSpec project configuration - Add project.md — project overview - Update lib/AppInfo/Application.php — register listener and repair step - Update src/App.vue — use MainMenu component instead of inline navigation - Update phpunit.xml and phpunit-unit.xml — include tests/unit/ directory - Replace appspec/ with openspec/specs/ and openspec/architecture/ - Update openspec/README.md — reflect new specs/ and architecture/ structure
… README - Add Makefile with dev-link/dev-unlink targets that create a relative symlink apps-extra/app-template -> nextcloud-app-template so Nextcloud can find the app by its ID when the repo is cloned under its GitHub name - Update README: replace appspec/ references with openspec/specs/ and openspec/architecture/, update directory structure, document make dev-link step
- Add Troubleshooting section covering blank UI (missing build) and "Could not download app" (directory name mismatch) - Clarify OpenRegister is pre-wired but optional for derived apps - Fix docker-compose path (../openregister/ not openregister/) - Note openspec/changes/ is created on first change - Add npm install && npm run build to Enable locally steps with explicit note that js/ build output is not committed - Add OpenRegister conditional note to openspec/README.md
Give the SPA catch-all route a unique name so GET /apps/app-template/ still matches the index route (duplicate Symfony names replaced the first route). Correct navigation route id to app-template.dashboard.page. Add DashboardController::catchAll delegating to page(), register /settings in the Vue router, and replace the minimal dashboard with KPI placeholders and activity panels using Conduction components. Made-with: Cursor
Made-with: Cursor
PRs targeting beta did not match pull_request branch filters, so required checks could stay pending or skip. Include beta alongside main/development. Made-with: Cursor
Author
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (100 total)
npm dependencies (215 total)
PHPUnit Tests
Code coverage: 0% (0 / 3 statements) Integration Tests (Newman)
Generated automatically by the Quality workflow.
|
rubenvdlinde
approved these changes
Mar 23, 2026
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.
Summary
openspec/app-config.json,config.yaml, architecture and specs READMEs) plusproject.mdso app-create / app-verify style tooling has a consistent layout.SettingsService, API controller, repair step for install/upgrade, deep-link registration listener, Vue user settings and navigation, and EN/NL strings.dev-linktarget, README troubleshooting and accuracy fixes, and removal of staleappspecreferences in favour ofopenspec/.SettingsController, PHPUnit config tweaks, and Newman integration smoke test against the running instance.IRegistrationContext::registerRepairStep()until thenextcloud/ocpstub used for analysis includes that API (runtime servers already expose it).Checks
quality.yml):composer install,npm ci,composer lint/phpcs/phpmd/psalm/phpstan/phpmetrics,npm run lint,npm run stylelint,composer audit,npm audit --audit-level=critical --omit=dev.docker execinmaster-nextcloud-1withphpunit-unit.xmlandXDEBUG_MODE=coverage— pass (4 tests).tests/integration/app-template.postman_collection.jsonagainsthttp://nextcloud.local— pass.license-checkerCLI like CI); rely on CI for that matrix.betaonly trigger the branch-protection workflow in GitHub Actions. The full Code Quality workflow runs on pushes todevelopmentand on PRs targetingdevelopment/main/master.Test plan
developmentafter merge-related workflows run