Skip to content

M2-09: Implement deterministic preflight alignment #30

Closed

Description

@pillowtalk-Qy
Type: Core Security Implementation
Priority: P0 / trust boundary
Initial status: Blocked
Owner: Contract/Security
Depends on: #6, M2-07
Blocks: M2-10, M2-12
Writable: packages/preflight-core/src/alignment*, source-references*, tests

唯一目标

实现基于 structured Intent 和 raw-backed evidence 的纯 Alignment;它不生成最终 Decision。

固定 checks

operation, account, input asset, output asset, amountIn, slippage,
allowed protocol, recipient, approval spender, approval amount/unbounded,
unexpected funds movement, capability integrity, transaction set,
warning presence, receipt availability, coverage, ordering, state continuity

验收

[ ] 每项 stable checkId + critical flag
[ ] result 仅 PASS/FAIL/REVIEW
[ ] expected/observed typed 且 raw-linked
[ ] refs 指向 raw input
[ ] address 按 validated 20-byte identity
[ ] amount 按 integer string/BigInt
[ ] missing critical evidence = REVIEW,绝不 PASS
[ ] prose 不改变 result
[ ] pure/deterministic/immutable/offline
[ ] 每项有 PASS、FAIL、missing、invalid ref、irrelevant evidence tests

验证

pnpm --filter @moss-mini-demo/preflight-core build
pnpm vitest run packages/preflight-core/test/alignment.test.ts
pnpm test:coverage
pnpm check

Codex 指令

只实现 Alignment,不重写 Decision。每个 observed value 必须能追到 raw evidence;
缺证据只能 REVIEW。输出 check-by-check 五类测试覆盖表。

Activity

  1. added and removed
    status:blockedBlocked by an unresolved dependency
    on Aug 8, 2026
  2. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    DEPENDENCY_GATE / PASS

    Dependency evidence:

    Both direct dependencies in the Issue contract are merged and audited. Issue #30 is released from status:blocked / Project Blocked to status:ready / Project Ready.

    This gate releases planning and claim only. It is not scope confirmation, implementation authorization, QA PASS, merge permission, or evidence that any Alignment result is correct.

    DEPENDENCY_GATE_PASS / READY_FOR_CLAIM

  3. self-assigned this
    on Aug 8, 2026
  4. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    BUILDER CLAIM / SINGLE OPERATOR

    Qy claims Issue #30 as the sole implementation controller.

    • role: Builder, tester, same-controller scope reviewer, SINGLE_OPERATOR_QA, merge gate operator, and post-merge auditor
    • current main/base candidate: e468c6c035c3c35e12a0c1d7795d76d5306045eb
    • dependency gate: M2-09: Implement deterministic preflight alignment #30 (comment)
    • active implementation PRs before claim: none
    • active assigned Issue WIP before claim: none
    • Project status: In Progress
    • status label: cleared while actively owned

    No branch or worktree exists yet. The next object is a closed-path Work Plan followed by explicit SINGLE_OPERATOR_SCOPE_REVIEW and SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZED. No independent reviewer will be claimed.

    BUILDER_CLAIMED / PLANNING_IN_PROGRESS

  5. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    Work Plan - M2-09 deterministic preflight alignment

    Baseline and dependency gate

    Source hierarchy and resolved contract

    The implementation will follow, in order: the issue body and acceptance criteria, ADRs 0003/0004, the engineering plan, the issue backlog, repository package/CI conventions, and the pinned Moss contracts established by #27/#28. The following resolutions make the issue implementable without widening report schema ownership:

    1. preflight-core returns the existing strict @moss-mini-demo/report-schema Alignment shape. It will not add expected/observed/prose fields to Alignment, alter DecisionInput, or compute a final Decision.
    2. Expected and observed values live in a transient, strict, typed AlignmentInputV0_1. Its first five fields are report-source-compatible roots (intent, quotes, selection, capability, simulation); a closed observations map links typed facts back to those roots with JSON Pointer source references. The observations are evaluator inputs, not report output fields.
    3. A typed observation is trusted only when its source reference is syntactically canonical, resolves in the validated source roots, is relevant for that check under a closed allowlist, and the resolved raw value exactly equals the typed value. Caller-supplied values alone never establish PASS.
    4. Structured Intent supplies policy wherever the public schema carries it. The evaluator uses fixed v0.1 semantics for the remaining non-prose policy: omitted recipient means the Intent account; approvals must be absent or explicitly proven necessary, bounded by inputAmount, and never unbounded; warning-free means an empty proven warning set; receipt/coverage/ordering/state-continuity PASS requires an explicit proven state.
    5. When a valid input explicitly lacks/unproves evidence, or a fact has an invalid, unresolved, value-mismatched, or check-irrelevant reference, that check is REVIEW, never PASS. A proven business mismatch is FAIL; only a proven match is PASS.
    6. Invalid references are never copied into output. The affected REVIEW check receives deterministic, resolving fallback references to the relevant source artifact/availability field, preserving report-schema validity while remaining fail-closed.

    Public API

    Create package @moss-mini-demo/preflight-core with an ESM public entry exposing:

    • runtime: evaluateAlignmentV0_1(input: unknown): Alignment and AlignmentInputErrorV0_1;
    • type-only: AlignmentInputV0_1, AlignmentObservationV0_1, AlignmentCheckIdV0_1, and supporting closed fact/status types needed by M2-10;
    • no runtime import of moss-adapter, no network/filesystem/time/randomness, and no public helper that bypasses input validation.

    AlignmentInputErrorV0_1 will use stable machine-readable codes for malformed/non-JSON/unsupported contract input. Contract-invalid hostile input throws before evaluation; valid explicit evidence gaps produce REVIEW checks.

    Fixed check set and semantics

    The evaluator emits exactly these checks, in this order, with stable *-v0-1 check IDs and critical: true:

    1. operation equality between selected/requested raw operation and capability operation;
    2. account equality to intent.account;
    3. input asset equality to intent.inputAsset;
    4. output asset equality to intent.outputAsset;
    5. input amount equality to intent.inputAmount;
    6. observed slippage at or below intent.maxSlippageBps;
    7. selected/used protocol membership in intent.allowedProtocols;
    8. recipient equality to intent.recipient ?? intent.account;
    9. approval spender is absent/not-applicable or explicitly expected and equal;
    10. approval amount is absent/not-applicable or positive, bounded by intent.inputAmount, and not unbounded;
    11. observed funds movements are a subset of the raw-linked permitted movement set;
    12. capability integrity is explicitly proven matching;
    13. observed transaction target/role set exactly matches the raw-linked expected set;
    14. warning set is explicitly available and empty;
    15. required receipt set is explicitly available and complete;
    16. simulation coverage is explicitly proven complete;
    17. transaction ordering is explicitly proven preserved;
    18. state continuity is explicitly proven preserved, or raw-proven not applicable for a single transaction.

    Addresses use the public canonical EIP-55 20-byte address schema. Assets use the public Asset schema. Amounts remain canonical integer strings and are compared with BigInt; numbers are never used for asset amounts. Collections reject duplicates and are compared with deterministic canonical keys, without mutating caller input.

    Source-reference boundary

    src/source-references.ts will implement a pure RFC 6901 resolver and a closed per-check relevance table. It will:

    • allow only /intent, /quotes/<index>/raw, /selection, /capability/raw, /simulation/raw, and the public artifact availability fields needed to prove absence/unavailability;
    • reject fragments, non-canonical escapes/indexes, prototype-related segments, unresolved pointers, alignment/report-owned output paths, and later/self references;
    • require observed semantic facts to point into raw-backed evidence or explicit availability fields, while Intent references may establish expected policy;
    • validate output references again against the source roots before returning Alignment;
    • return fresh, deterministically ordered reference arrays.

    Before any schema parsing or reference resolution, the input graph will be descriptor-closed JSON-validated: no accessors, proxies with observable traps, symbols, functions, cycles/shared references, sparse arrays, non-finite numbers, negative zero, invalid Unicode/lone surrogates, or prototype pollution surface. Evaluation operates on validated fresh data and does not freeze or mutate caller-owned objects.

    Exact writable paths

    Implementation is authorized only in these paths:

    1. package.json
    2. pnpm-lock.yaml
    3. packages/preflight-core/package.json
    4. packages/preflight-core/tsconfig.build.json
    5. packages/preflight-core/src/alignment.ts
    6. packages/preflight-core/src/source-references.ts
    7. packages/preflight-core/src/index.ts
    8. packages/preflight-core/test/synthetic.ts
    9. packages/preflight-core/test/alignment.test.ts
    10. packages/preflight-core/test/source-references.test.ts
    11. packages/preflight-core/test/public-entry.smoke.mjs

    Any need to edit report-schema, decision-engine, moss-adapter, web, workflows, governance, ADRs, or any other path is scope drift and requires stopping for a revised Work Plan.

    Package and gate integration

    • Add the private ESM workspace package with a build entry matching existing package conventions.
    • Depend on @moss-mini-demo/report-schema through the workspace protocol and zod only if required for closed input composition; do not depend on or runtime-load server-only Moss adapter code.
    • Add exact root dev dependency @vitest/coverage-v8@4.1.10, matching the pinned Vitest version, and update the lockfile only through pnpm.
    • Add test:coverage for preflight-core with v8 and 100% statements/branches/functions/lines over its runtime source.
    • Add preflight-core to root build, clean typecheck preparation, package-import smoke, and test ordering.
    • Include pnpm test:coverage in pnpm check so the protected quality-gate enforces the coverage contract. No workflow or branch-protection change is planned.

    Test matrix

    Tests will be table-driven over all 18 stable check IDs. Every check receives at least:

    • proven PASS evidence;
    • proven FAIL evidence;
    • missing/unproven evidence -> REVIEW;
    • invalid/unresolved/value-mismatched reference -> REVIEW with valid fallback refs;
    • valid but irrelevant evidence reference -> REVIEW with valid fallback refs.

    Additional focused coverage will include:

    • canonical address and asset comparisons, mixed-case/noncanonical rejection;
    • integer-string and BigInt boundary cases, zero/negative/decimal/exponent/unsafe-number rejection, bounded versus max/unbounded approval;
    • optional recipient fallback, approval and continuity not-applicable proofs;
    • duplicate/reordered protocol, transaction, movement, warning, receipt, and reference sets;
    • pointer escaping/index boundaries and rejection of self/later/report-owned paths;
    • strict unknown-key rejection and hostile graph cases (getters/accessors, proxies, cycles, repeated references, sparse arrays, symbols/functions, prototype keys, non-finite/-0, malformed Unicode);
    • same valid input evaluated repeatedly yields byte-identical fresh output; mutating returned output cannot affect later calls;
    • input remains byte/descriptively unchanged and unfrozen;
    • public-entry runtime smoke proves only intended runtime exports and no import-time side effects.

    Verification sequence

    On the isolated implementation worktree and frozen HEAD:

    1. pnpm --filter @moss-mini-demo/preflight-core build
    2. focused alignment/source-reference Vitest run
    3. pnpm test:coverage
    4. pnpm check
    5. clean-worktree QA repeats the required commands at the exact accepted HEAD
    6. inspect dependency/lockfile delta, package exports, diff scope, secrets, ignored artifacts, and worktree cleanliness
    7. exact-head PR quality-gate, explicit SINGLE_OPERATOR_QA_PASS, READY_TO_MERGE, protected squash merge, merged-main quality-gate, tree-equivalence audit, issue/project closure, and branch/worktree cleanup.

    Explicit non-goals and stop conditions

    • No final Decision, decision-engine call, presentation prose, report assembly, or top-level report field changes; those belong to M2-10/M2-10: Assemble DecisionInput, PreflightReport and presentation model #31.
    • No Clear402, browser, UI, vendor, network, or deployment work.
    • No guessed Moss private internals: observations must be supplied from structured/raw evidence and proven by resolver equality.
    • Stop and revise this plan if an acceptance requirement cannot be met within the 11 authorized paths, if public report schemas must change, if the dependency/lock delta exceeds the declared coverage tool and workspace package, or if any direct dependency/audit/protection condition regresses.
  6. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    Work Plan self-review - PASS

    Reviewed the published plan byte-for-byte at SHA-256 0abf8e133a272f4dfd997994c1c1cbc6fb2e6e6a7b9c2df271b57e48de87d7f3 against the issue acceptance criteria, ADRs 0003/0004, the engineering plan, current public schemas, #27/#28 contracts, package conventions, CI, and protected-branch policy.

    • Dependency/order: PASS. M1-03: Implement fail-closed decision engine #6 and M2-07: Implement simulation and lossless evidence mapping #28 are closed, Project Done, and post-merge audited; M2-09: Implement deterministic preflight alignment #30 is the next unblocked item in the frozen batch order.
    • Trust boundary: PASS. PASS requires structured typed facts whose allowed source references resolve and whose values equal raw/public source values. Missing, invalid, irrelevant, unresolved, or mismatched provenance is fail-closed REVIEW. Prose is absent from the contract.
    • All required checks: PASS. The plan fixes all 18 required checks, stable IDs/order, critical: true, and PASS/FAIL/REVIEW semantics without producing a Decision.
    • Schema ownership: PASS. Existing strict Alignment remains the only output. No report-schema, DecisionInput, decision-engine, adapter, report top-level, or workflow edit is authorized.
    • Data correctness: PASS. EIP-55 addresses, Asset schemas, canonical integer strings/BigInt, duplicate rejection, immutable/fresh output, and deterministic ordering are explicit.
    • Source references: PASS. Canonical RFC 6901 resolution, raw/availability owner allowlists, no self/later/report-owned references, value equality, output revalidation, and safe fallback references cover invalid and irrelevant evidence without emitting invalid Alignment.
    • Hostile input: PASS. Descriptor-closed JSON validation and structured input errors cover the mandatory hostile graph classes before evaluation; explicit evidence absence remains a normal REVIEW path.
    • Tests/coverage: PASS. The plan requires the five-case matrix for every one of 18 checks, boundary/hostile/determinism/immutability/public-entry tests, 100% v8 package coverage, focused tests, pnpm test:coverage, and full pnpm check in implementation and clean QA.
    • Dependencies/lock: PASS. The only external dependency delta is exact @vitest/coverage-v8@4.1.10, matched to existing Vitest; the workspace package uses existing report-schema/zod contracts. Lock changes are declared and auditable.
    • Scope: PASS. Eleven writable paths are closed and sufficient. Anything else triggers a revised plan before editing.
    • Merge safety: PASS. Exact-head CI, clean single-operator QA, readiness, protected squash merge, merged-main gate, tree equivalence, post-merge audit, closure, and cleanup are explicit.

    No ambiguity or missing prerequisite requires a plan revision. The published hash is accepted as the implementation contract.

    Next authorized state: create the sole branch codex/issue-30-deterministic-alignment and isolated worktree /Users/qy/Documents/moss-mini-demo-issue-30 from the recorded protected-main baseline.

  7. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    Implementation Report - M2-09 deterministic preflight alignment

    Frozen implementation

    • Issue: M2-09: Implement deterministic preflight alignment #30 M2-09: Implement deterministic preflight alignment.
    • Baseline: protected main e468c6c035c3c35e12a0c1d7795d76d5306045eb.
    • Branch: codex/issue-30-deterministic-alignment.
    • Worktree: /Users/qy/Documents/moss-mini-demo-issue-30.
    • Frozen implementation commit: 263f7cfb30d54bf21482a1779335fba466188817.
    • Worktree is clean at the frozen commit. This is an implementation report only; it is not an independent-review or QA claim.

    Delivered contract

    • Added private ESM package @moss-mini-demo/preflight-core with public runtime exports evaluateAlignmentV0_1 and AlignmentInputErrorV0_1; all supporting types are type-only.
    • Evaluator emits exactly the fixed 18 *-v0-1 Alignment checks in deterministic order, all critical: true, and only PASS/FAIL/REVIEW. It never builds a final Decision and does not alter report-schema or DecisionInput.
    • Added strict transient typed observations for operation, account/assets/amount/slippage/protocol/recipient, approval spender/amount, permitted/observed movement sets, capability integrity, transaction targets, warnings, receipts, coverage, ordering, and state continuity.
    • AVAILABLE facts require exact equality between the typed value and a resolving, canonical, check-relevant raw pointer. Missing/failed/unprovable, invalid/unresolved, value-mismatched, and same-owner/cross-owner irrelevant evidence all fail closed to REVIEW with deterministic valid fallback references.
    • Added descriptor-closed graph validation for accessors, proxies, cycles/shared references, sparse arrays, symbols/functions, prototype-related keys, lone surrogates, non-finite/-0 values, and malformed descriptors. Evaluation is synchronous, pure, offline, deterministic, fresh-output, and non-mutating.
    • Enforced canonical EIP-55 addresses/assets, integer-string amounts with BigInt comparison, duplicate-free semantic sets, bounded/non-unbounded approvals, and public simulation evidence consistency.
    • Added package build/typecheck/import/test ordering and root test:coverage; pinned @vitest/coverage-v8@4.1.10 and updated the lockfile through pnpm. pnpm check now enforces 100% preflight-core v8 statements/branches/functions/lines.

    Implementation verification

    All commands below passed on Node 22.23.1 / pnpm 11.16.0 at the frozen commit:

    • pnpm --filter @moss-mini-demo/preflight-core build
    • focused vitest alignment/source-reference suite: 167 passed
    • pnpm test:coverage: 100% statements, branches, functions, lines
    • pnpm check: 29 test files, 1056 tests passed; all package builds/typechecks/import smokes, browser bundle leakage (9 artifacts), and production health smoke passed.
    • pnpm audit --prod matches the protected-main baseline exactly: 6 pre-existing advisories (2 moderate, 4 high) under apps/web (sharp, postcss, nanoid); no new production dependency vulnerability was introduced.
    • Secret scan found no credentials or key material; the only keyword hit is an intentional hostile-input test property named secret.

    Scope audit

    The frozen commit changes exactly the 11 paths authorized by the reviewed Work Plan: root package.json, pnpm-lock.yaml, and the nine packages/preflight-core package/source/test files. No report-schema, decision-engine, moss-adapter, web, workflow, governance, ADR, vendor, or generated coverage/dist/node_modules path changed.

    Next state is the required clean single-operator QA handoff at this exact frozen HEAD.

  8. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    SINGLE_OPERATOR_QA_HANDOFF

    This is a same-operator QA handoff, not an independent reviewer claim.

    • PR: feat(preflight-core): deterministic alignment for M2-09 #76
    • Accepted/frozen head: 263f7cfb30d54bf21482a1779335fba466188817
    • Base: e468c6c035c3c35e12a0c1d7795d76d5306045eb
    • Implementation worktree: /Users/qy/Documents/moss-mini-demo-issue-30
    • Independent clean QA environment: detached /Users/qy/Documents/moss-mini-demo-issue-30-qa
    • QA environment was created directly from the frozen head with no node_modules, dist, coverage, or .next artifacts.

    QA will use Node 22.23.1 / pnpm 11.16.0, perform a frozen install, inspect the complete base-to-head diff and exact 11-path scope, reproduce raw-reference/hostile-input/high-risk boundaries, run focused 18-check matrices and 100% coverage, then run full pnpm check. Any code change or head movement invalidates this handoff and returns the issue to IMPLEMENT.

  9. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    SINGLE_OPERATOR_QA_PASS

    This is same-operator QA performed in a separate clean environment; no independent second reviewer is claimed.

    Accepted head

    Clean QA environment

    • Detached worktree: /Users/qy/Documents/moss-mini-demo-issue-30-qa.
    • Created from the accepted head with no node_modules/dist/coverage/.next artifacts.
    • pnpm install --frozen-lockfile passed on Node 22.23.1 / pnpm 11.16.0; lockfile supply-chain policy passed.
    • Transparent setup correction: the first standalone preflight-core build was attempted before its workspace dependency report-schema had a clean-worktree dist, so TypeScript could not resolve the public package. As with the established workspace package convention, QA built @moss-mini-demo/report-schema first and then repeated the exact focused commands successfully. No source change or QA finding resulted. To verify the authoritative root workflow, QA then removed both generated dist directories and coverage and ran root pnpm check from no-dist state; it passed and established the dependency order itself.

    QA evidence

    • Base-to-head diff: exactly 11 authorized paths, 3,204 additions / 6 deletions; no vendor, schema, decision-engine, adapter, web, workflow, governance, ADR, or generated path drift.
    • Focused alignment/source-reference suite: 167 passed.
    • The five required outcomes were exercised for each of all 18 checks: PASS, FAIL, explicit missing/REVIEW, invalid/unresolved ref/REVIEW, and irrelevant ref/REVIEW. Irrelevance was tested both across owners and within the correct raw owner using a wrong semantic field.
    • Hostile descriptor graph, canonical pointer, EIP-55/Asset, integer-string/BigInt, approval bounds, set/order, optional recipient, public simulation consistency, purity/freshness, no clock/random/network, and public-entry cases passed.
    • pnpm test:coverage: 100% statements (393/393), branches (435/435), functions (72/72), lines (385/385).
    • Clean no-dist pnpm check: format/lint/typecheck/build/import passed; 29 test files / 1,056 tests passed; browser bundle leakage passed for 9 artifacts; production health passed.
    • pnpm audit --prod is identical to protected-main baseline: the same 6 pre-existing apps/web advisories and no new production vulnerability from M2-09: Implement deterministic preflight alignment #30.
    • Secret scan found no credential material; only the intentional hostile-input test property name secret matched.
    • QA worktree is git-clean, PR is mergeable/CLEAN, and unresolved review-thread count is 0.

    QA conclusion

    PASS. The accepted head satisfies the reviewed Work Plan and issue acceptance criteria. Any head movement or source change invalidates this pass.

  10. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    READY_TO_MERGE

    PR #76 is ready to leave Draft at accepted head 263f7cfb30d54bf21482a1779335fba466188817.

    • Work Plan and self-review: published and unchanged.
    • Implementation Report: published for the accepted head.
    • SINGLE_OPERATOR_QA_PASS: published from a separate clean detached worktree; no independent reviewer claim.
    • Exact-head required quality-gate: success (run 31237915579 / job 93053817596).
    • PR base/head: e468c6c035c3c35e12a0c1d7795d76d5306045eb -> 263f7cfb30d54bf21482a1779335fba466188817.
    • PR state: mergeable/CLEAN; 0 unresolved review threads; no head movement.
    • Scope: exactly 11 authorized paths; no dependency, vendor, schema, workflow, or generated-artifact drift.
    • Main protection: strict required quality-gate, conversation resolution, linear history, admin enforcement; approvals required 0; force pushes/deletions disabled.
    • Repository merge policy: squash only; remote branch deletion on merge enabled.

    Authorized next action: mark PR #76 Ready and perform a protected squash merge only if these conditions remain unchanged.

  11. pillowtalk-Qy commented on Aug 8, 2026

    @pillowtalk-Qy
    ContributorAuthor

    POST_MERGE_AUDIT - PASS

    • PR feat(preflight-core): deterministic alignment for M2-09 #76 merged through protected squash policy at 88cc27b5464fa8725e31f0ea450620f70fe48c40.
    • Reviewed/QA-accepted head: 263f7cfb30d54bf21482a1779335fba466188817.
    • Single-parent linear history verified; parent is the recorded baseline e468c6c035c3c35e12a0c1d7795d76d5306045eb.
    • Accepted and merged tree hashes are byte-identical: 8e027325d8318d86484d2064a6f0aa4721b741c2.
    • Merged-main quality-gate run 31238226827 / job 93054619592 succeeded at the merge commit.
    • Remote/local main are synchronized; remote implementation branch is deleted.
    • Diff scope remains exactly 11 accepted paths; no vendor/schema/adapter/web/workflow/governance/generated drift.
    • Branch protection and squash-only repository policy remain unchanged.
    • PR audit record: feat(preflight-core): deterministic alignment for M2-09 #76 (comment)

    All #30 gates have passed. Move the Project item to Done, close the Issue as completed, and clean the local implementation/QA environments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:architectureArchitecture and module boundariesarea:qaQuality assurance and testingpriority:P0Critical priorityrisk:trust-boundaryChanges a trust or evidence boundarytype:featureNew product functionality

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions