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

Metadata

Release files for tibet-cascade 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tibet-cascade 0.2.0
File Size Uploaded Provenance
tibet_cascade-0.2.0.tar.gz 15.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tibet-cascade 0.2.0
File Interpreter ABI Platform
tibet_cascade-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.3 kB

Release files / tibet_cascade-0.2.0.tar.gz

Download URL tibet_cascade-0.2.0.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5601456f5f8f0b4d7647d7b5cf5781f7fe79a5345e72199ff585e5ee20c250e2
BLAKE2b-256 checksum
How to use checksums
9d2e5cdc45982171c02fa9f553457b2762ebd2b88b4a09134dad9a5b82ea8a44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / tibet_cascade-0.2.0-py3-none-any.whl

Download URL tibet_cascade-0.2.0-py3-none-any.whl
Size 15.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ffae217eebfd0d4a23d7d20655f732ceb402f99ceaee604d3fc4b7af20f9ed2a
BLAKE2b-256 checksum
How to use checksums
9f34f9f329fcd47aed25088f19044db1ae62ff24231791d227ae7b498e661fee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Security for tibet-cascade 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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