Repository navigation
App Space: parallel paths within a track (fork lanes + free-order clusters) (#2887) - #2888
Merged
Merged
Conversation
release v1.40.4 DEV to main promotion
…usters) Models parallelism within a track entirely on the existing schema: shared itemOrder = parallel; 2+ GROUP rows at one Order = side-by-side branch lanes; N TUTORIAL rows at one Order = free-order cluster. Per-lane reward via GROUP+prize on the same CompletionPathItems row (resolver appends a synthetic CHECKPOINT at read time); join reward via a downstream CHECKPOINT. No schema change.
…ze in app-space payload
Add test/e2e/app-space-parallel.spec.ts: post-deploy smoke spec that loads /app-space/ and, when a fork track is seeded on the env, asserts two .lane columns in the fork segment, a .lane__name label on each, and at least one .step--locked downstream item (the join checkpoint locked for anonymous visitors). Self-skips without SMOKE_BASE_URL (repo e2e convention, #1338). Admin editor verification (Part A, read-only): - itemOrder has no @assert.unique constraint on CompletionPathItems (db/schema.cds) and is an editable integer column with no uniqueness validator in the Fiori Elements table — duplicate Order values for parallel rows are freely settable. - prize_ID has no conditional @UI.Hidden tied to taskType; the Prize column is visible for every row type including GROUP items — group + prize authoring on one row is fully supported. No admin code change required.
…llel-design # Conflicts: # hugo-apps/src/app-space/AppSpace.vue
This was referenced Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2887.
What
A single App Space track can now express parallelism, modeled entirely on the existing schema (no
db/schema.cdschange — segments derived at read time):itemOrder= parallel. Items at the same Order form a parallel segment.Completion rule = where the Prize lives (no new config)
prizeon the same CompletionPathItems row → resolver appends a synthetic CHECKPOINT at that lane's end → that branch alone earns it.prize) at a higher Order → unlocks only when all lanes complete (join).How it's built (9 commits, TDD, per-task reviewed)
classifyPathSegments→buildPathSegments(fork lanes + synthetic prize + Group-title labels) →annotateUnlocked(server-side gating, composes with App Space completion time window #2866 out-of-window + Field at the mission path level that temporarily disables a path #2864 temporarily-unavailable).getEventProgress+buildPathItemsuntouched — linear tracks unchanged.app-space-gating.tsprefers the serverunlockedflag;AppSpace.vuerenders fork lanes side-by-side (fork/join connectors) + any-order clusters, and recomputes track aggregates by the authored rule (not flat all-complete).SMOKE_BASE_URL). Admin editor verified: duplicate Order + GROUP+Prize already authorable, no change needed.Docs
docs/superpowers/specs/2026-10-22-app-space-parallel-paths-design.mddocs/superpowers/plans/2026-10-22-app-space-parallel-paths.mdTesting status
Known follow-ups (non-blocking, from final review)
isTrackCompletekeys off any unlocked checkpoint — correct for terminal checkpoints (today's only shape); a non-terminal checkpoint would mark complete early. Restrict to highest-order checkpoint.temporarilyUnavailable(children hardcoded false upstream; fail-safe — items stay navigable). Needs a server-side lane-level flag or child propagation.