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.jsonmeans every source records, and an unknown source records. The file holds deliberate mutes, not permissions. - A muted source refuses out loud.
tibet-cascade emitinto a muted source prints why and exits2; 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.0jis-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 streamtibet-trail: provenance trail readertibet-ping: liveness and network probetibet-pol: process and posture observertibet-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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5601456f5f8f0b4d7647d7b5cf5781f7fe79a5345e72199ff585e5ee20c250e2
|
|
| MD5 |
45eeaac7b86433b3d447f0a17a784001
|
|
| BLAKE2b-256 |
9d2e5cdc45982171c02fa9f553457b2762ebd2b88b4a09134dad9a5b82ea8a44
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffae217eebfd0d4a23d7d20655f732ceb402f99ceaee604d3fc4b7af20f9ed2a
|
|
| MD5 |
9f4fc44e2258d87b72251819137bf794
|
|
| BLAKE2b-256 |
9f34f9f329fcd47aed25088f19044db1ae62ff24231791d227ae7b498e661fee
|