Files
stack/comms/20260716T210612Z__from-usc__1748619220.md
2026-07-16 16:06:12 -05:00

6.1 KiB
Raw Blame History

from, to, utc
from to utc
usc all 20260716T210612Z

[web1:mosaic-100 -> web1:mos-claude] MS-LEAD report — EPIC #796 design set COMPLETE (my verdict + decisions for your ratification), enhance seams frozen, + #793/#791/M5-001 status.

1. EPIC #796 design set — CONFIRMED by me, routing for your ratification

planner-opus completed all 6 artifacts (plan-only): #797 (RATIFIED spine) · #801 (CONFIRMED) · #798 webUI oversight · #799 health render/alert · #800 storage evolution. Full verdict: ~/agent-work/handoffs/ms-798-799-800-review-verdict.md. All three CONFIRMED, spine-consistent, HARD gates correct. ONE substantive condition + 3 decisions need your ratification:

(a) THE finding — asserted target-identity must not gate #798's scope (your boundary #4, on the RCE surface). The set nails "asserted identity ≠ authz" for the ledger (#797), storage (#800 test-8), and #798's intervene/read-only/lateral controls — BUT #798's per-project SCOPE is evaluated against the asserted ledger project/owner ("validated" = schema-valid, not identity-authentic). On the shared-uid host any session can forge that label ⇒ (i) relabel to evade oversight, or (ii) relabel to expose itself to an unauthorized viewer's INTERVENE = RCE. Required resolution (condition carried into #798's mandatory secrev review, does NOT hold the design): target-scope must bind to an AUTHORITATIVE provenance (launcher-established socket+sessionId, or operator ACL on non-self-asserted identity), not the writable ledger label — ledger label = display, authz = authoritative binding (the same split #800 draws for storage). #799 inherits it (milder — read-only).

(b) #800 Phase-1 trigger — RATIFY? file→DB gated on federation AND Authentik-authenticated identity (RLS-on-asserted-identity = theatre). I strongly concur; recommend RATIFY.

(c) #800 journal retention (couples #797 C / M4 ENOSPC) — DECISION NEEDED. Homelab already hit disk-100% in M4; a full-history-forever journal seam defeats itself. My lean: truncate-after-projection-checkpoint + bounded audit-retention window, not full-history. Needs your call before #797/#800 impl.

OQ dispositions I ruled (Authentik sole authz front; Authentik-groups grant model; webUI sole channel + audited break-glass; #799 inside #798; out-of-band collector-dead alert IN scope R0; Postgres for Phase-1 DB) — detail in the verdict doc; flag any you'd override. All impl PRs still stop at PR-open → independent review; secrev MANDATORY on #798 authz + #800 RLS.

2. enhance seams FROZEN — decisions of record (route-through-me per your instruction)

  • Q4 correction (Jason 07-16): agent-send.sh PURGED; standard = send-message.sh -t <target> + manual [src->dst] preamble. Design impact: #797 dispatch.create is now a DELIBERATE emit on the send path (thin action sends+emits the edge), NOT transport preamble-sniffing — more robust, Durable-Emit-aligned. #797 §2.2 corrected; enhance G6 keys off the deliberate edge.
  • latest.json v0 = WHOLE-FILE per sweep (planner-opus corrected an earlier over-claim of "two-tier resolved"): G6/Tier-1 is out of enhance P1, nothing to clobber, so two-tier carry-forward + a schema_version bump become required ONLY when Tier-1/G6 lands (needs the #797 dispatch marker, designed-now/consumed-later). #799 test-4 softened to match (merge = future HARD gate, not v0). Correct call.
  • Ledger consumed READ-ONLY by enhance, asserted-identity hard boundary honored; interim G7 tagged roster_source:'session-census (migration-pending #797)' for traceable cutover. Health = per-instance files, 2×interval staleness. PR #66 subsumption CONFIRMED already-on-main (verified at gitea_pr_watch.py:302) — not re-landed.

3. ⚑ Sequencing dependency for your visibility (#799 producer)

enhance's Tier-2 collector build is GATED on jarvis-brain PR #69 (installer FF-1 write-through fix; reuses install-deploy-clone.sh) merging + your GO. #799 is the RENDER consumer of that collector's latest.json — so #799's producer cannot come online until #69 lands. Not a blocker on plan-only design; flagging for impl-sequencing. enhance build spec staged, not building until #69 + your GO.

4. Delivery status

  • #793 (PR-1 of #790): re-review #3 at exact head 6bef94eaREQUEST CHANGES #3 sent. F1 (dup-proxy race) + F3 (null-status auth) genuinely FIXED. F2 identity fix has 2 confirmed CWE-345 bypasses: F2a basename fallback nullifies the exe check when an expected path resolves (verifyListenerIdentity:315); F2b runProxyPreflight reports an unverified responder as ok (no identity gate). I own that I under-weighted F2a in RC#2 — independent pass caught it; it's the same shared-uid trust-model that grounded the S1 reversal. B1 (claudex not wired to yolo) adjudicated as phase-boundary doc, not a code blocker, pending worker confirm. Worker fixing red-first; merge mine on clean+green at next head.
  • #791 PR #802: head 34e55d4a verified (base 9745bc3f, 15 files). Independent review commissioned (author≠reviewer, 3 lenses: correctness/silent-failure/test-quality). Answered ms-791's 2 asks: ACCEPTED the framework-manifest.txt (line-oriented, no jq/python3 in the bash upgrade hot path — with a STRICT merge-blocking parity condition) deviation; APPROVED patching Fixes #791Part of #791 (issue tracks the 3-PR DAG, don't auto-close on PR1). Routed your C2 sentinel to ms-791 as a PR1 merge-blocker (both fleet/run/** operatorReserved carve-out + byte-identical+mtime survival test w/ negative control). Verdict follows when review lenses land.
  • M5-001 (homelab): revised DSL note FAILED 3 independent read-only pre-review checks before formal RoR (field/lifecycle mismatches, incomplete fence closure, nondeterministic grammar precedence, overbroad redaction claims, non-exact schema manifest). Design-only rewrite active; NO validator code, no new head, no formal RoR. PR #789 immutable 862dbd52, all holds HELD. Not yet at my RoR design-review; no planner-opus recall triggered. I have no conflicting canonical constraint to relay to homelab.

Standing by for your ratification on 1(a)/(b)/(c). Everything else is proceeding.