You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2026/08/04 18:47:49 UTC

(causeway) 18/22: CAUSEWAY-3910: record completed synthetic navigation reconciliation

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 38ed0c4fd556a150ac950246628079f011a49b15
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Aug 4 17:18:02 2026 +0100

    CAUSEWAY-3910: record completed synthetic navigation reconciliation
---
 openspec/reconciliation/maintenance-branch/ledger.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/openspec/reconciliation/maintenance-branch/ledger.md b/openspec/reconciliation/maintenance-branch/ledger.md
index ff5d7e7411e..db2b5ca2ac4 100644
--- a/openspec/reconciliation/maintenance-branch/ledger.md
+++ b/openspec/reconciliation/maintenance-branch/ledger.md
@@ -31,7 +31,7 @@
 |---|---|---|---|---|
 | CAUSEWAY-4012, 4015, 4018 | C1 | Recording-support configuration, suppression marker, pause/resume events, fixture suppression, and helper suppression reconciled | Adapt | Completed by `reconcile-command-recording-core-policy` |
 | CAUSEWAY-4012, 4033 | C2 | Recording-aware safe-action and authoritative property-edit command-publishing policy reconciled | Adapt | Completed by `reconcile-recording-aware-publishing` |
-| CAUSEWAY-4019, 4020, 4021, 4034, 4038, 4039 | C3, C4b | Synthetic selector/navigation concepts absent | Adapt | `reconcile-synthetic-command-navigation` |
+| CAUSEWAY-4019, 4020, 4021, 4034, 4038, 4039 | C3, C4b | Synthetic parented-collection selectors, scalar-reference navigation, and runtime return behavior reconciled | Adapt | Completed by `reconcile-synthetic-command-navigation` |
 | CAUSEWAY-4030, 4034, 4039 | C4a | Scalar, bookmarkable view-model, and singleton-container result capture reconciled | Adapt | Completed by `reconcile-command-result-metadata` |
 | CAUSEWAY-4010, 4024 | D1 | Result-bearing transfer DTOs, bookmark metadata, deep copying, and multi-document YAML foundations reconciled | Adapt | Completed by `reconcile-command-result-metadata` |
 | CAUSEWAY-4042 | D2 | `InteractionAdvisorPolicy` absent | Adapt | `reconcile-command-replay-mapping` |
@@ -52,6 +52,7 @@
 | `reconcile-command-recording-core-policy` | C1 | `openspec/specs/command-recording-control/spec.md` | `openspec/changes/archive/2026-08-04-reconcile-command-recording-core-policy/` | Planning `1b7f593e9ef`; implementation `2ddd9bc37fd`; archive `1771c2e17e9`; focused Maven tests passed |
 | `reconcile-command-result-metadata` | C4a, D1 | `openspec/specs/command-result-metadata/spec.md` | `openspec/changes/archive/2026-08-04-reconcile-command-result-metadata/` | Planning `2d386a8c4db`; implementation `79b093c2cfb`; archive `4a481394175`; focused and aggregate Maven tests passed |
 | `reconcile-recording-aware-publishing` | C2 | `openspec/specs/recording-aware-command-publishing/spec.md` | `openspec/changes/archive/2026-08-04-reconcile-recording-aware-publishing/` | Planning `fc74666a15e`; implementation `35f1b39b3a7`; archive `37f6db329ab`; focused and aggregate Maven tests passed |
+| `reconcile-synthetic-command-navigation` | C3, C4b | `openspec/specs/synthetic-command-navigation/spec.md` | `openspec/changes/archive/2026-08-04-reconcile-synthetic-command-navigation/` | Planning `9194e8317f8`; implementation `42b9ecbb433`; archive `ea0a1b8b4c1`; focused and affected aggregate Maven tests passed |
 
 ## Resolved questions
 
@@ -61,13 +62,13 @@
 | Commandlog pause/resume nesting is application-context-wide and maintained with atomic pause depth. | C1 | `reconcile-command-recording-core-policy/design.md` and `CommandLogPauseStateTest` |
 | Result capture accepts every bookmarkable single result, including view models, while replay stability remains a downstream policy decision. | C4a, D1 | `reconcile-command-result-metadata/design.md` in the archived change |
 | Recording support broadens publishing through the normal facet lifecycle; explicit safe-action disablement remains an opt-out, while property edits remain recording-eligible even when explicitly disabled so replay sequences stay complete. | C2 | `reconcile-recording-aware-publishing/design.md` and `RecordingAwareCommandPublishingFacetTest` |
+| Causeway 4 installs synthetic navigation actions through an `A0_BEFORE_BUILTIN` metamodel post-processor so later standard action processing observes them. | C3, C4b | `reconcile-synthetic-command-navigation/design.md` in the archived change and `SyntheticNavigationActionTest` |
 
 ## Open questions
 
 | Question | Affected nodes | Resolution point |
 |---|---|---|
 | Can the Causeway 4 Spring context become unavailable during `ServiceRegistryDefault.select()` in metamodel disposal? | CAUSEWAY-4002 | Separate lifecycle investigation before core work is declared complete |
-| Which current Causeway 4 metamodel post-processor should install synthetic actions? | C3 | Synthetic-navigation design |
 | Can replay mapping SPI remain entirely in commandlog applib, or does command executor integration require a narrower core hook? | D2, M1 | Replay-mapping design |
 | How should persistent mapping selection work when both JPA and JDO modules are visible? | M3 | Persistent-mapping design |
 | How will migration from separate `CommandExportManager` and `CommandReplayManager` view-model mementos be handled? | P2 | Unified-manager design |