Skip to main content

tibet-cascade

Cascade Logging for TIBET.

tibet-cascade is the observability layer for causal logging across the stack:

JIS claim/bind/FIR-A
-> TIBET token
-> cap-bus event
-> gateway verdict
-> ping/overlay/network state
-> continuityd arrival/resume
-> Phantom fork/resume
-> audit/evidence/report

It does not replace tibet-tail, tibet-trail, tibet-ping, or tibet-pol. It correlates them.

Armed, wired, muted

A cascade viewer is only worth what its producers put in it, so this package never shows the switch on its own. Every source reports in one of three states, and the middle one is the point:

state meaning
wired this source has actually emitted — with a count and how long ago
armed recording is switched on, but no producer has ever emitted here
muted switched off; nothing from this source is recorded

Between 0.1.x and 0.2.0 every source in this package printed a green on while nothing in the whole stack called emit at all. That is the failure mode a viewer must not have: a quiet system and an unwired viewer looked identical, and the instrument reported the wish instead of the wire. doctor, list, watch and logger status now all say which of the two you are looking at.

Two consequences worth knowing:

  • Recording is the default. An absent loggers.json means every source records, and an unknown source records. The file holds deliberate mutes, not permissions.
  • A muted source refuses out loud. tibet-cascade emit into a muted source prints why and exits 2; it never silently swallows what you asked it to record.

Emitting from your own code

import tibet_cascade

tibet_cascade.emit(
    "device-link", "pairing.challenge", "challenge minted",
    subject="jasper2.aint", cascade_id=fork_id, refs={"fork_id": fork_id},
)

emit() never raises and honours the mute switch — a full disk or a read-only home returns None. Observability that can break the thing it observes is worse than none. Pass the same cascade_id through a chain of events to make them one causal thread, and parent_id to say which event came from which.

Install

pip install tibet-cascade

Bootstrap-or-die dependencies are mandatory:

  • tibet-core>=0.5.0
  • jis-core>=0.4.0

Commands

tibet-cascade doctor
tibet-cascade watch
tibet-cascade trace --id <cascade-or-token-id>
tibet-cascade logger on jis-core
tibet-cascade logger off tibet-core
tibet-cascade logger status
tibet-cascade ping --instance phone
tibet-cascade caps --read
tibet-cascade token --trace <token-id>

Default event file:

~/.tibet/cascade/events.jsonl

Override with:

TIBET_CASCADE_JSONL=/path/to/events.jsonl tibet-cascade watch

Event Shape

{
  "ts": "2026-06-07T21:55:00Z",
  "cascade_id": "cas_...",
  "event_id": "evt_...",
  "parent_id": "evt_...",
  "source": "jis-core",
  "kind": "identity.claim",
  "subject": "jis:...",
  "level": "INFO",
  "summary": "claim accepted",
  "refs": {
    "tibet_token": "...",
    "cap_event": "...",
    "trace": "..."
  },
  "data": {}
}

Stack Area

observability

Related packages:

  • tibet-tail: live event stream
  • tibet-trail: provenance trail reader
  • tibet-ping: liveness and network probe
  • tibet-pol: process and posture observer
  • tibet-cascade: causal correlation cockpit

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tibet_cascade-0.2.0.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tibet_cascade-0.2.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file tibet_cascade-0.2.0.tar.gz.

File metadata

  • Download URL: tibet_cascade-0.2.0.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_cascade-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5601456f5f8f0b4d7647d7b5cf5781f7fe79a5345e72199ff585e5ee20c250e2
MD5 45eeaac7b86433b3d447f0a17a784001
BLAKE2b-256 9d2e5cdc45982171c02fa9f553457b2762ebd2b88b4a09134dad9a5b82ea8a44

See more details on using hashes here.

File details

Details for the file tibet_cascade-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: tibet_cascade-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_cascade-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffae217eebfd0d4a23d7d20655f732ceb402f99ceaee604d3fc4b7af20f9ed2a
MD5 9f4fc44e2258d87b72251819137bf794
BLAKE2b-256 9f34f9f329fcd47aed25088f19044db1ae62ff24231791d227ae7b498e661fee

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page