Cairn Docs Claims Blog Packages

Claims ยท cairn

cairn 0.2.0: claims

Everything cairn 0.2.0 claims a person can do and see, and what holds, by place, each with its evidence.

3 retired44 moved108 ledger only

Counter window cairn^3

Which claims are in this place is in the claims export, which this version doesn't have.

Basics window cairn^106

Which claims are in this place is in the claims export, which this version doesn't have.

Todos window cairn^201

Which claims are in this place is in the claims export, which this version doesn't have.

Clock window cairn^406

Which claims are in this place is in the claims export, which this version doesn't have.

Tray menu cairn^450

Which claims are in this place is in the claims export, which this version doesn't have.

Recent Items submenu cairn^451

Which claims are in this place is in the claims export, which this version doesn't have.

Overlay panel cairn^452

Which claims are in this place is in the claims export, which this version doesn't have.

Gallery window cairn^503

Which claims are in this place is in the claims export, which this version doesn't have.

Moves and flows

IdKindClaimReads as
cairn^1moveIncrementledger only
cairn^2moveResetledger only
cairn^4flowCount to threeledger only
cairn^5flowStart overledger only
cairn^101moveType a new itemledger only
cairn^102moveAddledger only
cairn^103moveToggle an itemledger only
cairn^104moveDelete an itemledger only
cairn^107flowAdd two items and finish oneledger only
cairn^108flowBlank text adds nothingledger only
cairn^109flowAdd an item, then delete itledger only
cairn^202moveNew todoledger only
cairn^203moveMark all as completeledger only
cairn^204moveComplete a todoledger only
cairn^205moveEdit a todoledger only
cairn^206moveDelete a todoledger only
cairn^207moveEdit fieldledger only
cairn^208moveAllledger only
cairn^209moveActiveledger only
cairn^210moveCompletedledger only
cairn^211moveClear completedledger only
cairn^215moveBack through filtersretired
cairn^216flowAdd two todos and complete oneledger only
cairn^217flowBlank text adds nothingledger only
cairn^218flowEdit a todo and save with Enterledger only
cairn^219flowSaving a blank edit deletes the todoledger only
cairn^220flowEscape cancels an editledger only
cairn^221flowThe Active filter hides completed todosledger only
cairn^222flowClear completedledger only
cairn^223flowMark all as complete, then undo itledger only
cairn^224flowA new todo under the Completed filterledger only
cairn^401moveStart / Stopledger only
cairn^402moveLapledger only
cairn^403moveResetledger only
cairn^404moveSave lapsledger only
cairn^405moveLoad lapsledger only
cairn^407flowTwo lapsledger only
cairn^408flowStart overledger only
cairn^453moveOpen the menuledger only
cairn^454moveShow Overlayledger only
cairn^455moveKeep Recent Itemsledger only
cairn^456moveAdd Itemledger only
cairn^457moveRecent itemledger only
cairn^458moveClear Recent Itemsledger only
cairn^459moveQuit Trayledger only
cairn^461flowShow the overlayledger only
cairn^462flowAdd an item and pick itledger only
cairn^501moveReloadledger only
cairn^502moveFitledger only
cairn^505flowReload, then fit insideledger only

Invariants

What holds in every state the app can reach.

Assumptions

What the proofs rely on and nothing proves: the host, the OS and the hardware behaving as stated. Cairn's own are its trusted base (docs).

IdClaimReads as
cairn^7The host reports clicks where they happenledger only
cairn^214The host reports a double click as a second clickledger only
cairn^901The Swift frame decoder agrees with Lean'sledger only
cairn^902Lean decodes what the Swift event encoder writesledger only
cairn^903UTF-16 offsets and scalar indices convert exactlyledger only
cairn^904The text-input shadow predicts Lean's fieldledger only
cairn^905Input-method geometry agrees with Lean's caretledger only
cairn^906The host's text metrics are what layout assumesledger only
cairn^907Carets follow the painted glyphsledger only
cairn^908The host's clock is monotonic millisecondsledger only
cairn^909The host wakes Lean by wakeledger only
cairn^910readFile replies with the file's bytes, or failedledger only
cairn^911writeFile is atomic, and replies done only when the bytes are thereledger only
cairn^912playSound starts a known sound and refuses an unknown oneledger only
cairn^913http sends the request as given and returns the response as receivedledger only
cairn^914The host answers every request exactly once, with its idledger only
cairn^915every ms ticks while started and never after it is stoppedledger only
cairn^940The native menu shows exactly the frame's menu recordsledger only
cairn^941Choosing a menu item reports that item's refledger only
cairn^942Opening and closing the menu are reported once eachledger only
cairn^943An overlay panel never takes focus or clicksledger only
cairn^944An overlay panel is where its anchor saysledger only
cairn^960appendFile adds exactly the bytes at the end, or fails and adds nothingledger only
cairn^961listDir lists exactly the directory's names, sortedledger only
cairn^962deleteFile removes a file or a link, never a directoryledger only
cairn^963watchFile reports every change to its file, and nothing after its stopledger only
cairn^964frontmostApp answers the app in frontledger only
cairn^965permission answers whether the app holds it, and prompts only when askedledger only
cairn^966record streams the levels of exactly the samples it keeps, and nothing after its stopledger only
cairn^967A clip's WAV for a range of windows holds exactly those samplesledger only
cairn^968globalKey reports the hotkey's press and release, and other keys while it is heldledger only
cairn^969typeText types exactly the text into that app, or nothingledger only
cairn^970upload sends the body assembled from its parts, with the secret in its headerledger only
cairn^971A secret is read from the environment or its file, and never shownledger only
cairn^990Wrapped lines paint as wide as Lean measured themledger only
cairn^991Lean breaks lines where Core Text wouldledger only
cairn^1000openItem opens exactly the URL or existing file it namesledger only
cairn^1001appRunning answers whether an app with that bundle id runsledger only
cairn^1002readDefault answers the default's value as textledger only
cairn^1003makeDir makes a private directory and its parentsledger only
cairn^1004A painter's pixels stay inside its boxledger only
cairn^1005record reports started once its microphone is running, before any audio, or fails without itledger only
cairn^1006loadImage answers the image's pixel size, or the faultledger only
cairn^1007An image's pixels stay inside its boxledger only
cairn^1008An image is drawn where its oriented pixels areledger only

Moved to other packages

Ids this package issued and another now owns. They stay issued here and can't come back.

IdKindClaimNow in
cairn^301placeMenu bar menuyap^301
cairn^302moveCopy Last Transcriptyap^302
cairn^303moveRecent transcriptyap^303
cairn^304moveKeep Transcriptsyap^304
cairn^305movePress Return After Dictatingyap^305
cairn^306moveDictate with Keyyap^306
cairn^307moveOpen Transcripts Folderyap^307
cairn^308moveEdit Dictionaryyap^308
cairn^309moveEdit Settingsyap^309
cairn^310moveGrant Accessibility Accessyap^310
cairn^311invariantA shortcut never sendsyap^311
cairn^312invariantHold to talk, tap to latch: 300 msyap^312
cairn^313invariantOne recording at a timeyap^313
cairn^314invariantEvery recording endsyap^314
cairn^315invariantKept before it is typedyap^315
cairn^316invariantA failed type is kept and flaggedyap^316
cairn^317invariantLate and cancelled replies never typeyap^317
cairn^318invariantEach clip is typed at most onceyap^318
cairn^319invariantFixes replace whole wordsyap^319
cairn^320invariantRetention never deletes todayyap^320
cairn^321invariantOnly the first 25 terms are sentyap^321
cairn^322invariantRecent Transcripts holds fiveyap^322
cairn^323invariantToo short, silent or nowhere to type: never sentyap^323
cairn^330assumeThe host reports the dictation key and every other keyyap^330
cairn^331assumeThe host delivers the ticks it is asked foryap^331
cairn^332assumeThe host answers requests by id, in order of commandsyap^332
cairn^333assumeThe host reports the microphone faithfullyyap^333
cairn^334assumeThe host transcribes the samples it was asked foryap^334
cairn^335assumeThe host types into the app it was givenyap^335
cairn^336assumeThe host reports config.json and dictionary.txt when they changeyap^336
cairn^337assumeThe host lists day files and today by the local calendaryap^337
cairn^340flowTurn Dictate with Key offyap^340
cairn^341flowKeep Transcripts off and on againyap^341
cairn^342moveQuit Yap (Cairn)yap^342
cairn^343moveGrant Microphone Accessyap^343
cairn^344moveOpen the menuyap^344
cairn^345placeOverlay panelyap^345
cairn^346invariantThe original Yap keeps its keyyap^346
cairn^347invariantA mark waits for the appendsyap^347
cairn^348assumeThe host reports the microphone's start or its failureyap^348
cairn^349invariantThe overlay waits for the microphoneyap^349
cairn^350invariantKeys wait for the microphoneyap^350
cairn^351invariantHold to talk, tap to latch: 300 ms, timed as the originalyap^351
cairn^399placeOverlay panelyap^399