Documentation
¶
Overview ¶
Package fibscope is a keelson app for learning the fibonacci-coded tagged-id scheme by manipulating it. A tagged id is one 64-bit word: the tag — the fibonacci code of (tag value − 1) — sits MSB-aligned in the high bits, the per-category body fills the rest. Drag the tag value, the body, or the raw id and the app paints the bit layout live, decodes every part, and shows the ClickHouse filter the tag folds into.
The app is a pure front-end over the identity packages — it mints nothing and touches neither the bus nor the store. Everything on screen is a synchronous bit-op over a single uint64 recomputed each frame, so there is no worker, no mutex, and no reactive coalescing (unlike the terrainscope app it is modelled on). Two dock tabs: "Explore" (build an id and read it back) and "Trade-offs" (pick tag values by the id space each category needs).
The scheme, its split contract, and the kill-reasons for the alternatives are ADR-0106; the end-to-end recipe (mint, split, query) is doc/howto/fibonacci-tagged-ids.md. This app re-argues neither.
Lifecycle: Mount captures the logger; Frame renders inside the host-owned window; Unmount has nothing to release.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App is the per-window fibscope instance. The only state is the id under inspection plus the advisor's magnitude input; everything else derives.
func (*App) Frame ¶
func (inst *App) Frame(ctx app.FrameContextI) (err error)
Frame renders the app body. The host has already pre-pushed a window-unique salt onto inst.ids via c.IdScope (windowhost.renderWindowBody, ADR-0026 §SD9), so every widget id the app derives from inst.ids is unique across all concurrently open instances — the app must not Reset() the stack or wrap the body in its own instance salt (doing so would discard the host salt and collide with sibling apps that share a label string).