chore(mesh): mark Phase 3 tasks 3-4 complete

Claude-Session: https://claude.ai/code/session_01GASWkNEi68FSCtvr6rLoEW
This commit is contained in:
Joseph Doherty
2026-07-22 19:29:09 -04:00
parent 7a8fb5f129
commit 1a7e3f7ea3
@@ -41,24 +41,28 @@
{
"id": 3,
"subject": "Task 3: config-serve auth interceptor + dedicated h2c listener wiring",
"status": "pending",
"status": "completed",
"classification": "high-risk",
"blockedBy": [
0,
2
]
],
"commit": "4d88f67c",
"note": "Merged the LocalDb-sync + ConfigServe listener blocks into ONE that re-applies the existing HTTP surface exactly once and adds both dedicated h2c ports; a fused admin+driver node double-binding the HTTP port throws 'address already in use' (sabotage-proven). AddGrpc moved out of the hasDriver block to hasDriver||hasAdmin with both path-scoped interceptors. StatusCode.Unauthenticated (LocalDb uses PermissionDenied). Coexistence proven by a minimal-WebApplication shape test, mirroring LocalDbSyncListenerTests; real end-to-end fetch is Task 8."
},
{
"id": 4,
"subject": "Task 4: node gRPC artifact fetcher \u2014 SHA-verified reassembly, endpoint failover, null-on-any-failure",
"status": "pending",
"status": "completed",
"classification": "standard",
"blockedBy": [
1
],
"parallelizableWith": [
2
]
],
"commit": "7a8fb5f1",
"note": "Uniform invariant: return the first endpoint's bytes that reassemble AND verify (SHA-256 lowercase-hex == dispatched RevisionHash); else null. RpcException / empty-stream / hash-mismatch all -> try-next, never throw. Func<endpoint,client> seam keeps gRPC out of unit tests (fake subclasses the generated client's protected ctor). Namespace is .DeploymentCache NOT .Deployment (else it shadows Configuration.Entities.Deployment across the whole test assembly via enclosing-namespace lookup) \u2014 same trap LocalDbDeploymentArtifactCache already dodged. Added Grpc.Net.Client to Runtime.csproj. xUnit v2 here: CancellationToken.None, not TestContext.Current."
},
{
"id": 5,
@@ -123,5 +127,5 @@
]
}
],
"lastUpdated": "2026-07-22T23:55:00Z"
"lastUpdated": "2026-07-23T00:30:00Z"
}