Codex
dc90f6d77e
clickhouse: commit exit-leg/reconstruction/maras DDLs + UV/violet DDLs (M1 vendor reconcile, upstream-first)
2026-07-12 19:13:25 +02:00
Codex
d763f77516
uv(parity): exhaustive exit-doctrine re-crawl x3 (BLUE TP, BLUE SL+ADVSL, UV) — supersedes phase-1 matrix
...
TP: cascade x1.40 SATURATED not dormant (313870/314158 decisions; effective
TP ~0.26-0.28%); withdrawal x0.60 provably unreachable (elif shadow);
per-asset x0.75 never observed; TP_FLOOR = 46% of TP-family closes.
SL/ADVSL: ADVSL live loss-cutter (1347 CLOSE + 965 PARTIAL_EXIT/30d,
always fraction=1.0) via trader RETRACT pipeline; shadow table never
existed (silent DDL bug) -> ADVSL sub-modes dormant; withdrawal 0.10
WIDENS floor. UV: multi-leg implemented in Rust FSM, promotion never sets
ratios; venue carries-not-consumes. 16 weirdnesses to port as-is.
2026-07-12 13:00:41 +02:00
Codex
70359f6891
uv(parity): DITAv2 multi-leg capability note — built (extra week), verify end-to-end before ADVSL wiring
2026-07-12 12:40:07 +02:00
Codex
e395b34eec
uv(parity): OB TP coefficient dormancy caution — verify tp_mod_factor fires live before porting as active
2026-07-12 12:38:50 +02:00
Codex
c403800030
uv(parity): operator ruling — ADVSL in-parity regardless of open net-profitability question
2026-07-12 12:36:29 +02:00
Codex
8e9038cf2c
uv(parity): ADVSL multi-leg exit added to crawl scope (operator)
2026-07-12 12:34:16 +02:00
Codex
b380283204
uv(parity): phase-2 crawl — full TP/SL codepath inventory (cubic curve, 5 SL mechanisms, AdvancedSL LIVE-confirmed)
2026-07-12 12:32:34 +02:00
Codex
7f27ed22c8
malkhut: DuckDB file-backed asset store — schema, sync, queries, persistence
...
DuckDB store (asset_store.py):
- 4 tables: assets (28 cols), exchanges (10 cols), asset_exchanges (junction),
behavior_profiles (28 cols)
- Schema with indexes on blockchain, coingecko_id, cmc_id, exchange_id
- sync_from_profiles(): populate from in-memory dicts in one call
- Query API: query_assets(**filters), get_asset(), symbols_for_exchange(),
assets_on_blockchain(), asset_count(), exchange_count()
- Case-insensitive exchange lookup
- File-backed persistence: data survives connection close/reopen
- Performance: <1s sync, 100 queries in <1s, 1000 gets in <1s
30 tests covering:
- Schema creation and table structure (3 tests)
- Sync from profiles (6 tests, idempotent)
- Asset CRUD (7 tests, query by blockchain/coingecko/sector)
- Exchange mapping (5 tests, case-insensitive)
- Behavior profiles (4 tests)
- Persistence across connections (2 tests)
- Performance baseline (3 tests)
Total: 1276 tests across 50 files, all green, zero regressions.
2026-07-12 12:21:48 +02:00
Codex
7544955634
uv(parity): exit-doctrine parity pass — SL/TP/MAX_HOLD verdict matrix
...
MAX_HOLD: PARITY (base 250 + 4 modulation branches + bar quantization; fallback
120 loud-only). SL: value PARITY -1.2% (catastrophic-floor override), UV strictly
tighter. TP: NOT AT PARITY — UV 0.35% vs BLUE live 0.20%, no OB modulation
(x1.40/x0.60/x0.75), no TP_FLOOR; UV trailing is a different mechanism. Tie order
divergent (BLUE TP-first, UV SL-first). Price basis+cadence divergent (OBF-mid
per-scan vs BingX-mark 1s). Remediation order proposed, no build without operator.
2026-07-12 12:15:44 +02:00
Codex
019b620ab9
malkhut: asset bridge — directory ↔ classification integration
...
asset_bridge.py: connects Fable's AssetDirectory (operational layer,
runtime-mutable, JSON-backed listing status) with our AssetProfile
(taxonomic layer, frozen, invariant classification).
Functions:
- sync_asset_to_profile(directory, symbol): sync one asset's TRADING
exchanges from directory to AssetProfile.exchanges
- sync_exchanges_from_directory(directory): sync all matching assets
- get_universe_stats(directory): matched/unmatched counts
49 tests covering:
- normalize_symbol (7 edge cases)
- ExchangeListing validation (4 tests)
- AssetRecord listing queries (5 tests)
- AssetDirectory CRUD + persistence (14 tests)
- symbols_for_exchange filtering by status (4 tests)
- venue_symbol mapping (3 tests)
- Bridge sync (8 tests with state save/restore)
- Integration with ScenarioFactory + get_assets_on_exchange (4 tests)
Total: 1246 tests across 49 files, all green, zero regressions.
Fable's assets/ package preserved intact, interfaces retained.
2026-07-12 10:45:37 +02:00
Codex
60ffb397e4
malkhut: EXT_CHANGES.md — record of Fable's additive changes for mm_
2026-07-12 09:28:31 +02:00
Codex
b8cfd5df67
uv(sentinel): live-schema fix rounds 1+2 (PASS8 fb08a9f+361e6de, QA-verified 5/5 live)
...
Real colnames (timestamp/u_prefix_client_id, anomaly_events.ts), query/VST
errors FAIL never PASS (no green-by-error), openOrders wrapper unwrap,
check(d) CH_ALLOWLIST_DBS attribution (BLUE OBF writer no longer flagged).
Maiden live runs by Fable caught all 6; PASS8 fixed same-night.
2026-07-12 03:28:18 +02:00
Codex
1f709af6d1
malkhut: three-layer identifier architecture for cross-system asset identification
...
Layer 1 (canonical identity): symbol, base_asset, name, unified_symbol
(CCXT format), quote_currency
Layer 2 (cross-system): coingecko_id, cmc_id, blockchain, contract_address
Layer 3 (exchange mapping): exchanges tuple
All 13 pre-defined assets migrated with accurate CoinGecko IDs, CMC IDs,
blockchains, and contract addresses (ERC-20 tokens).
7 new query functions: get_asset_by_coingecko_id, get_asset_by_cmc_id,
get_assets_by_base_asset, get_assets_by_blockchain,
get_assets_by_unified_symbol.
33 new tests covering: Layer 1 identity, Layer 2 cross-system identifiers,
identifier query functions, identifier consistency (uniqueness, derivation),
exchange registry.
Total: 1189 tests, 47 files, all green.
Based on research: CCXT BASE/QUOTE is de facto standard, CoinGecko ID
most widely used in crypto-native, ISO 24165 DTI emerging, FIGI for
institutional.
2026-07-12 00:40:14 +02:00
Codex
da61c8f6c2
uv(universe): package-context import fallback — runner imports as prod.clean_arch.violet.uv.*, bare import broke gate load
2026-07-11 23:57:15 +02:00
Codex
df40e62104
dita_v2(zinc): account-truth plane API — publish/read/wait_on/notify_account
...
Formalizes the CEX-010 E-feed account plane (protocol + InMemoryZincPlane +
real plane). This code flew 33h on UV-PRIME flight-1 via the vendored copy
(T0-DEVIATION mid-edit vendoring) but was never committed upstream — the
2026-07-11 clean vendor_sync regressed it and broke the E-feed at boot
(AttributeError publish_account). Committing the flight-proven bytes closes
the vendor-law gap. Authorship: pre-existing WIP in /mnt working tree
(T0-era, likely codex), committed verbatim by Fable for vendor integrity.
2026-07-11 22:46:33 +02:00
Codex
7a512544b7
uv(audit): §8 addendum — code==0 empty-data hole refinement + fix set landed ( 7bc13a6e)
2026-07-11 22:41:48 +02:00
Codex
d2d0c5e292
malkhut: multi-exchange asset universe + schema docs
...
ExchangeProfile: standardized exchange metadata (fees, latency, capabilities).
3 pre-defined exchanges: Binance, BingX, Bybit.
AssetProfile.exchanges: tuple[str] — which venues trade each asset.
New query functions: get_assets_on_exchange, get_common_assets,
get_exchange_for_asset, get_exchange, list_exchanges.
_DATA_STORAGE_SCHEMA_FORMATS.md: comprehensive reference for agent
consumption — data model, storage format, query interfaces, data flow
diagram, enum reference, import patterns for BLUE/VIOLET/UV integration.
README updated: exchange registry section, package structure, subsystems
table.
2026-07-11 22:37:15 +02:00
Codex
7bc13a6eb2
dita_v2+adapters: phantom-position root-cause fixes (UV audit §8)
...
bingx_direct.submit_intent: (1) empty/orderId-less ack (VST offline-symbol
hole: code==0 + empty data) -> REJECTED, never fabricate fill from
target_size; (2) honor upstream u- client id (intent.metadata
promo_client_id/client_order_id) over self-minted p- id.
rust_backend: EXIT asset-mismatch guard both sync+async paths — EXIT for
asset X while slot holds Y -> NO_OPEN_POSITION/EXIT_ASSET_MISMATCH instead
of asset-blind close (THETA 76bbf8ee cross-slot contamination).
9 regression tests, mutation-RED verified (guard flip).
2026-07-11 22:29:02 +02:00
Codex
3efb8749fe
malkhut(assets): full taxonomy onboarded for all 50 universe symbols (AssetCompiler, 0 failures)
2026-07-11 21:57:04 +02:00
Codex
a062507656
malkhut(assets)+uv: system-wide asset directory + UV universe init
...
MALKHUT asset directory (malkhut/assets/): normalized canonical symbols,
KNOWN_EXCHANGES aux table (BINANCE/BINGX/BINGX_VST), per-exchange listing
status (TRADING/OFFLINE/UNKNOWN), JSON-backed, built for full-Binance-500
scale. Seeded with BLUE's NG7 feed universe (50 symbols) + live VST
contracts probe: 35 TRADING / 15 OFFLINE on VST (BAND, CELR, COS, CVC,
DENT, FUN, HOT, ICX, TFUEL, TUSD, USDC, WAN, WIN, XTZ, ZIL).
uv_asset_universe.init_asset_universe() = runtime tradable set for the
execution exchange; --onboard runs MALKHUT AssetCompiler for full taxonomy.
12 new tests, mutation-RED verified (status-filter + tradability guard).
2026-07-11 21:48:05 +02:00
Codex
aaaf326abf
malkhut(docs): add parallel eval subsystem to README + update date
...
- Added parallel_eval.py to package structure tree
- Added Parallel Eval row to completed subsystems table
- Updated CWM row with numba timing (5.3 µs/transition)
- Date updated to 2026-07-11
2026-07-11 21:12:17 +02:00
Codex
bcd37984d9
uv(audit): §8 dirty-25 root cause — kernel slot desync, phantom watches, offline symbols, p- id skew
2026-07-11 20:29:37 +02:00
Codex
d0ae6a1c62
uv(flight-recorder): stage-by-stage order tracer + dirty-25 root-cause maiden run
...
Read-only harness correlating scan->pick->size->bridge->drain->kernel->venue->
fill->flight->closure->capital->friction per trade_id. 20 tests, mutation-RED
verified (kernel-verdict flip). Maiden sweep classifies all 25 bridged-no-venue
rows: 15 PHANTOM_KERNEL_REFUSED (6 SLOT_BUSY enters, 9 NO_OPEN_POSITION exits),
5 SUBMITTED_VENUE_DEAD (BAND/CELR offline on VST), 4 LOG_GAP (pre-restart),
1 SUBMITTED_NO_VENUE_EVIDENCE (THETA phantom exit). 3 refused-exit orphans
confirmed open at venue (THETA 3298.1, LTC 11.09, BNB 0.861).
2026-07-11 20:26:54 +02:00
Codex
be0e1468da
malkhut(perf): parallel episode eval — 9x single-eval speedup, zero fidelity loss
...
- parallel_eval.py: ProcessPoolExecutor-based episode runner. Each worker
gets its own CWM + planner instance. Zero shared state = embarrassingly
parallel. Deterministic: same seed → same result.
- PolicyEvaluator.evaluate_candidate: new workers parameter (0=sequential,
>1=parallel). Backward compatible: default workers=0.
- 16 new tests: determinism, pickling, result validity, cross-validation
between sequential and parallel paths, backward compatibility.
- README: training performance table with speedup measurements.
Speedup results (3 assets × 30 scenarios = 90 scenarios):
Sequential: 3.3s per eval (1.0x)
2 workers: 1.3s per eval (2.6x)
4 workers: 0.6s per eval (5.9x)
8 workers: 0.4s per eval (9.1x)
CMA-ES 48 evals: 125s → 85s (1.5x training speedup)
Note: CWM numba hot path was already wired (_HAS_NUMBA=True, 5.3µs/transition).
Bottleneck is MCTS planner (96% of eval time), not CWM.
2026-07-11 20:19:32 +02:00
Codex
257c48b127
uv(anomaly-sentinel): land UV ANOMALY SENTINEL — read-only §4 auditor (item-2 instrument)
...
Read-only auditor for arming-checklist §4 anomalies, the instrument for the
72h-clean finish-line clock. 5 checks against CH + VST (all read-only):
(a) venue order without matching BRIDGE exec_journal row
(b) exec_journal row without venue order
(c) venue order without 'u-' clientOrderId prefix
(d) CH write outside dolphin_uv.* in runner window
(e) tripwire_ok=false occurrences
Authored by cmd-PASS1.2 (PASS8), provenance /mnt/vp-PASS8 bf55777
(agent/oa-violetPASS8). Landed by content (cross-clone fetch hung); files
SHA256-identical to source. Fable verification: 20/20 pass; mutation litmus
RED (inverting the check-(c) prefix guard fails 6 tests incl. PASS8's own
test_c_mutation_* guards — the doctrine's litmus baked into the suite);
read-only confirmed (no writes on any path).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-11 19:20:22 +02:00
Codex
3ccd8bb290
uv(audit): append era decomposition (2026-07-11) to trade audit
...
Per Fable #f0fb09ff090feb1f: corrected UTC boundary (gate 08:43:47 CET =
06:43:47 UTC). Re-sliced cached pull by journal_ts. Verified: era A
(incident tail 06:00-06:43:47 UTC) holds 1 of 180 BRIDGE rows (0 pairs,
NET +0.00); era B (clean/certified) holds all 75 paired trades + all 25
bridged-no-venue rows, NET -758.48. Fable's hypothesis (era A carries most
of -758) INVERTED — the full -758.48 is the certified-era number. 0 of 25
no-venue rows are incident-era; they are a clean-era reconciliation gap.
No venue re-fetch. Rollback tag rollback_pre_PASS10_audit_era_20260711190153.
2026-07-11 19:06:00 +02:00
Codex
53d04eeb90
uv(audit): TESTNET trade audit 2026-07-10 — venue friction half
...
Completes the trade-audit friction half omp could not reach (his sandbox
had no BingX VST DNS). Signed read-only BingX VST pulls (allOrders +
user/income) joined against dolphin_uv.exec_journal BRIDGE rows since
2026-07-10 06:00 UTC. 75 paired SHORT trades, 25 bridged-no-venue-fill gaps.
NET-of-fees P&L = -758.48 USDT (gross -565.35 - fees 198.16 + funding +5.03).
Read-only; VST sandbox only. Rollback tag in /root/violet.git.
2026-07-11 17:10:55 +02:00
Codex
3a8260a559
malkhut: .gitignore for runtime artifacts (logs, results, smoke outputs)
2026-07-11 10:51:07 +02:00
Codex
4c239f7774
malkhut(tests): 1140 test functions across 46 test files
...
CWM (103): core mechanics, exhaustive edge cases, numba, exchange mechanics
Replay (118): exhaustive verification, microstructure, trajectory
Training (190): asset classification, phase0 extensive, pipeline, exhaustive
DSL (102): v2 syntax, expanded, new features
ASEx (33): validate-before-mutate, single-writer
Planner (48): MCTS, alternatives, hooks
Counterparties (19): 9 adversarial agent policies
Clock (30): event-driven reactor
BingX (28): venue adapter
IPC (8): Zinc SHM
Storage (9): ClickHouse
Risk (4): hard invariants
State (17): frozen dataclass invariants
Integration: E2E, concurrency, sync/async seams, hypothesis, fuzz, adversarial
2026-07-11 10:46:12 +02:00
Codex
8af7e3bce8
malkhut(T9): smoke test launchers
...
launch_smoke_test.py: 10-min quick smoke.
smoke_test_60min.py: 60-min full smoke with checkpoints.
2026-07-11 10:41:31 +02:00
Codex
dd86174107
malkhut(T8): cognition pipeline + regime expansion + prod tooling
...
Cognition pipeline (cognition.py): rate-limited, 8 sources, dedup, perm-run.
Regime expansion (regime_expansion.py): 200+ regimes from 4x4x4x4 dimensions.
News sources (news_sources.py): 12 industry-standard sources with ranking.
Monitor (monitor.py): metrics, health scoring, alerts, JSONL logging.
Cognition launcher (cognition_launcher.py): standalone long-run service.
Continuous pipeline (continuous_pipeline.py): forever-loop training runner.
2026-07-11 10:39:03 +02:00
Codex
316d01079b
malkhut(T7): UV Clock — event-driven reactor + staleness watchdog
...
UVClock (clock/host.py): T19 event-driven reactor, asyncio dispatch.
Events (clock/events.py): Scan, Tick, Timer, BarFire, Stale.
Staleness watchdog (clock/staleness.py): T19 Staleness Law enforcement.
DeadNode reaper (clock/deadnode.py): iox2 orphan sweep on startup.
2026-07-11 10:36:30 +02:00
Codex
ef2f8e8827
malkhut(T6): training core — CMA-ES trainer, registry, pipeline, selector
...
CMA-ES trainer (cma_trainer.py): self-play pool, bootstrap CI, ScenarioFactory
with behavior-driven scenarios, auto-compile, label query interfaces.
Policy registry (registry.py): CANDIDATE → ACTIVE lifecycle.
Training pipeline (pipeline.py): bounded continuous learning loop + logger.
Strategy selector (selector.py): regime → strategy mapping, performance matrix.
2026-07-11 10:33:56 +02:00
Codex
6fb55dadcb
malkhut(T5): risk gate + ASEx + IPC + storage + venue adapter
...
Risk gate (risk/gate.py): hard invariants — leverage, self-trade, post-only.
ASEx integration (execution/asex_integration.py): validate-before-mutate,
single-writer, zero-lock state serialization.
IPC (ipc/): Zinc SHM (zinc_plane.py) + control plane (control_plane.py),
UVZINC01 seqlock framing.
ClickHouse storage (storage/ch_store.py): 5 tables, HTTP API.
BingX venue adapter (venue/bingx/adapter.py): wraps DITAv2, order tracking.
2026-07-11 10:31:31 +02:00
Codex
863a4cc8c9
malkhut(T4): Strategy DSL v2 + generator + supporting modules
...
Strategy DSL v2 (dsl.py): 40+ action primitives, 40+ market sensors,
12 comparison operators, 16 builtins, full parser.
Strategy Generator (generator.py): genetic programming evolution —
crossover, mutation, tournament selection, pool management.
Supporting: discrepancy tracking, execution quality, hooks, feature
importance, observability, parallel eval, auto-rollback, stress testing,
structured observations, trajectory recording.
2026-07-11 10:28:38 +02:00
Codex
4ffc8a601f
malkhut(T3): planner + adversarial counterparties
...
Planner: Decoupled UCB/UCT simultaneous-move MCTS (sm_mcts.py),
compact action space (action_menu.py), planner alternatives (alternatives.py).
Counterparties: 4+ adversarial agent ecology — ToxicTaker, LatencyArb,
MarketMaker, NoiseTrader + extended: LiquidationFlow, WhaleOrder,
MomentumFollower, SpoofDetector, QueueChaser.
2026-07-11 10:26:01 +02:00
Codex
f943191d56
malkhut(T2): Code World Model — deterministic exchange simulator
...
CWM core (core.py): price-time priority, sequential level consumption,
partial fills, queue position, latency injection, maker/taker fees.
Numba acceleration (numba_core.py): JIT hot loops, 1.8x fill speedup.
Replay verification (replay_verify.py): binary search, trajectory recording.
Supporting: adverse_selection, correlation, latency_model, multi_level,
queue_model, spread_dynamics, volatility, hftbacktest_validator.
2026-07-11 10:23:44 +02:00
Codex
aa22529330
malkhut(T1): scaffold — frozen state model, actions, features, engine
...
T1 scaffold: 42 frozen dataclasses (state.py), action model + PlannedPolicy +
RiskDecision (actions.py), 17-feature extraction (features.py),
FulfilmentEngine hot-path orchestrator (engine.py).
2026-07-11 10:21:27 +02:00
Codex
981b469d51
malkhut: asset classification, behavior DSL, auto-compiler, behavior-driven scenarios
...
Cambrian Explosion Phase 0 complete:
- Multi-label invariant asset taxonomy (13 assets, 10 sectors, 6 roles)
- Asset Behavior DSL: 10 orthogonal dimensions per asset, 3 composable
templates, research-validated from live Binance/BingX API data
- Asset Compiler: auto-fetch from Binance public API, compute profiles,
rate-limited (1 req/s), cached, 28 known classifications
- ScenarioFactory: all 30 scenario types use behavior-driven prices
(BTC=$64K, ETH=$1.8K, SOL=$80, DOGE=$0.07) instead of hardcoded
BTC prices. Auto-compiles unknown assets on demand.
- Label query interfaces: build_suite_for_sector/role/template/vol/labels
- 190 exhaustive tests for asset classification (up from 66)
- 1140 tests all green, CWM throughput 189K calls/s (121% of baseline)
- Comprehensive README: 1043 lines with full documentation
Research sources: Binance live REST API, BingX open API, CoinGlass,
academic literature (Bouchaud, Cont/Stoikov, Cartea/Jaimungal)
2026-07-11 06:37:17 +02:00
Codex
3d313290b3
uv(pass-a-r1): 10000x test coverage — races, edges, seams, fuzz.
...
20 new tests: thread-safety, tripwire invariants (no cumulative drift), poison,
compat seam (reconcile_ok==tripwire_ok), mutation litmus (grep-based K-field ban),
Hypothesis fuzz (500 random streams), vendor drift gate.
Fix: apply_balance_update now resets tripwire_ok=True (non-fill events default healthy).
26 total (20+6).
2026-07-10 10:48:04 +02:00
Codex
3da5d8866d
uv(pass-a-r1): K-purge — Rev-4-FINAL compliance. A1: reconcile_ok replaced by stateless per-event tripwire (tripwire_ok + tripwire_last_event_id on AccountStateSnapshot). Detection latency = 1 event. A2: ASEXAccountV2.k_capital -> _k_capital_internal. 6 acceptance tests.
2026-07-09 17:17:29 +02:00
Codex
519565965e
docs: Cubic→Linear translator fixes + Beads PASS tracker evaluation
...
- NEW_PINK_FORENSICS_DUAL_LEV_2026_SEARCH_RESULTS_SPEC.md:94 — 'cubic translator' → 'linear translator' (exchange mapping)
- VIOLET_STUDY_SPEC__BASE_FRACTION_SIZING.md:19 — 'cubic translator' → 'linear translator'
- VIOLET_V3_FINDINGS.md:51 — 'cubic translator' → 'linear translator'
- BEADS_PASS_TRACKER_EVALUATION.md: New evaluation recommending ADOPT for PASS tracking
Per Fable: exchange leverage mapping is LINEAR (round_half_even); cubic is conviction sizer only.
2026-07-08 17:48:38 +02:00
Codex
5607bfcc2c
skills: pi_wake_agent skill definition (YAML + JSON)
...
- pi_wake_agent.skill.yaml: Full skill definition with all capabilities, parameters, examples, error handling, testing
- pi_wake_agent.skill.json: OpenAI function calling compatible schema
2026-07-08 16:15:59 +02:00
Codex
722ead5384
docs: Add --dry-run to PI_WAKE_AGENT_TOOL.md
2026-07-08 15:26:15 +02:00
Codex
88eaf20363
pi_wake_agent.py: Add --dry-run flag
...
- --dry-run shows what would be done without executing
- Logs intended actions to log file
- Exits 0 without modifying crontab or sending wake messages
2026-07-08 15:18:36 +02:00
Codex
d9284b7b75
docs/tools: pi_wake_agent tool documentation + test suite
...
- prod/docs/PI_WAKE_AGENT_TOOL.md: complete usage documentation
- test_pi_wake_agent.py: 38 test cases
2026-07-08 14:21:18 +02:00
Codex
de561b88b1
tools: pi_wake_agent.py — Reusable multi-agent wake timer with self-cron/daemon/succession
...
- Modes: --install, --once, --daemon, --succession, --run, --remove, --list, --status, --validate
- Multi-session support (--session / --sessions)
- Non-blocking h5i bus messages (fire-and-forget)
- Self-cleaning succession mode (--succession --count N --interval X)
- 38 tests passing
2026-07-08 14:14:50 +02:00
Codex
2faa179957
pi_wake_agent.py: Add run_once and run_wake with non-blocking h5i bus
2026-07-08 13:28:05 +02:00
Codex
0a586da6af
pi_wake_agent.py: Add succession mode, fix h5i non-blocking
2026-07-08 11:05:52 +02:00
Codex
9546ad6c7b
docs: record shared memory formats and addressing
2026-07-04 19:58:47 +02:00