VIOLET V1b: violet CH sinks + journal routing + namespace-isolation gate
ch_writer: _writer_violet (db=dolphin_violet) + ch_put_violet, the existing per-strategy singleton pattern. bingx/journal: explicit violet entries in _STRATEGY_DB_MAP/_SINK_MAP/_SINK_NAME_MAP — closes the hazard where the unknown-strategy fallback routes venue journals into BLUE's dolphin DB (regression-pinned in the new test, which documents the footgun for any future strategy color). test_violet_namespace_isolation: violet sink targets dolphin_violet exclusively; journal resolves violet explicitly; Zinc region names for prefix violet disjoint from pink; persistence wired with the violet sink routes only to dolphin_violet; HZ map-name contract pinned for the C4 launcher. Shared-lib regression: 57/57 across PINK kernel/runtime + BLUE tp_floor/malformed-open + bingx http safety. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -547,6 +547,7 @@ _writer = _CHWriter(db="dolphin")
|
||||
_writer_green = _CHWriter(db="dolphin_green")
|
||||
_writer_prodgreen = _CHWriter(db="dolphin_prodgreen")
|
||||
_writer_pink = _CHWriter(db="dolphin_pink")
|
||||
_writer_violet = _CHWriter(db="dolphin_violet")
|
||||
|
||||
|
||||
def ch_put(table: str, row: dict) -> None:
|
||||
@@ -577,6 +578,15 @@ def ch_put_pink(table: str, row: dict) -> None:
|
||||
_writer_pink.put(table, row)
|
||||
|
||||
|
||||
def ch_put_violet(table: str, row: dict) -> None:
|
||||
"""
|
||||
Fire-and-forget insert into dolphin_violet.<table> (VIOLET / observe-only
|
||||
rebuild runtime). Namespace isolation is a stage gate: VIOLET must never
|
||||
write to dolphin or dolphin_pink.
|
||||
"""
|
||||
_writer_violet.put(table, row)
|
||||
|
||||
|
||||
# ─── V7 decision journal (PINK §10 data volume / §37 routing) ────────────────
|
||||
PINK_V7_JOURNAL_DB = "dolphin_pink"
|
||||
V7_DECISION_TABLE = "v7_decision_events"
|
||||
|
||||
Reference in New Issue
Block a user