Skip to content

docs(intent): the lock a document holds reaches its lines - #180

Merged
delchev merged 1 commit into
masterfrom
docs/intent-child-lock
Aug 15, 2026
Merged

docs(intent): the lock a document holds reaches its lines#180
delchev merged 1 commit into
masterfrom
docs/intent-child-lock

Conversation

@delchev

@delchev delchev commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Companion to eclipse-dirigible/dirigible#6739 (fixes eclipse-dirigible/dirigible#6695).

The DSL reference described a composition child as "a different entity with its own generated controller - which already accepts the writes", presenting as intended what was a hole: a line of an ISSUED invoice could be created, edited or deleted over REST, and because a line write resums the header, that rewrote the document's own totals — after the number was stamped, the immutable PDF snapshot taken and the journal entry posted from them. The generated UI forbade it; the server did not.

Two sections change:

  • immutableWhen / immutable gains the paragraph that the lock reaches the document's lines, with the 409 now returned by the child's own controller on every REST surface (power, partner, personal), and the pointer to the opt-out.
  • locksWithMaster stops describing the child endpoint as permissive by nature: one declaration governs the affordance and the endpoint together, so the screen and the server cannot disagree, and engine-level writers stay exempt because they go through the repository rather than a controller — which is what keeps flow-generated corrections working.

🤖 Generated with Claude Code

The DSL reference described a composition child as "a different entity with its own
generated controller - which already accepts the writes", presenting as intended what was
a hole: a line of an ISSUED invoice could be created, edited or deleted over REST, and
because a line write resums the header, that rewrote the document's own totals - after the
number was stamped, the immutable PDF snapshot taken and the journal entry posted from
them. The generated UI forbade it; the server did not.

Documents the guard now generated on every REST surface (power, partner, personal), the
one declaration that governs both halves so the screen and the server cannot disagree, and
the engine writers that stay exempt because they go through the repository rather than a
controller - which is what makes flow-generated corrections still possible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.

intent: immutableWhen does not reach composition children, so a line-item write rewrites a locked document's totals over REST

1 participant