Checkpoint source 7 workflows and in-progress diagram authoring redesign
Rust checks / check (ubuntu-latest) (push) Canceled after 0s
Rust checks / check (windows-latest) (push) Canceled after 0s
Rust checks / check (ubuntu-latest) (push) Canceled after 0s
Rust checks / check (windows-latest) (push) Canceled after 0s
Preserve current core, source, REST, desktop, recovery, documentation and validation work, including AGENTS.md and the development summary. This is a work-in-progress checkpoint: the new compact palette has outstanding compilation errors and native acceptance; earlier passing gates retain their documented scope.
This commit is contained in:
+84
-12
@@ -155,8 +155,8 @@ Parsing, validation and query processing use snapshot workers, so this work
|
||||
does not hold the catalog lock or serialize unrelated model preparation.
|
||||
|
||||
Import accepts schema-1 JSON through the shared explicit migration adapter,
|
||||
as well as schema-2, schema-3, schema-4, schema-5 and current schema-6 JSON. Source import uses the shared language parser
|
||||
and its supported migrations. Export uses schema 6 / arcadia 6. Native JSON
|
||||
as well as schema-2, schema-3, schema-4, schema-5, schema-6 and current schema-7 JSON. Source import uses the shared language parser
|
||||
and its supported migrations. Export uses schema 7 / arcadia 7. Native JSON
|
||||
replacement accepts supported older schemas through the same explicit migration.
|
||||
Only documented query parameters are accepted. In particular, appending
|
||||
``?revision=...`` to model/source export is an error, not historical retrieval.
|
||||
@@ -169,7 +169,7 @@ A source bundle contains ``entry`` and a map of ``files``. For example::
|
||||
{
|
||||
"entry": "rescue.arcadia",
|
||||
"files": {
|
||||
"rescue.arcadia": "arcadia 6; project rescue \"Rescue\" { include \"oa/work.arcadia\"; }\n",
|
||||
"rescue.arcadia": "arcadia 7; project rescue \"Rescue\" { include \"oa/work.arcadia\"; }\n",
|
||||
"oa/work.arcadia": "// Engineering rationale\noa_activity assess \"Assess assistance\" {}\n"
|
||||
}
|
||||
}
|
||||
@@ -181,7 +181,7 @@ targets or another hosted resource. All submitted files must be reachable;
|
||||
missing files, cycles, duplicate keys, case collisions and escaping paths are
|
||||
rejected. The bundle permits at most 256 files, 32 include edges along a path,
|
||||
and 1,024 include edges in total. Model and source-byte budgets apply across
|
||||
the complete bundle, not separately per file. Current bundle syntax is source6; source3/4/5 bundles migrate explicitly while
|
||||
the complete bundle, not separately per file. Current bundle syntax is source7; source3/4/5/6 bundles migrate explicitly while
|
||||
preserving their files/includes/comments. V1/V2 single-file migration remains
|
||||
available through interchange import.
|
||||
|
||||
@@ -358,6 +358,39 @@ replacement routes as other engineering records. For example,
|
||||
The source representation uses ``sequence @alias`` references. The service
|
||||
does not execute conditions or simulate a process.
|
||||
|
||||
Caller-qualified process and chain links
|
||||
----------------------------------------
|
||||
|
||||
Schema 7 adds the closed ``RelationBody.ContextualLink`` payload::
|
||||
|
||||
{
|
||||
"ContextualLink": {
|
||||
"owner": "<caller process UUID>",
|
||||
"source": {"references": [], "occurrence": "<direct X occurrence UUID>"},
|
||||
"target": {"references": ["<R1 reference occurrence UUID>"],
|
||||
"occurrence": "<B occurrence UUID in referenced definition>"},
|
||||
"purpose": {"Precedence": {"guard": "check accepted"}}
|
||||
}
|
||||
}
|
||||
|
||||
``references`` is an ordered path of reference-occurrence IDs, never sequence
|
||||
definition IDs; at most 64entries per endpoint. The explicit owner determines
|
||||
context and source placement. ``purpose`` is exactly Precedence with string
|
||||
guard, Exchange with work-exchange UUID, or CommonWork with work UUID. Only
|
||||
Precedence contributes ordering; the other purposes preserve assembly incidence.
|
||||
Both paths empty with Precedence must use the existing SequenceLink constructor.
|
||||
Query these records with ``relations?kind=ContextualLink``. Ordinary create/edit,
|
||||
source replacement and JSON replacement share the same owner/path/purpose checks.
|
||||
|
||||
R1.B and R2.B remain separate caller contributions even if B has one definition
|
||||
UUID. Deleting a typed path/leaf/owner/purpose dependency removes the whole link;
|
||||
retargeting an invalid surviving link requires explicit repair. No path shortening,
|
||||
implicit work duplication or fallback to a whole reference is permitted. Authored
|
||||
path entries count toward the 50,000 ordered-reference budget. Resolver cache state
|
||||
does not change validity. Contextual analysis has separate 50,000 node/100,000 edge
|
||||
limits and explicitly reports incomplete expansion. See language.rst4.2.1 for
|
||||
caller-qualified diagnostics and synthetic-boundary rules.
|
||||
|
||||
Typed scenarios and message values
|
||||
----------------------------------
|
||||
|
||||
@@ -403,7 +436,7 @@ contract in the same transaction when removing a used interface allocation.
|
||||
Explicit schema1/2/3 migration preserves prior identities and typed ports. Reports
|
||||
add semantic defaults, generated interface allocations and unresolved message
|
||||
values. Old source3 bundles retain files/includes/comments during upgrade; all
|
||||
current exports use schema6/source6. Reading an old envelope does not write it or
|
||||
current exports use schema7/source7. Reading an old envelope does not write it or
|
||||
advance its ETag. Canonical exports omit transient migration reports.
|
||||
|
||||
Validation
|
||||
@@ -419,7 +452,7 @@ or::
|
||||
|
||||
or::
|
||||
|
||||
{"format":"source-project", "source_project":{"entry":"rescue.arcadia", "files":{"rescue.arcadia":"arcadia 6; project rescue \"Rescue\" {}"}}}
|
||||
{"format":"source-project", "source_project":{"entry":"rescue.arcadia", "files":{"rescue.arcadia":"arcadia 7; project rescue \"Rescue\" {}"}}}
|
||||
|
||||
A well-formed validation request returns 200 with ``valid`` and ``issues`` even
|
||||
if its candidate is invalid, including a model record that fails typed decoding.
|
||||
@@ -492,7 +525,7 @@ retain the accepted model, source bundle, revision and ETag. Reading a state
|
||||
view has no semantic or persistence side effects.
|
||||
|
||||
Source-6 communication and saved views
|
||||
-------------------------------------
|
||||
--------------------------------------
|
||||
|
||||
The same import, replacement and command endpoints admit OA
|
||||
``CommunicationMean { source, target, oriented, items }`` and root-level
|
||||
@@ -511,13 +544,43 @@ references from both layers; ordinary projections require the diagram's layer.
|
||||
These presentation choices preserve semantic records, routes, placements and
|
||||
the automatic port positions derived from unfiltered eligible exchanges.
|
||||
|
||||
Earlier schema/source versions reject the new constructors, category review
|
||||
Schema/source versions 1–5 reject the new constructors, category review
|
||||
facts and explicit ``view_options`` field, including an empty object. Their
|
||||
frozen readers migrate accepted content to schema/source 6 with default view
|
||||
frozen readers migrate accepted content to schema/source 7 with default view
|
||||
options. The OpenAPI document describes current records; it is not a permissive
|
||||
union of historical input formats. Source-6 integration and release acceptance
|
||||
union of historical input formats. Source-7 integration and release acceptance
|
||||
are tracked separately in the release coverage audit.
|
||||
|
||||
Explicit interface-operation identity
|
||||
-------------------------------------
|
||||
|
||||
``OccurrenceBody.Exchange.operation`` is optional. Absent/null retains ordinary
|
||||
channel semantics and is omitted in canonical output. ``{"allocation":null}``
|
||||
(or an empty object) retains explicit unresolved operation intent. A selected
|
||||
``{"allocation":"<InterfaceItemAllocation UUID>"}`` identifies that exact
|
||||
allocation, including for parameterless operations sharing one channel. These
|
||||
records are closed; unknown fields are rejected. Earlier schema/source versions
|
||||
reject the operation field even when explicitly null and reject ContextualLink
|
||||
and their new semantic facets. Migration never guesses an operation from names,
|
||||
message values or a channel's item set.
|
||||
|
||||
Selection is valid only for SA BoundaryInterface Call/Asynchronous messages.
|
||||
Core proves actual Standard component-port Requires/Provides roles, compatible
|
||||
interfaces exposing the same allocation, actual channel direction and allowed
|
||||
transmission protocol. Reply stores no operation and derives it from its exact
|
||||
Call; a separate return channel still needs its own valid carried-item/endpoint
|
||||
contract, including a void return. Selected message values use the exact operation
|
||||
signature. Unresolved intent preserves live expressions and checks their paths
|
||||
with an incomplete-signature warning; it does not substitute the channel union.
|
||||
|
||||
Allocation deletion clears selection to unresolved only within an otherwise
|
||||
valid whole candidate. Removing the sole allocation can refuse atomically while
|
||||
a channel still carries its now-unadmitted item; repair every affected channel
|
||||
explicitly in the same batch. A surviving same-item allocation may keep a channel
|
||||
valid, but is never silently selected. Reselection validates retained values
|
||||
without pruning them. The service uses the same source/history boundary as
|
||||
graphical editing. See language.rst4.3.1 for the complete contract.
|
||||
|
||||
Cross-layer transitions
|
||||
-----------------------
|
||||
|
||||
@@ -525,11 +588,19 @@ Preview accepts the shared ``TransitionRequest`` record, including direction
|
||||
(``OaToSa`` or ``SaToOa``), sources, dependency scope, mappings, selected fields,
|
||||
conflict resolutions and optional destination diagram. All fields are explicit
|
||||
in OpenAPI. At most 100 sources, 200 mappings, 200 communication endpoint
|
||||
decisions and 400 field resolutions are
|
||||
decisions, 200 operation omissions and 400 field resolutions are
|
||||
accepted. A conflict-free plan must fit the same 200-command transaction limit
|
||||
and model/source-capacity limits. A conflict-free preview also checks source
|
||||
writeback, so its commands can update the same accepted authored workspace.
|
||||
|
||||
SA→OA abstraction of explicit operation intent requires ``operation_omissions``
|
||||
(omitted means empty). Each closed record contains the selected invocation's
|
||||
``source`` UUID and a nonempty ``rationale`` string. Missing, duplicate,
|
||||
irrelevant or wrong-direction omissions reject. Reply derives its Call's
|
||||
abstraction and has no second writable operation choice. Source operation
|
||||
identity/values remain intact; target facts are mapped and validated. Preview
|
||||
and Apply enforce the same 200 omission limit for ordinary and semantic transitions.
|
||||
|
||||
OA ``CommunicationMean`` maps to an SA ``BoundaryExchange`` through an explicit
|
||||
``communication_endpoints`` array (omitted means empty). Each decision identifies
|
||||
the source communication means and both ``source_port`` and ``target_port``.
|
||||
@@ -660,7 +731,8 @@ not persist plans, tokens or review sessions.
|
||||
Requests allow 100 sources, trace choices and reviews; 200 mappings, candidates
|
||||
and accepted impacts; 5,000 canonical reference mappings; and 5,000 facet
|
||||
resolutions plus resets across all reviews. The legacy 400 prose-resolution
|
||||
limit and 200-command transaction limit still apply. Query has the same 5,000
|
||||
limit, 200 communication endpoint decisions, 200 operation omissions and
|
||||
200-command transaction limit still apply. Query has the same 5,000
|
||||
reference-map limit. Core bounded linked traversal errors remain observable as
|
||||
semantic rejection; no truncated result silently claims complete review.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user