Skip to content

History

Revisions

  • Subscribe to change, the event textinput actually emits Three examples subscribed to submit. textinput emits one event, change; submit is only a code comment (textinput.go:122), never a wire name. They passed the executable example checker because sub accepts any word and never validates it against the type -- the one class of error that checker cannot catch, and the reason it is worth fixing in the protocol. Also drops the describe line counts from two pages. Those move as types are added, and the shape of the output is the part that stays true.

    @phroun phroun committed Aug 23, 2026
    46df4f1
  • Add the Building from Source page Says which build a reader actually wants: the mew distribution is the assembled product, and this repository is the MIT-only base it is built on. Someone here to use a desktop is in the wrong place, and the page says so early. Records that -tags mew in this repo is not that build. It compiles, and it leaves the host with no editor type registered at all -- 33 types instead of 34 -- because the mew-backed editor lives in mew's tree and the tag only removes the placeholder. make increment is called out as a maintainer step rather than something to run when building for yourself.

    @phroun phroun committed Aug 22, 2026
    19233cf
  • Add the Introspection page What describe streams and why the wiki keeps deferring to it. The five statement kinds with a real line of each, what of= and enum= and the virtual flag carry, and the two properties the scheme rests on: unknown statement kinds are ignored, so hosts may add and clients may ignore; and encode-decode-encode is byte identical, which is what lets a tool read a live host or a local registry without being able to tell them apart.

    @phroun phroun committed Aug 22, 2026
    787a315
  • Add the Transports and Security page Written from the application developer's side: the four endpoint forms and where the endpoint comes from, what trust-on-first-use does on a first connect and on a changed fingerprint, the client identity generated on first use, and the two files and five environment variables a client touches. Host configuration is deliberately absent -- lockdown, the authorization store, prompt policy and the serve-side Config are the host environment's business and belong with that section once it is further developed. Every claim checked against the code rather than taken from the design doc: the endpoint forms and port from client/endpoint.go, the fingerprint messages verbatim from verifyPin, the config directory rule from ConfigDir, and the Python and C transport support from their interop tests.

    @phroun phroun committed Aug 22, 2026
    d83f024
  • Add the Properties and Values page The value syntax the other protocol pages point at: the four lexical shapes, the three flag states, strings and their escapes, enums, colors, and the left-to-right application order. The through-line is that nothing is coerced. caption=hello and layout="vbox" are both errors, in opposite directions, and that is the point -- a value's shape is part of what it means, so the wrong one is reported where the mistake is. Also records why a hex color must be quoted: # begins a comment, so fg=#1e1e2e discards the rest of the line and the parser runs out of statement looking for the value.

    @phroun phroun committed Aug 22, 2026
    46c43df
  • Add the Object Model page What an object is, the trinket/virtual split and why virtual types take no common properties, the single id space shared by both, the three ways to address an object, containment, and the top-level types. Documents what destroy actually does: it forgets the destroyed object's own key and nothing else. The subtree leaves the display with its parent, but every key surfaced below it still resolves and still accepts set, silently, against objects that can no longer be drawn.

    @phroun phroun committed Aug 22, 2026
    6e88d7a
  • Say what the missing-separator error actually is It was described as failing oddly. It does not: the second new lands where a property name belongs, so the parser reads it as one and the type rejects it by that name. The message is exact, and knowing why is what lets a reader recognise it as a missing separator.

    @phroun phroun committed Aug 22, 2026
    e85f04f
  • Add the Protocol Overview page The anchor for the protocol section: the eight verbs plus the bare surfacing statement, how correlation keys work, and what a reply carries. Documents two things that only show up by trying them. Keys last for the whole connection, not the request, which is what makes the build-then-drive patterns work at all. And a dotted path names every level -- w.pn.q, never w.q -- so a container built without a correlation key puts everything beneath it out of reach for good.

    @phroun phroun committed Aug 22, 2026
    b00d6fd
  • Merge branch 'master' of github.com:phroun/kittytk.wiki

    @phroun phroun committed Aug 22, 2026
    b978a4b
  • Add the Events page Every trinket page was restating the same two rules -- nothing arrives until you sub, and your own changes do not echo -- so they now have one home. Adds what only shows up when you go looking: command flows without any subscription, sub takes several event names or none (meaning all), sub all targets every trinket, and sub does not check the event name against the type, so a typo subscribes successfully and delivers nothing.

    @phroun phroun committed Aug 22, 2026
    b038fe6
  • Drop the Desktop see-also links, and quote after="file" The desktop is not on the wire protocol and is not going to be, so the wiki -- which documents the wire -- has nothing to say about it. The three See also links pointed at a page that should not exist. after is a string property, so after=file is rejected with "expected a quoted string". The registration's own tip showed it unquoted, which is where this came from; that is fixed at the source, so the generated table now carries the right spelling too.

    @phroun phroun committed Aug 22, 2026
    47d9a72
  • Updated Home (markdown)

    @phroun phroun committed Aug 22, 2026
    8037cb6
  • Updated _Sidebar (markdown)

    @phroun phroun committed Aug 22, 2026
    e222242
  • MDIPane: prev is now prior

    @phroun phroun committed Aug 22, 2026
    3e3803d
  • Add MDIPane and Dock pages; generate the item and option tables

    @phroun phroun committed Aug 22, 2026
    55c8406
  • Add Editor page

    @phroun phroun committed Aug 22, 2026
    b23c2b1
  • Add MessageBox page

    @phroun phroun committed Aug 22, 2026
    be048a2
  • Say what menubar is, and stop implying menu takes common properties

    @phroun phroun committed Aug 22, 2026
    3296c39
  • Add TreeView page

    @phroun phroun committed Aug 22, 2026
    7959c56
  • Add TreeView page

    @phroun phroun committed Aug 22, 2026
    c0e161d
  • Add TreeView page

    @phroun phroun committed Aug 22, 2026
    f8fe3b9
  • Application, StatusBar, ScrollArea Filling the three names the reorganised index introduced. Application is the odd one: the connection itself, seen from the display's side. It is never built with `new` -- the handshake reports the id of the instance that already exists, and a client addresses it with `set <appID> ...`. It takes no children, has no generated table because it is not a registered trinket type, and has three properties. Two of them matter beyond themselves: multiwindow gates whether a client may create type="normal" windows at all (and earns a free Window menu with Tile/Cascade), and name is authorization-gated -- the name a connection was approved under is the only one it may keep, unless the display marked its trust as name-independent. StatusBar is three types, statusbar/section/span, and top-level chrome like a menu bar rather than a window child. Its `align` is three-valued where the common one is seven, so align=middle is rejected; spans take precedence over a section's own text. ScrollArea holds one content trinket, and `resizable` decides whether content re-wraps to the viewport or scrolls sideways. 50 examples run clean against the real registry, 6 deliberate error demos, 8 structural skeletons. 21 of 34 registered types now carry a block.

    @phroun phroun committed Aug 22, 2026
    017fce1
  • Updated Home (markdown)

    @phroun phroun committed Aug 22, 2026
    5fb4dc2
  • Updated _Sidebar (markdown)

    @phroun phroun committed Aug 22, 2026
    8de97f4
  • Updated Home (markdown)

    @phroun phroun committed Aug 22, 2026
    a68ccad
  • Updated Home (markdown)

    @phroun phroun committed Aug 22, 2026
    996c6a7
  • Updated _Sidebar (markdown)

    @phroun phroun committed Aug 22, 2026
    9751ed4
  • Updated _Sidebar (markdown)

    @phroun phroun committed Aug 22, 2026
    c4180be
  • Updated _Sidebar (markdown)

    @phroun phroun committed Aug 22, 2026
    5365fec
  • Updated Home (markdown)

    @phroun phroun committed Aug 22, 2026
    26c2f8b