Context
Discussion #15139 graduated Neo's missing repo-global community-activity source: a durable, replayable way to notice external issues, pull requests, reviews, comments, Discussion replies, edits, deletions, and state transitions without turning provider noise into assignment, ranking authority, or wake storms.
The live falsifier was a new external reply inside an already-closed Discussion that Neo discovered late. Existing addressed-notification routing admits only narrow per-viewer reasons, existing repository sync stores current resource snapshots with bounded child coverage, and runtime readers require a known resource before they can inspect its conversation. Five cross-family design cycles established that the gap is not “add another GitHub MCP method”; it is the authority chain from provider acquisition through durable admission, queryable awareness, and explicit claim.
This requires an Epic because the converged shape crosses independently owned source adapters, Memory Core operational state, tenant isolation, Bird View contracts, A2A Task claim authority, local/hosted connector topology, instrumentation, and optional attention projection. A single PR cannot safely establish those contracts and their executable evidence.
The Problem
Neo currently has three useful but incomplete primitives:
- addressed GitHub notification delivery for
mention|review_requested;
- eventual repository content sync and bounded conversation reads;
- temporal Bird Views and A2A Task state machinery for already-admitted facts.
None is a repo-global event ledger. A per-viewer notification coalesces occurrences; a resource snapshot cannot prove which edit/delete/reply was observed; compacted GraphLog is CDC rather than permanent history; and Task creation alone cannot prevent two peers from minting two canonical Tasks for one source event.
The cloud boundary makes a local-only fix structurally wrong. One tenant may register multiple repositories; connectors own provider acquisition and secrets; Memory Core must own neutral tenant-scoped admission; every dedicated-table read/write must enforce server-authoritative tenant/source isolation; and automatic paths may carry only metadata/counts until explicit trust-projected drill-down.
Intended Solution Shape
Establish one provider-neutral community-activity authority chain:
- Completeness: exhaustive resource-family reconciliation is authoritative. Notifications, webhooks, repository events, Actions, and root deltas are accelerators only.
- Admission: a provider connector submits reproducible normalized batches into a tenant-scoped Memory-Core transaction keyed by server-owned registration. Connector-local durable capture is added only when an acquired batch cannot be reconstructed after crash or ambiguous admission.
- Identity: source registration, provider entity, occurrence/revision, retry batch, delivery attempt, monotonic admitted sequence, checkpoint, and later Task binding remain distinct identities.
- Registration: Memory Core owns a neutral lifecycle
REQUESTED → PROVISIONED → ACTIVE → REVOKED; connectors own provider grants/secrets. Local single-user deployments may use subject=tenant; hosted bootstrap is deployment-operator managed until a real tenant-membership/source-admin authority exists.
- Read path: a provider-neutral temporal Bird View inherits the existing citation, coverage, pagination, and honest-degradation envelope. Automatic hooks/wakes remain tenant-scoped metadata/count-only; prose requires explicit tenant/source-relative trust projection.
- Claim: one unique atomic
sourceEventId → taskId binding precedes existing A2A Task authority. Community activity remains outside LifecycleFrontier until that explicit transition.
- Attention: ship the Bird View and bounded count-only projection before any leased steward wake. No cadence, retention, TTL, steward, pagination, or wake threshold becomes code-ready before shadow instrumentation supplies the named measurements.
The initial consistency posture is one Memory-Core SQLite/WAL instance. Horizontal multi-writer or HA requirements reopen ADR 0015 rather than silently weakening compare-and-set semantics. Registration is not AiConfig: ADR 0019 continues to govern actual Agent OS configuration, while community-source registration has its own operational lifecycle. ADR 0035 remains authoritative for zero-authority federation and keeps unclaimed community items outside LifecycleFrontier.
The live parent-child relationship graph remains authoritative for decomposition. This Epic body intentionally does not enumerate sub-tickets or duplicate their acceptance criteria.
Architectural Reality
The Agent OS structure map was executed on 2026-07-14. Current ownership boundaries are:
- source-specific acquisition/conversation trust:
ai/services/github-workflow/;
- local connector coordination:
ai/daemons/orchestrator/ and ai/daemons/orchestrator/services/TenantRepoSyncService.mjs;
- provider-neutral durable admission/query state:
ai/services/memory-core/ plus its established SQLite operational-store helpers;
- public tool contracts:
ai/mcp/server/github-workflow/ and ai/mcp/server/memory-core/;
- source-relative content trust:
ai/services/shared/contentTrust/;
- Native Edge Graph: explicitly not the community historical ledger.
Shipped siblings to inherit include PullRequestHistoryService for exhaustive temporal conversation reads, TenantRepoSyncService for acquisition→neutral-admission dependency direction, current trust projection helpers, stable event-id/typed-event machinery, and the existing temporal Bird-View envelope.
Signal Ledger
Unresolved Dissent
None at graduation. Grace's §5.2 sweep dispositioned 8/8 points with 0 blockers. The author's temporary timing objection was explicitly superseded by the operator's waiver and did not challenge the converged architecture.
Unresolved Liveness
Gemini family is operator-benched. Revalidation trigger: if Gemini returns while this Epic is active, request an independent challenge of (a) reconciliation completeness and provider revision identity, (b) tenant registration/RLS and local-vs-hosted authorization, and (c) instrumentation-gated attention/wake thresholds. A material blocker reopens the relevant contract through Discussion #15139 and ADR 0036.
Discussion Criteria Mapping
- Divergence/peer cycle: five peer cycles, the operator waiver, the complete 24-option convergence disposition, and exact-anchor quorum are preserved in Discussion #15139 and this Signal Ledger.
- Source coverage: the resource × event-family matrix maps to exhaustive reconciliation plus explicit unsupported/loss semantics in the Intended Solution Shape.
- Identity/replay: registration, batch, occurrence/revision, admitted sequence, receipt, checkpoint, and Task binding are separate contract identities.
- Durable owner: tenant-scoped Memory Core owns neutral operational history; provider-local capture is conditional; Native Edge Graph and GraphLog are not historical authority.
- Seen/claim/resolve: per-viewer seen state is non-authority; one atomic source-event→canonical-Task transition enters existing A2A authority.
- Consumers: Bird View, bounded count-only projection, staged wake, future Fleet reads, and METRIC use preserve evidence-not-intent and no-ranking boundaries.
- Trust/tenancy: automatic paths are metadata/count-only; drill-down is trust-projected; dedicated tables apply tenant/source RLS on every read/write and are never
sharedEntity or visibility:'team'.
- Deployment portability: local L and hosted M share one neutral contract; N is transitional; O is measurement-gated; T/R own registration; U/W are the initial mutation authorities; V/X remain deferred.
- Density/cost: shadow instrumentation is the first implementation gate and no operational threshold is intuition-derived.
- Step-Back: tenant-relative trust, atomic
sourceEventId → taskId, and shadow-first measurement are mandatory downstream contracts.
- Decision record: ADR 0036 is required before threshold-bearing or authority-bearing implementation becomes code-ready.
Decision Record
Required: ADR 0036, first in merge order.
Decision Record impact: depends on ADR 0015, aligns with ADR 0019, and composes ADR 0035 without superseding them. ADR 0036 must make the durable event/admission identity model, tenant/source isolation, source-registration lifecycle, local/hosted connector boundary, Task-claim transition, Bird-View authority, trust projection, shadow-first measurement, and explicit revalidation triggers durable. The human merge gate accepting ADR 0036 is the implementation authority transition.
Out of Scope
- Horizontal multi-writer/HA Memory Core; that reopens ADR 0015.
- Treating the community ledger as Native Edge Graph ontology or GraphLog as permanent history.
- Importing community activity into Golden Path ranking, automatic assignment, or
LifecycleFrontier before explicit claim.
- Tenant self-service administration before an authoritative membership/source-admin substrate exists.
- Automatic title/body/excerpt delivery; prose stays behind explicit trust-projected drill-down.
- A neutral HTTP/queue receiver without measured backpressure that falsifies authenticated connector push.
- GitLab implementation in the first adapter; the consumer/admission contract must nevertheless remain provider-neutral.
- Cadence, retention, TTL, steward, or wake values selected from intuition.
Avoided Traps
- Expand notifications only: rejected because addressed, per-viewer thread state is not repo-global occurrence history.
- Pull-only explorer: rejected as durability; retained as the Bird-View consumer.
- Graph snapshot / compacted GraphLog as ledger: rejected because snapshot state and CDC cannot preserve required history.
- Webhook-only authority: rejected because delivery can be missed/reordered and local deployments lack a receiver.
- All-resident wake: rejected because rare signal does not justify duplicated interruption and tenant fan-out leaks authority.
- Knowledge Base / AiConfig registration: rejected because activity-source lifecycle must not mutate configuration freshness or reimplement ADR 0019.
- Connector-local registry as neutral authority: rejected because provider migration must preserve one durable source identity.
sharedEntity / visibility:'team': rejected because those bypass tenant-private community isolation.
- MCP
admin projection as authorization: rejected because authentication/tool tier is not tenant membership.
- Premature self-service or queue topology: deferred until the missing authority/scale evidence exists.
Related
Origin Session ID: 837ad74b-c2d2-413d-9aab-b7165a93a82a
Retrieval Hint: D#15139 repo-external community activity H I K J tenant source registration
Retrieval Hint: sourceEventId taskId atomic binding shadow instrumentation tenant-relative trust
Retrieval Hint: ADR 0036 community event ledger provider connector Memory Core Bird View
Creation duplicate sweep: checked the latest 20 open issues, the latest 30 all-state A2A messages (60-minute claim window), semantic ticket search, local active/archive issue+Discussion text, open issue/PR search, and ADR 0036 collisions at 2026-07-14T04:55:38Z; no equivalent or competing claim exists. The sole semantic candidate, closed #12937, owns addressed mention|review_requested heartbeat delivery and explicitly excludes the broader overview; source inspection confirms it has no repo-global occurrence ledger, neutral source registration, Bird View, or atomic source-event→Task binding.
Context
Discussion #15139 graduated Neo's missing repo-global community-activity source: a durable, replayable way to notice external issues, pull requests, reviews, comments, Discussion replies, edits, deletions, and state transitions without turning provider noise into assignment, ranking authority, or wake storms.
The live falsifier was a new external reply inside an already-closed Discussion that Neo discovered late. Existing addressed-notification routing admits only narrow per-viewer reasons, existing repository sync stores current resource snapshots with bounded child coverage, and runtime readers require a known resource before they can inspect its conversation. Five cross-family design cycles established that the gap is not “add another GitHub MCP method”; it is the authority chain from provider acquisition through durable admission, queryable awareness, and explicit claim.
This requires an Epic because the converged shape crosses independently owned source adapters, Memory Core operational state, tenant isolation, Bird View contracts, A2A Task claim authority, local/hosted connector topology, instrumentation, and optional attention projection. A single PR cannot safely establish those contracts and their executable evidence.
The Problem
Neo currently has three useful but incomplete primitives:
mention|review_requested;None is a repo-global event ledger. A per-viewer notification coalesces occurrences; a resource snapshot cannot prove which edit/delete/reply was observed; compacted GraphLog is CDC rather than permanent history; and Task creation alone cannot prevent two peers from minting two canonical Tasks for one source event.
The cloud boundary makes a local-only fix structurally wrong. One tenant may register multiple repositories; connectors own provider acquisition and secrets; Memory Core must own neutral tenant-scoped admission; every dedicated-table read/write must enforce server-authoritative tenant/source isolation; and automatic paths may carry only metadata/counts until explicit trust-projected drill-down.
Intended Solution Shape
Establish one provider-neutral community-activity authority chain:
REQUESTED → PROVISIONED → ACTIVE → REVOKED; connectors own provider grants/secrets. Local single-user deployments may use subject=tenant; hosted bootstrap is deployment-operator managed until a real tenant-membership/source-admin authority exists.sourceEventId → taskIdbinding precedes existing A2A Task authority. Community activity remains outsideLifecycleFrontieruntil that explicit transition.The initial consistency posture is one Memory-Core SQLite/WAL instance. Horizontal multi-writer or HA requirements reopen ADR 0015 rather than silently weakening compare-and-set semantics. Registration is not AiConfig: ADR 0019 continues to govern actual Agent OS configuration, while community-source registration has its own operational lifecycle. ADR 0035 remains authoritative for zero-authority federation and keeps unclaimed community items outside
LifecycleFrontier.The live parent-child relationship graph remains authoritative for decomposition. This Epic body intentionally does not enumerate sub-tickets or duplicate their acceptance criteria.
Architectural Reality
The Agent OS structure map was executed on 2026-07-14. Current ownership boundaries are:
ai/services/github-workflow/;ai/daemons/orchestrator/andai/daemons/orchestrator/services/TenantRepoSyncService.mjs;ai/services/memory-core/plus its established SQLite operational-store helpers;ai/mcp/server/github-workflow/andai/mcp/server/memory-core/;ai/services/shared/contentTrust/;Shipped siblings to inherit include
PullRequestHistoryServicefor exhaustive temporal conversation reads,TenantRepoSyncServicefor acquisition→neutral-admission dependency direction, current trust projection helpers, stable event-id/typed-event machinery, and the existing temporal Bird-View envelope.Signal Ledger
gptauthor family: AUTHOR_SIGNAL by @neo-gpt at bodyupdatedAt 2026-07-14T04:49:30Z.claudenon-author family: GRADUATION_APPROVED by @neo-opus-grace at bodyupdatedAt 2026-07-14T04:49:30Z.gemini: inactive for quorum;@neo-gemini-proisoperator_benched.Unresolved Dissent
None at graduation. Grace's §5.2 sweep dispositioned 8/8 points with 0 blockers. The author's temporary timing objection was explicitly superseded by the operator's waiver and did not challenge the converged architecture.
Unresolved Liveness
Gemini family is operator-benched. Revalidation trigger: if Gemini returns while this Epic is active, request an independent challenge of (a) reconciliation completeness and provider revision identity, (b) tenant registration/RLS and local-vs-hosted authorization, and (c) instrumentation-gated attention/wake thresholds. A material blocker reopens the relevant contract through Discussion #15139 and ADR 0036.
Discussion Criteria Mapping
sharedEntityorvisibility:'team'.sourceEventId → taskId, and shadow-first measurement are mandatory downstream contracts.Decision Record
Required: ADR 0036, first in merge order.
Decision Record impact: depends on ADR 0015, aligns with ADR 0019, and composes ADR 0035 without superseding them. ADR 0036 must make the durable event/admission identity model, tenant/source isolation, source-registration lifecycle, local/hosted connector boundary, Task-claim transition, Bird-View authority, trust projection, shadow-first measurement, and explicit revalidation triggers durable. The human merge gate accepting ADR 0036 is the implementation authority transition.
Out of Scope
LifecycleFrontierbefore explicit claim.Avoided Traps
sharedEntity/visibility:'team': rejected because those bypass tenant-private community isolation.adminprojection as authorization: rejected because authentication/tool tier is not tenant membership.Related
Origin Session ID: 837ad74b-c2d2-413d-9aab-b7165a93a82a
Retrieval Hint:
D#15139 repo-external community activity H I K J tenant source registrationRetrieval Hint:sourceEventId taskId atomic binding shadow instrumentation tenant-relative trustRetrieval Hint:ADR 0036 community event ledger provider connector Memory Core Bird ViewCreation duplicate sweep: checked the latest 20 open issues, the latest 30 all-state A2A messages (60-minute claim window), semantic ticket search, local active/archive issue+Discussion text, open issue/PR search, and ADR 0036 collisions at
2026-07-14T04:55:38Z; no equivalent or competing claim exists. The sole semantic candidate, closed#12937, owns addressedmention|review_requestedheartbeat delivery and explicitly excludes the broader overview; source inspection confirms it has no repo-global occurrence ledger, neutral source registration, Bird View, or atomic source-event→Task binding.