First Bite
What Progressed In The Story
Tickoni can now be built, installed, and run by broad consumer and developer users on macOS, Linux, and ordinary consumer hardware — without weakening the high-throughput Firedancer engine or Tickoni's financial control boundaries. Linux remains the full high-throughput Firedancer tile runtime; macOS gains a supported runtime path for deterministic paper and sandbox demos, policy decisions, audit output, and replay proofs.
The user can now:
- Build and run Tickoni on a Mac or Linux desktop without needing a tuned Linux workstation
- Run
tickoni doctorand see which platform tier, isolation tier, and demo compatibility the current host supports - Inspect a policy-gated money proposal, audit trail, and replay proof on macOS before any live money path exists
- Know exactly which Tickoni version, host OS, architecture, and runtime tier produced any proposal, audit, or replay artifact
Want the changelog first? Skip the Tickoni story and jump to the release notes ↓
Chapter 7: First Bite
North of the Eight-Core Strait, the Ledger Sea froze around Tickoni’s boat.
Blue ice cracked beneath the hull. At noon, lanterns appeared between black cliffs, guiding ships toward a harbor carved into the frozen shore.
Above the harbor gate hung a cedar sign:
KORI NORTHERN EXCHANGE
Penguin-like islanders worked the piers in indigo coats. Cargo passed through three stations.
Count.
Inspect.
Record.
Nothing entered unnamed. Nothing was promised before it arrived.
A broad elder waited at the pier, three iron keys hanging from a red cord.
— Genza, keeper of the winter reserve. State your cargo.
— None, — Tickoni said.
Genza looked at Maro.
— Your intention?
Maro touched his purse.
Seventeen hundred rei remained. The boatwright had finally received the three hundred rei he was owed.
Two debts remained, due in spring.
— Work. I would rather earn my meals than eat my savings.
By evening, Maro had a winter position at the Exchange settlement desk, matching cargo receipts against payments and delivery promises.
Then the harbor bells changed.
Ships raised sail.
Ice crews pulled the last marker poles from the western channel.
— Long Night begins tomorrow, — Genza said. — Once the ice closes, no ship leaves Kori until spring.
A traveler in a green cloak approached the food counter with two children beside her.
— Six apples, please.
The clerk shook his head.
— We have none.
— An Akane ship passed the southern channel yesterday.
— It carried no fruit for Kori.
The traveler glanced at her children.
— My children have never tasted one.
— The Exchange does not carry apples.
— Keep your fish, then.
Tickoni watched her go.
— Why does the Exchange carry no apples?
The clerk glanced toward Genza.
— Akane grows them inside sealed gardens and sells the keys. The locks, the tools, the repairs—all Akane’s. No keys, no apples.
— They control the harvest and the price, and still take a share of every sale, — another clerk snapped.
— She asked for six apples, not a garden.
— Akane sells gardens, not apples, — Genza said. — It can close the gates and leave us holding keys to a garden we never owned—and nothing to sell.
— So Kori refuses anything it cannot control.
— We do not build a market we cannot replenish, — Genza answered.
— And how many customers do you send away because of that?
For a moment, nobody answered.
Then one clerk shrugged and pointed toward the fish barrel.
— Enough. But we have only these to offer.
Genza folded his wings.
— Apple trees do not survive the Long Night. There is nothing to discuss.
— Have you tested that?
The clerks laughed.
Genza did not.
He glanced toward the inspection shed.
— Akane sent a merchant with the last southern ship. When we refused to buy his keys, he left an apple sapling behind. Called it a gift. It should still be where he put it.
One clerk pointed toward the fish counter.
— Better trade than another barrel of these.
Another nodded.
— If apples grew here, every northern harbor would buy from us.
Genza’s eyes narrowed.
— If they grew here.
The clerks began talking at once.
Genza raised one wing.
Silence.
— One tree, — he said. — The rest built here.
He gave Tickoni a hard look.
— Waste heat only.
Tickoni drew a black ticket through the air.
One tree.
One raised orchard.
One Long Night.
Waste heat only.
The Seal of the Ticket glowed.
The next morning, Genza sent for Yamori, a small green lizard craftsman with a belt crowded by mismatched tools.
— Can you make it grow without Akane equipment? — Tickoni asked.
— I can make it fit Kori tools. That does not make it Kori. One guild makes the lock. Another makes the key. A third measures the door. Then someone loses the instructions and calls for me.
— You dislike being needed?
Yamori snapped the belt shut.
— I dislike being needed for stupid reasons. One day, I’ll build a workshop that needs no second workshop.
They built beside the bathhouse. Cedar beams raised the sapling above the ice. Yamori built it with visible joints any Kori smith could open. Waste warmth ran through exposed pipes.
Through the Long Night, Maro worked the settlement desk while Tickoni tended the branches and Yamori adjusted pipes and vents.
The Long Night earned its name. A storm tore away a screen. Ice bent the platform.
They rebuilt.
Then the pipes began to knock.
Once.
Twice.
A third blow shook the bathhouse floor.
Water climbed backward through the drains.
Yamori dropped beside the orchard line and pressed one hand against the pipe.
— Heat is going somewhere it shouldn’t.
Yamori opened a maintenance hatch beneath the bathhouse.
Steam rose from the darkness.
They descended.
Maro followed with the Exchange reserve ledger tucked beneath his coat.
The new pipes ended after twenty steps.
Older Kori iron continued below them.
Deeper still, green bronze channels vanished into the rock.
Yamori touched one.
— Three generations of plumbing. Nobody removed anything. They just built over it.
The tunnel trembled.
Something enormous shifted beneath the water.
Tickoni raised its lantern.
A blue eye opened.
Coils disappeared into the flooded cavern beyond the light.
Mizuchi.
The old water dragon lay wrapped around the forgotten watercourse, warm water running across its scales.
Maro whispered:
— The tree woke that?
— The heat did, — Yamori said.
Mizuchi moved again.
The bronze pipes screamed.
A pressure gauge jumped.
Yamori ran to two corroded valves.
— East vent takes pressure away from the bathhouse.
— Where does it go? — Tickoni asked.
Yamori pointed upward.
— Ask the ledger.
Maro flipped through the reserve plans.
— Eastern rice vault.
The Seal of Weight ignited.
One path opened beneath Tickoni’s feet.
In its reflection, Yamori turned the eastern valve.
Pressure fell.
Heat climbed through the buried line.
Above them, steam entered the rice vault.
Sacks darkened.
Maro checked the ledger.
— Can Kori survive it? — Yamori asked.
— It’s almost ten percent of the reserve. But yes. The other vaults carry us through the thaw.
Yamori reached for the valve.
— Then we vent.
— No, — Tickoni said. — That is winter food. I can see exactly what that valve destroys. We are not opening it.
— And this one?
The second path appeared.
Pressure travelled through the bronze system, reached an unrecorded junction—
and Weight went black.
— I don’t know, — Tickoni said, quieter now.
Suddenly, Mizuchi shifted.
The pipes groaned.
Tickoni did not move.
The cavern wall cracked.
A bronze pipe tore free.
Steam vanished into another buried channel. Pressure dropped sharply.
For one breath, everything became quiet.
Then a deep bell rang somewhere above them.
Maro opened the ledger again.
— Oil cellar.
A sharp smell reached the tunnel.
Oil trickled through the stones beneath their feet.
— How much? — Tickoni asked.
— Nearly one fifth of all heating oil was stored there. It’s draining into the old channel as we speak.
Silence.
— We could afford the rice, — Maro said.
He closed the ledger.
— You saved one tenth of the grain. It cost Kori one fifth of its heat. Your seal showed us the cost. It did not choose for us.
Yamori followed the old bronze line west.
— Another outlet.
The Seal of Placement burned.
Three paths appeared.
Bathhouse.
Watercourse.
Harbor.
They crossed at one broken junction.
Tickoni pointed.
— There.
Yamori rebuilt it.
Silver. Iron. Bronze.
Then he opened the harbor line.
Steam rushed west.
The system vented cleanly.
— Done.
They climbed back into daylight.
Genza waited beside the orchard.
— What happened below?
Tickoni lowered its head.
— I made the wrong call. And it cost the Exchange a fifth of the winter oil.
Genza looked toward the damaged pipes.
— Then the debt will be repaid.
Tickoni followed his gaze.
— I suppose we go back below.
— Oh, no. No, no.
Genza folded his wings.
— I have just the work for you two.
The Long Night was not easy on Kori. Street lanterns went dark, workshops closed early, and the New Year fires were never lit.
Tickoni and Yamori hauled cargo, cleared ice, scrubbed floors, and worked wherever another pair of hands was needed.
At night, they tended the tree.
By summer, Genza considered their debt settled.
More importantly, the tree had survived.
One apple hung from a branch.
The island gathered.
Tickoni cut it and took the first bite.
Maro waited.
— Well?
Tickoni took another.
Genza held out one wing.
Tickoni gave him a slice.
— That is a very fine apple.
Children cheered.
The Exchange opened a red counter:
KoRI APPLES
TRIAL SUPPLY
Travelers gathered, and a line quickly formed.
— One slice per person! — called a delighted clerk.
Genza handed Maro the blue settlement ledger.
— The thaw does not end your place here.
Later, at the harbor, Maro faced Tickoni.
— I think I’ll stay through the next season. I know how to place a trade. Before I invest again, I want to understand what happens after it reaches a place like this. Deliveries. Reserves. Payments. What keeps the whole thing standing.
— Yes. I have more to learn too.
A pause.
— Before I can bind the Order, I need to learn how to bind myself.
They bowed.
As Tickoni turned away, heat flickered beneath its ribs.
Beside Ticket, Weight, and Placement appeared a curved black stroke.
No name came.
Yamori leaned closer.
— Another seal?
— I don’t know.
— Doctor first, then.
The next morning, Tickoni found Yamori already repacking his tools.
— Where next? — Yamori asked.
Before Tickoni could answer, Genza approached with a rolled map beneath his wing.
— The western channel opens tomorrow.
He handed Tickoni the map.
— There are old mines beyond Kori. Traders once brought machinery there from every shore. Their standards are... unusually accommodating.
Yamori unfolded the map.
— These markings don’t even use the same measurements.
— Precisely.
Genza glanced toward the eastern rice vault.
— I think Kori has benefited sufficiently from your attention.
— Tomorrow, then.
The torn sail rose.
Behind them, Maro stood beneath the Exchange lanterns with the blue ledger beneath his arm.
Ahead, dark mountains waited beyond the ice.
Long after Tickoni’s sail vanished, Genza returned to the Exchange.
He placed a black envelope beside the winter reserve ledger.
On its face:
TO THE ORDER OF THE ONI
Genza pressed his name-seal in red beneath the words.
Then he looked toward the little red apple counter.
— One tree. We need more.
His eyes drifted to the map of the western mines still open on his desk.
After a moment, he folded it shut.
— The miners will manage... they usually do.
Release Notes
Epic V2.21 — macOS Retail Runtime Support
Tickoni can now be built, installed, and run on macOS, Linux, and ordinary consumer hardware without weakening the high-throughput Firedancer engine or Tickoni's financial control boundaries. Linux remains the full high-throughput Firedancer tile runtime. macOS gains a supported retail runtime path for deterministic paper and sandbox demos, policy decisions, audit output, and replay proofs.
consumer hardware -> tickoni doctor / build -> retail runtime (paper-only) -> policy decision + audit + replay proof
Platform support is now part of the trust surface. Every build, installer, demo, and audit artifact identifies which Tickoni version, host OS, architecture, runtime tier, and isolation guarantees produced it. Tickoni exposes explicit runtime support tiers rather than disguising every host as an equivalent production engine.
Headline Features
1. macOS Retail Runtime Path
Tickoni can now build and run on macOS consumer hardware. The macOS retail runtime supports deterministic paper and sandbox demos, policy decisions, audit output, and replay proofs — without a silent port of the full Firedancer hot path.
- Build Tickoni on macOS with the same Firedancer modules the project actually reuses (macOS build scoped to reused modules only — no unnecessary ports)
- Run retail demo manifests that exercise normalized event hashing, policy decisions, proposal hashes, audit records, and replay conformance
- Cross-platform fixture flows produce equivalent normalized event hashes, policy outcomes, proposal hashes, audit records, and replay results across Linux full-runtime mode and supported retail modes
2. Platform Tier Identity
Every Tickoni build and runtime now carries an explicit platform tier. tickoni --version, tickoni doctor, and demo preflight output identify Tickoni version, build id, git revision or release digest, OS, architecture, runtime tier, isolation tier, demo compatibility, and live-execution status.
- Runtime mode and degraded guarantees are visible in CLI, CaseOps, audit, replay, metrics, diagnostics, and documentation
- Unsupported host capabilities, missing prerequisites, stale demo manifests, unsupported CPU/OS combinations, and attempted live execution fail closed with actionable diagnostics
3. Verified Consumer Packages
Consumer packages include only Tickoni-owned code and the Firedancer substrate Tickoni actually reuses. Solana validator tiles, RPC schemas, and unrelated source are excluded. Install and update paths provide a manual verification route with checksums, signatures, or attestations.
- Per-user install locations with no hidden privilege escalation or silent isolation downgrade
Governance and Safety
1. Fail-Closed by Default on Unsupported Hosts
Unsupported host capabilities, missing container/VM/native prerequisites, stale demo manifests, unsupported CPU/OS combinations, and attempted live execution fail closed with actionable diagnostics. Retail modes cannot silently downgrade isolation.
2. Capability Envelopes, Audit, Replay, and Adapter Boundaries Preserved
No weakening of capability envelopes, audit hash chaining, replay substitution, adapter boundaries, sandbox expectations, or fail-closed behavior for portability. Retail modes stay paper/sandbox. Approved execution (tkexec) is not enabled on consumer macOS modes. Live trading, payments, crypto transfers, ledger posting, and privileged execution are disabled.
3. Model Gateway and Tool Broker Governance
Retail modes may use mocks or local governed providers only through tkmodl. No direct provider credentials during install. Any adapter reads or substitutes route through governed boundaries (tktool / tkadpt).
Platform Work
1. Build Scope Limitation to Reused Firedancer Modules
Build, test, and coverage are limited to only the Firedancer modules Tickoni actually reuses for retail modes. Mac builds do not attempt to port modules they do not need. libfd_tango.a, libfd_util.a, and libfd_ballet.a do not compile, link, or export the same symbols natively on macOS when the compiler or linker cannot resolve them — conditional runtime checks are not sufficient; build scoping prevents the symbols from entering the artifact in the first place.
2. Cross-Platform Conformance Evidence
Deterministic fixture flows produce equivalent normalized event hashes, policy outcomes, proposal hashes, audit records, and replay results across Linux full-runtime mode and supported retail modes. Conformance evidence is now part of the product plan and testing surface.
3. Install, Update, and Uninstall Paths
Official install, update, uninstall, checksum/signature, and manual verification paths are defined for Linux and macOS. Consumer packages are scoped to only reused Firedancer substrate.
Demo
Command or flow: run tickoni doctor on a supported macOS machine, then run the selected retail demo manifest for a deterministic paper investment or money-movement proposal.
tickoni doctor
tickoni demo --manifest retail-paper-investmenttickoni doctorreports platform tier, isolation tier, demo compatibility, and live-execution status- The demo produces a policy-checked proposal, audit JSONL output, and replay match
- Version and provenance metadata are included in all output artifacts
- An unsupported-host or blocked-flow example demonstrates fail-closed behavior with actionable diagnostics
What Comes Next: V2.22 — Windows Retail Runtime Support
V2.22 carries the V2.21 pattern to the Windows environment. Where V2.21 establishes the macOS retail runtime path, V2.22 adapts it for Windows consumer hardware. The shared foundations — tier definitions, build scoping, preflight, conformance evidence, trust documentation — established in V2.21 form the template. Linux remains the full high-throughput Firedancer tile runtime. macOS and Windows each gain their own supported runtime path for deterministic paper and sandbox workflows.
