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/06/08 10:34:28 UTC

(causeway) 08/17: CAUSEWAY-4026: archives replayable command exportability change

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

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

commit 0e89cd62ae35b07dbb11e476e39067d59e103bf4
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jun 8 10:33:45 2026 +0100

    CAUSEWAY-4026: archives replayable command exportability change
---
 .../.openspec.yaml                                 |  0
 .../design.md                                      |  0
 .../proposal.md                                    |  0
 .../specs/command-export-known-targets/spec.md     |  0
 .../specs/replayable-command-exportability/spec.md |  0
 .../tasks.md                                       |  0
 .../specs/command-export-known-targets/spec.md     | 48 ++++++++++++++++++++++
 .../specs/replayable-command-exportability/spec.md |  7 +++-
 8 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/openspec/changes/add-replayable-command-exportability/.openspec.yaml b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/.openspec.yaml
similarity index 100%
rename from openspec/changes/add-replayable-command-exportability/.openspec.yaml
rename to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/.openspec.yaml
diff --git a/openspec/changes/add-replayable-command-exportability/design.md b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/design.md
similarity index 100%
rename from openspec/changes/add-replayable-command-exportability/design.md
rename to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/design.md
diff --git a/openspec/changes/add-replayable-command-exportability/proposal.md b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/proposal.md
similarity index 100%
rename from openspec/changes/add-replayable-command-exportability/proposal.md
rename to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/proposal.md
diff --git a/openspec/changes/add-replayable-command-exportability/specs/command-export-known-targets/spec.md b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/specs/command-export-known-targets/spec.md
similarity index 100%
rename from openspec/changes/add-replayable-command-exportability/specs/command-export-known-targets/spec.md
rename to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/specs/command-export-known-targets/spec.md
diff --git a/openspec/changes/add-replayable-command-exportability/specs/replayable-command-exportability/spec.md b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/specs/replayable-command-exportability/spec.md
similarity index 100%
copy from openspec/changes/add-replayable-command-exportability/specs/replayable-command-exportability/spec.md
copy to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/specs/replayable-command-exportability/spec.md
diff --git a/openspec/changes/add-replayable-command-exportability/tasks.md b/openspec/changes/archive/2026-06-08-add-replayable-command-exportability/tasks.md
similarity index 100%
rename from openspec/changes/add-replayable-command-exportability/tasks.md
rename to openspec/changes/archive/2026-06-08-add-replayable-command-exportability/tasks.md
diff --git a/openspec/specs/command-export-known-targets/spec.md b/openspec/specs/command-export-known-targets/spec.md
index e9ee6c31398..a3ad4400660 100644
--- a/openspec/specs/command-export-known-targets/spec.md
+++ b/openspec/specs/command-export-known-targets/spec.md
@@ -197,3 +197,51 @@ The system MUST NOT block additional commands while recording merely because the
 - **WHEN** the export manager validates the selected command sequence
 - **THEN** the scalar parameter does not need to be known as an export target
 
+
+### Requirement: Exportability indicator uses export validation context
+When command-log recording support is `ENABLED`, the exportability property for replayable commands in the export manager SHALL use the same known target and known reference-parameter rules as the export action.
+When command-log recording support is `DISABLED`, the exportability property SHALL be `null` because exportability is undefined without command-log recording support.
+The exportability property SHALL evaluate target and reference-parameter knowledge using the export manager baseline and current command export ordering.
+The exportability property SHALL treat only commands earlier than or equal to the evaluated command as available for validating that command.
+The exportability property MUST NOT require the user to invoke export before receiving this validation feedback.
+
+#### Scenario: Earlier result makes current command exportable
+- **GIVEN** command-log recording support is `ENABLED`
+- **AND** an export manager baseline is set
+- **AND** an earlier command at or after the baseline has result bookmark `demoCustomer:1`
+- **AND** a later replayable action command targets bookmark `demoCustomer:1`
+- **WHEN** the system computes exportability for the later replayable command in the export manager commands collection
+- **THEN** the replayable command exportability property is `true`
+
+#### Scenario: Unknown target makes current command non-exportable
+- **GIVEN** command-log recording support is `ENABLED`
+- **AND** an export manager baseline is set
+- **AND** a replayable action command targets bookmark `demoCustomer:1`
+- **AND** the target bookmark `demoCustomer:1` is not a menu service root
+- **AND** no earlier command at or after the baseline has result bookmark `demoCustomer:1`
+- **WHEN** the system computes exportability for the replayable command in the export manager commands collection
+- **THEN** the replayable command exportability property is `false`
+
+#### Scenario: Later result does not make current command exportable
+- **GIVEN** command-log recording support is `ENABLED`
+- **AND** an export manager baseline is set
+- **AND** a replayable action command targets bookmark `demoCustomer:1`
+- **AND** a later command in export order has result bookmark `demoCustomer:1`
+- **WHEN** the system computes exportability for the replayable action command in the export manager commands collection
+- **THEN** the replayable command exportability property is `false`
+
+#### Scenario: Earlier invalid command does not poison later command exportability
+- **GIVEN** command-log recording support is `ENABLED`
+- **AND** an export manager baseline is set
+- **AND** an earlier replayable action command is not exportable because it targets unknown bookmark `demoCustomer:1`
+- **AND** a following finder command returns bookmark `demoCustomer:1`
+- **AND** a later replayable action command targets bookmark `demoCustomer:1`
+- **WHEN** the system computes exportability for the later replayable action command in the export manager commands collection
+- **THEN** the later replayable command exportability property is `true`
+
+#### Scenario: Disabled recording support makes exportability undefined
+- **GIVEN** command-log recording support is `DISABLED`
+- **AND** an export manager baseline is set
+- **AND** a replayable action command targets bookmark `demoCustomer:1`
+- **WHEN** the system computes exportability for the replayable command in the export manager commands collection
+- **THEN** the replayable command exportability property is `null`
diff --git a/openspec/changes/add-replayable-command-exportability/specs/replayable-command-exportability/spec.md b/openspec/specs/replayable-command-exportability/spec.md
similarity index 92%
rename from openspec/changes/add-replayable-command-exportability/specs/replayable-command-exportability/spec.md
rename to openspec/specs/replayable-command-exportability/spec.md
index 6ccaf68225e..2f298364e84 100644
--- a/openspec/changes/add-replayable-command-exportability/specs/replayable-command-exportability/spec.md
+++ b/openspec/specs/replayable-command-exportability/spec.md
@@ -1,5 +1,10 @@
-## ADDED Requirements
+# replayable-command-exportability Specification
 
+## Purpose
+
+Indicates whether a replayable command is currently exportable in the command export manager context.
+
+## Requirements
 ### Requirement: Replayable command exposes exportability state
 A replayable command SHALL expose a nullable Boolean exportability property.
 When export-manager context is available, the property SHALL be `true` if the command is exportable at its current point in the export-manager command ordering.