-
Notifications
You must be signed in to change notification settings - Fork 0
arch: establish Noema runtime bounded-context fitness #528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
109 commits
Select commit
Hold shift + click to select a range
80bdc21
test(architecture): require runtime bounded-context map
seonghobae 87017d5
arch: establish Noema runtime context map
seonghobae f6ee520
docs: link runtime context map
seonghobae ef4fabb
test(architecture): bind context map to canonical authority
seonghobae 91a5c5f
test(runtime): define fail-closed execution lifecycle
seonghobae 89beb96
feat(runtime): add fail-closed execution lifecycle
seonghobae 37b9470
docs(changelog): record runtime bounded-context gate
seonghobae 50472c1
test(runtime): pin immutable released-contract boundary
seonghobae 689b007
test(state-checkpoint): define fail-closed checkpoint admission
seonghobae 09dbd43
feat(state-checkpoint): admit monotonic idempotent checkpoints
seonghobae 6334fc8
test(state-checkpoint): reject ambiguous execution identities
seonghobae 63d1996
fix(state-checkpoint): bound canonical execution identity
seonghobae 04467e5
docs(runtime): mark checkpoint admission as candidate truth
seonghobae 47be313
test(state-checkpoint): detach admitted checkpoint state
seonghobae 8ca448b
fix(state-checkpoint): freeze admitted checkpoint snapshots
seonghobae efe918d
test(agent-runtime): require idempotent duplicate lifecycle delivery
seonghobae 2b8d3de
feat(agent-runtime): make duplicate lifecycle signals idempotent
seonghobae 416fa79
test(architecture): require runtime PRD and ADR authority
seonghobae 6bab0b8
docs(adr): define runtime orchestration bounded contexts
seonghobae b1f57e7
docs(prd): define candidate runtime orchestration requirements
seonghobae e379e6e
docs(adr): index runtime orchestration decision
seonghobae 6b82542
test(agent-runtime): bind lifecycle signals to execution identity
seonghobae d425318
test(state-checkpoint): snapshot accessor-backed authority once
seonghobae 8609bf1
refactor(runtime): share canonical execution identity contract
seonghobae b71b24f
fix(agent-runtime): bind transitions to execution identity
seonghobae 0c81b00
fix(state-checkpoint): snapshot authority before validation
seonghobae a9cba35
docs(runtime): bind FR-022 to released context contracts
seonghobae cb45285
docs(runtime): keep candidate truth explicit
seonghobae 2e99118
fix(docs): scope release requirement to Context Graph boundary
seonghobae 9afedfd
test(runtime): reject coerced execution identities
seonghobae b977984
fix(runtime): reject coerced execution identities
seonghobae 03c8802
test(checkpoint): reject coerced state digests
seonghobae 109f30a
fix(checkpoint): reject coerced state digests
seonghobae 2e09b23
test(runtime): reject coerced lifecycle state and signal
seonghobae abe9b80
fix(runtime): reject coerced lifecycle state and signal
seonghobae 31030a3
test(context-fabric): require immutable released contract admission
seonghobae 88c6782
feat(context-fabric): admit immutable released contract evidence
seonghobae e2f8a4e
test(context): reject self-asserted release authority
seonghobae 5a98721
fix(context): fail closed on unverified release claims
seonghobae cd1e4f3
test(context): require trusted release authority admission
seonghobae 1f43aed
fix(context): authenticate pinned release authority
seonghobae 15a5768
merge(main): restack runtime bounded-context work on current protecte…
seonghobae 5cdec7a
test(context-fabric): require promotion evidence
seonghobae 497be28
fix(context-fabric): bind promotion evidence
seonghobae 272d75a
test(context-fabric): reject prerelease production pins
seonghobae 0833d0e
docs(changelog): record runtime promotion boundary
seonghobae 7cf66d5
test(context-fabric): require exact assertion profile identity
seonghobae 8443133
feat(context-fabric): bind exact assertion profile identity
seonghobae f47cf62
docs(changelog): record exact Context Graph profile admission
seonghobae cf063d6
merge: converge runtime bounded contexts onto current main
seonghobae dfd4fdf
docs(runtime): satisfy public lifecycle API contract
seonghobae 22bd732
docs(context): document release admission API contracts
seonghobae 2ca6bc5
docs(runtime): document execution identity validator
seonghobae 0c016b4
docs(checkpoint): document admission API contract
seonghobae 4dabc98
test(context-fabric): cover immutable release authority boundaries
seonghobae d2b6bbf
fix(context-fabric): expose immutable release snapshots
seonghobae 5f74d47
merge: converge runtime bounded-context lane with current protected main
seonghobae 8316b8e
test(checkpoint): freeze admission authority envelope
seonghobae 8e41e4a
fix(checkpoint): freeze admission authority envelope
seonghobae 1bbe959
docs(changelog): record immutable checkpoint admission
seonghobae 31db5c7
test(context): reject null release candidates through admission error
seonghobae c39f967
fix(context): type malformed release evidence
seonghobae c5bac0c
test(runtime): define workflow task execution contract RED
seonghobae 0cc21c8
feat(runtime): admit bounded workflow task plans
seonghobae 60fc7f9
test(runtime): reject workflow admission accessor races
seonghobae 2b16283
fix(runtime): snapshot workflow admission authority once
seonghobae f477338
docs(runtime): record bounded workflow task candidate
seonghobae 911e552
test(workflow): bind state and bound untrusted iteration
seonghobae 6a34316
fix(workflow): snapshot bounded task execution evidence
seonghobae d5e974d
test(workflow): bind existing state fixtures to execution
seonghobae 6202198
test(checkpoint): snapshot retained authority before candidate
seonghobae fddfec8
test(checkpoint): keep retained-order regression single-shot
seonghobae 99684f0
fix(checkpoint): snapshot retained authority before candidate
seonghobae 73cddc6
test(context-fabric): normalize hostile release accessors
seonghobae c546d7e
fix(context-fabric): normalize hostile release evidence reads
seonghobae 687e6dc
test(workflow): bind state evidence to plan identity
seonghobae a9f0d6a
test(workflow): require plan identity on plans and states
seonghobae bf7584c
fix(workflow): bind task state to exact plan identity
seonghobae edb9157
test(runtime): lock workflow state admission regressions
seonghobae 2f73728
docs(runtime): define selector reservation boundary
seonghobae 72a6dea
test(runtime): cover hostile plan evidence and causal state gaps
seonghobae 3d1c444
fix(runtime): reject causal state gaps and hostile plan accessors
seonghobae 63ff638
test(runtime): cover malformed checkpoint boundary access
seonghobae 0d1c749
test(runtime): cover malformed lifecycle boundary access
seonghobae a5275a1
fix(runtime): normalize hostile checkpoint boundary errors
seonghobae 557bcde
fix(runtime): normalize hostile lifecycle boundary errors
seonghobae b6dda53
fix(runtime): preserve concurrency evidence precedence
seonghobae 26403ac
docs(changelog): record workflow runtime admission behavior
seonghobae dd0843f
test(runtime): cover nested hostile workflow accessors
seonghobae 84520f5
docs(workflow-task-execution): satisfy public API JSDoc contract for …
claude a93d08a
Merge remote-tracking branch 'origin/chatgpt/runtime-bounded-context-…
claude 5726c8b
ci(temp): normalize hostile capability proxy failures
seonghobae 07a9f50
ci(temp): repair PR528 source-fix parse failure
seonghobae 29444b1
Merge remote-tracking branch 'origin/chatgpt/runtime-bounded-context-…
claude e9673b3
ci(temp): retire stale PR528 repair workflow
seonghobae db3b33d
test(context-fabric): cover hostile capability proxy metadata
seonghobae 3444274
ci(temp): green hostile capability proxy regression
seonghobae 0bb8666
chore(ci): remove temporary self-modifying PR528 repair workflow
seonghobae 7be64a0
fix(context-fabric): normalize capability proxy failures
seonghobae 288d7b0
test(context-fabric): bound capability release metadata
seonghobae 6f5d800
fix(context-fabric): bound capability release metadata
seonghobae 10d6d82
fix(context-fabric): normalize hostile capability-array proxy failures
claude 5abd360
fix(runtime-shared): widen isCanonicalExecutionId to accept unknown
claude 9aec7b2
test(workflow-task-execution): close task-plan.ts coverage gap to 100%
claude fa6fece
Merge remote-tracking branch 'origin/chatgpt/runtime-bounded-context-…
claude 2f42c99
test(workflow): reject unadmitted plan before state mutation
seonghobae f9f9971
fix(workflow): require admitted plan authority for selection
seonghobae 037bb4c
test(workflow): exercise forged admitted-plan runtime input
seonghobae 5b34e85
Merge protected main into runtime bounded-context fitness
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,105 @@ | ||
| # Noema Context Map | ||
|
|
||
| ## Status | ||
|
|
||
| This document separates protected behavior from the runtime-orchestration direction. Protected `main` remains the authority for what is shipped. A bounded context listed as a target does not become implemented merely because it appears here. | ||
|
|
||
| Noema currently owns an evidence-producing credential and maintenance control plane. Expansion into agent/application runtime orchestration must reuse those existing authority boundaries rather than turning Noema into a model router, a foreign product system of record, or an arbitrary command runner. | ||
|
|
||
| ## Current protected contexts | ||
|
|
||
| ### Credential Exchange | ||
|
|
||
| Owns GitHub Actions OIDC verification, exact reusable-workflow source identity, replay/rate controls, repository-scoped GitHub App capability minting, and the `/health`, `/ready`, `/exchange` HTTP boundary. Credential evidence is not review, merge, release, deployment, or legal authority. | ||
|
|
||
| ### Maintenance Control | ||
|
|
||
| Owns exact-head/live-base observation, check/review/security evidence separation, short-lived maintainer capability handoff, stale-target refusal, work-conserving repository maintenance, and buyer/audit receipts. It does not own organization governance settings or foreign repository source. | ||
|
|
||
| ### Isolation Integration | ||
|
|
||
| Owns Noema's caller-side contract for bounded quarantine and validator execution. Wardnet, EgressWeave, or another canonical isolation/security product remains authoritative for its own runtime when used. Noema consumes a versioned port/ACL and never copies the security owner's implementation. | ||
|
|
||
| ### Policy / Approval | ||
|
|
||
| Owns the distinction between technical evidence and authority. Model judgement, scanner output, status/check results, sandbox evidence, and generated proposals cannot silently become formal approval or mutation authority. | ||
|
|
||
| ### Observability | ||
|
|
||
| Owns bounded operational evidence for Noema behavior, exact source/run identity, readiness, KPI integrity, and buyer-verifiable receipts. Telemetry must not contain raw bearer tokens, App private keys, unnecessary reasoning payloads, or foreign product state. | ||
|
|
||
| ### Recovery | ||
|
|
||
| Owns bounded retry/timeout/cancellation semantics, fail-closed recovery evidence, rollback preconditions, and stale-target revalidation. Silent retry of side-effecting operations is forbidden. | ||
|
|
||
| ## Runtime-orchestration target contexts | ||
|
|
||
| The following contexts are accepted decomposition targets for new runtime behavior. They are not claims that protected `main` already implements a general-purpose agent runtime. | ||
|
|
||
| ### Agent Runtime | ||
|
|
||
| Owns the lifecycle of one Noema agent/application execution: accepted execution identity, lifecycle state, cancellation, completion, and recovery routing. It does not discover or route models. | ||
|
|
||
| ### Workflow / Task Execution | ||
|
|
||
| Owns explicit workflow/task dependency and execution order, bounded concurrency, idempotent step identity, and side-effect classification. Recursive/unbounded task creation and implicit duplicate side effects are forbidden. | ||
|
|
||
| PR #528 now carries a candidate bounded task-plan admission and runnable-task selector. It accepts one canonical execution identity, a finite acyclic dependency graph, explicit `pure`/`idempotent`/`side_effecting` classification, and bounded concurrency. Declared task order is deterministic scheduling priority. Runtime state must account for every admitted task exactly once; foreign, malformed, duplicate, or incomplete state evidence fails closed. Failed or cancelled work is never selected as an implicit retry, and failed dependencies do not release descendants. Authority-bearing plan fields and nested dependencies are detached and frozen after one-time reads so caller accessors or aliases cannot change an admitted execution plan. This remains candidate behavior until protected integration. | ||
|
|
||
| ### Tool / Capability Boundary | ||
|
|
||
| Owns versioned allowlisted tool/capability descriptors, least-authority invocation, expiry, input/output bounds, and capability provenance. Arbitrary caller/model shell or network authority is not a Noema tool contract. | ||
|
|
||
| ### State / Checkpoint | ||
|
|
||
| Owns versioned runtime checkpoint semantics needed for restart/cancellation/idempotency. Checkpoints contain only Noema runtime state and canonical foreign references; they must not copy another product's domain truth, provider credential state, or unrestricted reasoning/tool payloads. | ||
|
|
||
| PR #528 currently carries candidate checkpoint admission for one retained execution identity. Sequence zero initializes the checkpoint stream; an exact same-sequence/same-digest replay is idempotent; conflicting replay, stale or gapped sequence, cross-execution identity, non-canonical execution identity, and non-SHA-256 state evidence fail closed. This remains candidate behavior until protected integration and does not itself persist checkpoint payloads or grant retry/side-effect authority. | ||
|
|
||
| ## Upstream and downstream boundaries | ||
|
|
||
| ### contextual-orchestrator | ||
|
|
||
| `ContextualWisdomLab/contextual-orchestrator` owns model discovery, routing, test-time compute, provider failover, and upstream provider credentials. Noema consumes its versioned gateway contract. Noema must not add direct provider SDKs, provider keys, fallback lists, or model-routing policy as a local substitute. | ||
|
|
||
| ### context-graph-contracts | ||
|
|
||
| `ContextualWisdomLab/context-graph-contracts` is the provider-neutral Shared Kernel for canonical object/authority references, truth status/origin, valid/system time, provenance, Context Assertion, CloudEvents/schema, conformance, and admission contracts. | ||
|
|
||
| Noema may integrate only against an immutable released contract package/profile. It must not import sibling repository implementation source or guess a future schema from an open Draft. Runtime/service/API/worker, integration technology, lifecycle/risk/ownership/remediation, and transformation changes can be projected only through the released versioned contract. Agent task/result/reasoning/tool payloads do not become authoritative architecture facts merely by being emitted as events. | ||
|
|
||
| ### enterprise-architecture-core | ||
|
|
||
| `ContextualWisdomLab/enterprise-architecture-core` is the authoritative Enterprise Architecture Decision Plane. Noema publishes or exposes versioned evidence/proposals through the released Context Graph boundary; EA Core decides authoritative architecture state. Noema does not write EA application tables or reinterpret EA truth locally. | ||
|
|
||
| ### Security and isolation owners | ||
|
|
||
| Wardnet, EgressWeave, AppGuardrail, governance-risk-compliance, and other dedicated products retain their own domain truth. Noema integrates via explicit released API/event/evidence contracts and an Anti-Corruption Layer where translation is required. | ||
|
|
||
| ## Data and integration rules | ||
|
|
||
| - cross-service SQL is forbidden; another product's database is never a Noema integration API; | ||
| - foreign records are held as canonical references plus bounded provenance/evidence, not copied as Noema-owned truth; | ||
| - contract/profile version, provenance, truth status, valid time, and system time remain distinct where the released shared contract defines them; | ||
| - absent, unreleased, stale, or non-conformant shared-contract evidence fails closed rather than triggering a source-copy workaround; | ||
| - Noema runtime state, model/provider routing state, enterprise-architecture truth, and product-domain truth remain separately authoritative. | ||
|
|
||
| ## Dependency direction | ||
|
|
||
| ```text | ||
| Noema Agent Runtime / Workflow / Capability / Checkpoint | ||
| | | | | ||
| | | +--> canonical isolation/security ports | ||
| | +-----------------> contextual-orchestrator gateway | ||
| +------------------------------> released context-graph-contracts | ||
| | | ||
| v | ||
| enterprise-architecture-core | ||
| (authoritative EA decisions) | ||
| ``` | ||
|
|
||
| No dependency arrow grants source-write authority to the upstream or downstream repository. Each repository retains its dedicated writer and release/governance process. | ||
|
|
||
| ## Acceptance for a new runtime slice | ||
|
|
||
| A new runtime slice is acceptable only when it has a named owning context, realistic cancellation/restart/checkpoint/idempotency/tool-policy/concurrency/isolation tests as applicable, bounded side effects, exact observability, and an explicit foreign-authority contract. A feature that requires direct provider routing, arbitrary tool authority, ambient secret propagation, unbounded recursion, silent retry, cross-service SQL, or unreleased Context Graph source is outside the accepted Noema boundary. |
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.