Skip to content

feat: OpenSpec specs for 10 Nextcloud deep integration surfaces#980

Open
rubenvdlinde wants to merge 3 commits intodevelopmentfrom
feat/nextcloud-integrations
Open

feat: OpenSpec specs for 10 Nextcloud deep integration surfaces#980
rubenvdlinde wants to merge 3 commits intodevelopmentfrom
feat/nextcloud-integrations

Conversation

@rubenvdlinde
Copy link
Contributor

@rubenvdlinde rubenvdlinde commented Mar 24, 2026

Summary

  • Full OpenSpec artifacts (proposal, design, spec, tasks) for 10 Nextcloud integration changes
  • All specs live in OpenRegister — consuming apps register via events (no code duplication)
  • ~3,300 lines of specs, ~337 GIVEN/WHEN/THEN scenarios, ~329 tasks

Changes

Change Description Spec Scenarios Tasks
action-registry Centralized action registration with APCu caching 46 14
files-sidebar-tabs Entities/Objects/Actions tabs in Files sidebar 30+ 11
file-actions Right-click file actions from consuming apps 50+ 88
mail-sidebar Entities/Objects/Actions in Mail message detail 30+ 55
mail-smart-picker Smart Picker reference provider for Mail/Text/Talk 24 22
contacts-actions ContactsMenu integration with entity matching 25+ 30
activity-provider Centralized activity stream for all apps 26 42
calendar-provider Object dates as calendar events 35+ 15
workflow-operations Nextcloud Flow automation operations 33 23
profile-actions User profile link actions 38 29

Architecture

Same pattern as existing DeepLinkRegistrationEvent: OpenRegister owns the integration, consuming apps (Procest, Pipelinq, DocuDesk, etc.) register via event listeners.

Recommended implementation order

  1. action-registry (foundation)
  2. files-sidebar-tabs + file-actions
  3. mail-smart-picker
  4. mail-sidebar
  5. Rest as needed

Test plan

  • Review each spec for completeness and accuracy
  • Verify GIVEN/WHEN/THEN scenarios cover edge cases
  • Confirm task breakdowns are implementable
  • Check dependency chains between changes

rubenvdlinde and others added 2 commits March 24, 2026 06:47
Proposals for centralized integration between OpenRegister and Nextcloud
surfaces (Files, Mail, Contacts, Calendar, Activity, Workflow, Profile).

Changes:
- action-registry: Core event-based action registration with APCu caching
- files-sidebar-tabs: Entities/Objects/Actions tabs in Files sidebar
- file-actions: Right-click context menu actions from consuming apps
- mail-sidebar: Entities/Objects/Actions in Mail message detail
- mail-smart-picker: Smart Picker reference provider for Mail/Text/Talk
- contacts-actions: ContactsMenu integration with entity matching
- activity-provider: Centralized activity stream for all consuming apps
- calendar-provider: Object dates as calendar events
- workflow-operations: Nextcloud Flow automation operations
- profile-actions: User profile link actions with entity mapping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…hanges

Design docs, detailed specs (GIVEN/WHEN/THEN), and task breakdowns for:
- action-registry: 444-line spec, 46 scenarios, 14 tasks
- files-sidebar-tabs: 251-line spec, 30+ scenarios, 11 tasks
- file-actions: 435-line spec, 50+ scenarios, 88 tasks
- mail-sidebar: 442-line spec, 30+ scenarios, 55 tasks
- mail-smart-picker: 236-line spec, 24 scenarios, 22 tasks
- contacts-actions: 261-line spec, 25+ scenarios, 30 tasks
- activity-provider: 265-line spec, 26 scenarios, 42 tasks
- calendar-provider: 382-line spec, 35+ scenarios, 15 task groups
- workflow-operations: 267-line spec, 33 scenarios, 23 tasks
- profile-actions: 343-line spec, 38 scenarios, 29 tasks

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 8b0815b
Branch 980/merge
Event pull_request
Generated 2026-03-24 11:02 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/23486051423

Summary

Group Result
PHP Quality FAIL
Vue Quality PASS
Security PASS
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs FAIL
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (586 total)

Metric Count
Approved (allowlist) 585
Approved (override) 1
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

@github-actions
Copy link
Contributor

Quality Report

Repository ConductionNL/openregister
Commit 58db7ca
Branch 980/merge
Event pull_request
Generated 2026-03-25 12:44 UTC
Workflow Run https://github.com/ConductionNL/openregister/actions/runs/23541520646

Summary

Group Result
PHP Quality PASS
Vue Quality PASS
Security PASS
License PASS
PHPUnit SKIP
Newman SKIP
Playwright SKIP

PHP Quality

Tool Result
lint PASS
phpcs PASS
phpmd PASS
psalm PASS
phpstan PASS
phpmetrics PASS

Vue Quality

Tool Result
eslint PASS
stylelint PASS

Security

Ecosystem Result
composer PASS
npm PASS

License Compliance

Ecosystem Result
composer PASS
npm PASS

composer dependencies (147 total)

Metric Count
Approved (allowlist) 146
Approved (override) 1
Denied 0

npm dependencies (595 total)

Metric Count
Approved (allowlist) 592
Approved (override) 3
Denied 0

PHPUnit Tests

PHPUnit tests were not enabled for this run.

Integration Tests (Newman)

Newman integration tests were not enabled for this run.

E2E Tests (Playwright)

Playwright E2E tests were not enabled for this run.


Generated automatically by the Quality workflow.

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants