Skip to content

[ADR-161] Layout customization backend service#138

Draft
jodavis wants to merge 5 commits intomainfrom
feature/ADR-161-cusrtomization-service
Draft

[ADR-161] Layout customization backend service#138
jodavis wants to merge 5 commits intomainfrom
feature/ADR-161-cusrtomization-service

Conversation

@jodavis
Copy link
Copy Markdown
Owner

@jodavis jodavis commented Apr 7, 2026

Working PR for a cloud backend that enables administrators to create, edit, compile, and publish remote control layouts for the AdaptiveRemote client application. Administrators edit layouts via a web editor; the backend stores, compiles, validates, and distributes them; client applications download and cache layouts and update automatically when new versions are published.

This epic covers the backend services only. The web editor UI, client-side layout integration, CI/CD deployment, and load testing are covered by related epics ADR-162 through ADR-165.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

Test Results

403 tests  +2   403 ✅ +2   2m 23s ⏱️ +20s
 12 suites +2     0 💤 ±0 
 12 files   +2     0 ❌ ±0 

Results for commit 72495aa. ± Comparison against base commit 3cb3047.

This pull request removes 3 and adds 4 tests. Note that renamed tests count towards both.
,False)
AdaptiveRemote.Services.ProgrammaticSettings.PersistSettingsTests ‑ PersistSettings_Set_ValidatesKeyNameAsync (Hello
AdaptiveRemote.Services.ProgrammaticSettings.PersistSettingsTests ‑ PersistSettings_Set_ValidatesValueAsync (Invalid
AdaptiveRemote.Backend.ApiTests.Features.CompiledLayoutServiceEndpointsFeature ‑ Get active compiled layout
AdaptiveRemote.Backend.ApiTests.Features.HealthEndpointsFeature ‑ Get service health status
AdaptiveRemote.Services.ProgrammaticSettings.PersistSettingsTests ‑ PersistSettings_Set_ValidatesKeyNameAsync (Hello
,False)
AdaptiveRemote.Services.ProgrammaticSettings.PersistSettingsTests ‑ PersistSettings_Set_ValidatesValueAsync (Invalid
,False)

♻️ This comment has been updated with latest results.

* ADR-166: Add AdaptiveRemote.Contracts shared library and solution filters

- Add AdaptiveRemote.Contracts project (net10.0, no platform-specific dependencies)
  containing all layout definition DTOs, enums, and LayoutContractsJsonContext
  from the spec's Shared Contracts section:
  CommandType enum, ICommandProperties interface, LayoutElementDto hierarchy
  (compiled), RawLayoutElementDto hierarchy (raw), RawLayout/CompiledLayout/
  PreviewLayout top-level records, ValidationIssue/ValidationResult records,
  and source-generated LayoutContractsJsonContext for consistent serialization
  across all consumers including Native AOT Lambda functions.
- Add AdaptiveRemote.Contracts to AdaptiveRemote.sln with full build configurations.
- Reference AdaptiveRemote.Contracts from AdaptiveRemote.App.
- Add client.slnf and backend.slnf solution filters.
- Update _doc_Projects.md to document the new shared contracts project.

https://claude.ai/code/session_01T3tonn7C9F6TYbqH23KmG1

* Address PR review comments

- Remove Action from CommandType enum (it's a WPF adapter, not a command type)
- Change type discriminator from "type" to "\$type" on both LayoutElementDto and
  RawLayoutElementDto to avoid conflict with the behavioral Type property on
  CommandDefinitionDto and RawCommandDefinitionDto
- Move RawLayout into RawLayoutElementDto.cs, CompiledLayout into LayoutElementDto.cs,
  PreviewLayout into its own PreviewLayout.cs; delete Layouts.cs

https://claude.ai/code/session_01T3tonn7C9F6TYbqH23KmG1

---------

Co-authored-by: Claude <noreply@anthropic.com>
@jodavis jodavis marked this pull request as ready for review April 8, 2026 16:57
@jodavis jodavis marked this pull request as draft April 8, 2026 16:57
Claude AI and others added 2 commits April 8, 2026 11:39
* ADR-167: Create CompiledLayoutService with health and layout endpoints
* ADR-167: Add docker-compose and API integration tests infrastructure
* ADR-167: Fix API test path resolution and assertions - all API tests passing
* ADR-167: Address code review comments - use repository pattern, nameof, error logging, proper test assertions

Co-authored-by: anthropic-code-agent[bot] <242468646+Claude@users.noreply.github.com>
Co-authored-by: jodavis <6740581+jodavis@users.noreply.github.com>
…o fixed the timeout so it doesn't take 2.5 minutes to wait 30 seconds.
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