Conversation
… a sender Signed-off-by: dada-yan <BinjunYann@gmail.com>
Signed-off-by: dada-yan <BinjunYann@gmail.com>
…ments Signed-off-by: dada-yan <BinjunYann@gmail.com>
Signed-off-by: dada-yan <BinjunYann@gmail.com>
|
The content here is decision material — it states a policy and asks maintainers to approve it — and the thinking in it is good. My objection is only about where it lives.
Please give this its own numbered record in #832 in this same batch is the pattern to copy: it moved its reasoning into One thing that is not my call and that I have flagged for the maintainer: whether the executable prototype itself belongs in the repository. |
|
Decision on the committed prototype directories, so all three of these can move at once: the conclusions belong in a numbered record; the harness stays out of the repository. The test we are applying is not "prototype versus production". It is: after the decision is made, will anyone run this again?
There is a second reason, and it is the stronger one: an executable specification that is not the implementation is a second source of truth. This is the thing the codebase avoids everywhere else. 0032 refuses to store an expression as a string and evaluate it at run time; the rule model is structured precisely so that what the page shows is generated from what runs and cannot drift from it. A policy module that encodes the rules beside the validator rather than inside it is that same drift, with the added property that nothing will ever fail when the two disagree. So: please lift the reasoning and the decisions requested into a numbered record under None of this is a judgement on the work itself. The analysis is good and the experiments clearly did their job; the argument is only about what survives them. Applied to this PR: The identity and fault-boundary model is the valuable part, and it reads as decision material — put it in the record. |
…otocol Signed-off-by: dada-yan <BinjunYann@gmail.com>
…implementation. Signed-off-by: dada-yan <BinjunYann@gmail.com>
|
This is still marked as a draft, so I have not merged it — a draft is your signal that it is not finished, and flipping that is your call rather than mine. From my side the rework answers everything I raised: the reasoning is now a numbered record with rows in both index tables, the accepted record carries a dated revision note pointing at it, and the committed harness is gone. CI is green on all four checks and it merges cleanly onto Mark it ready for review when you consider it done and I will merge it. |
Signed-off-by: dada-yan <BinjunYann@gmail.com>
A synchronous run-then-record cannot distinguish an unsent action from a remote side effect whose response was lost. ADR 0050 records the proposed execution identity, revision-bound preview, original-flow dispatch grant and uncertain outcome, including why retries and recovery takeover are unsafe without another contract.
This revision is documentation-only. The Python protocol model, tests and requirements file were archived outside the repository and removed from the PR tree. Both decision indexes now contain 0050, and 0034 has a dated note at its synchronous-run boundary. No production schema, sender, route or recovery behavior is introduced.
Validation at
8f3d189d46478f437df57b4a823556dfc493dcbfagainst dev69560db5969fae8def8c4e84b7572d841e1dca57: diff scope, two index entries, relative links, contextual revision note, proposed status and absence of executable scaffolding all passed. No fresh Rust/sender test claim is made for this documentation-only revision. The 19 model tests and mutation findings in the record are explicitly historical, tied to the original model revision.Request identity and revision binding, no automatic retry, no redirects and no recovery takeover remain proposals for maintainer review. HTTP observation remains distinct from business completion; this does not promise external exactly-once execution.
Refs #530