Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

fix: critical scaffold — importFromApp arity, version drift, deep link, double repair (C1+C3+H1+H2)#94

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/pr-a-critical-scaffold
May 28, 2026
Merged

fix: critical scaffold — importFromApp arity, version drift, deep link, double repair (C1+C3+H1+H2)#94
rubenvdlinde merged 1 commit into
developmentfrom
fix/pr-a-critical-scaffold

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

  • C1: SettingsService::loadConfiguration reads app_template_register.json and passes all 4 required args to importFromApp (was 2-arg, broken).
  • C3: HealthController and MetricsController now call appManager->getAppVersion() instead of hardcoded '0.1.0'.
  • H1: DeepLinkRegistrationListener urlTemplate changed from hash-mode (#/) to path: /apps/app-template/examples/{uuid}.
  • H2: Removed redundant registerRepairStep(InitializeSettings) from Application::register() — info.xml is the canonical registration.

Test plan

  • Fresh install: register loads correctly, no double execution
  • Health endpoint returns actual version from info.xml
  • Metrics endpoint version label reflects info.xml
  • Deep link URL has no hash fragment
  • composer check:strict passes

…ep link, double repair

- C1: SettingsService::loadConfiguration now reads app_template_register.json from disk,
  extracts info.version, and calls importFromApp(appId, data, version, force) with all 4
  required arguments. Previous 2-arg call would throw on any OpenRegister instance.
- C3: HealthController and MetricsController hardcoded version '0.1.0'. Both now inject
  IAppManager and call getAppVersion(APP_ID) so version always tracks info.xml.
- H1: DeepLinkRegistrationListener urlTemplate changed from '/apps/app-template/#/examples/{uuid}'
  to '/apps/app-template/examples/{uuid}' — hash-fragment URLs are not valid deep-link patterns
  and break OpenRegister's unified search result navigation.
- H2: Application::register() was calling both registerRepairStep(InitializeSettings) AND
  info.xml declares the same step — causing double-execution. Removed the PHP-side call;
  info.xml repair-steps is the canonical registration path.
@rubenvdlinde rubenvdlinde merged commit 95abda0 into development May 28, 2026
rubenvdlinde added a commit that referenced this pull request May 28, 2026
…ep link, double repair (#94)

- C1: SettingsService::loadConfiguration now reads app_template_register.json from disk,
  extracts info.version, and calls importFromApp(appId, data, version, force) with all 4
  required arguments. Previous 2-arg call would throw on any OpenRegister instance.
- C3: HealthController and MetricsController hardcoded version '0.1.0'. Both now inject
  IAppManager and call getAppVersion(APP_ID) so version always tracks info.xml.
- H1: DeepLinkRegistrationListener urlTemplate changed from '/apps/app-template/#/examples/{uuid}'
  to '/apps/app-template/examples/{uuid}' — hash-fragment URLs are not valid deep-link patterns
  and break OpenRegister's unified search result navigation.
- H2: Application::register() was calling both registerRepairStep(InitializeSettings) AND
  info.xml declares the same step — causing double-execution. Removed the PHP-side call;
  info.xml repair-steps is the canonical registration path.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant