Two installed development trials. Garden ran on its own disposable node; the Content, Messaging and Work composition ran on another. Neither is a customer deployment or release qualification.
A new author starts with a familiar task
Sidecat applications should be able to own their own data while using a common way to accept calls, return results, and announce events. To see whether that path was understandable, we asked a fresh agent to follow the application-authoring guide and make a tiny app without copying another app’s handler code.
It chose a garden-watering log. The published example is written in Go, with its own SQLite table. A person can record that a plant was watered, ask for their own watering history, and receive a “watering logged” event. One person can see only their own records and events.
Record watering
A log call saved a watering entry and returned a reference to it.
Review history
A history call returned the caller’s entries, not another person’s.
Notice the change
A declared event reported the new entry to a permitted reader.
The author committed the descriptor, schemas, host entry point, storage, handlers and tests. Vet, build and package tests passed on that exact source. A separate node was then prepared with the supported installer. Two enrolled callers logged different plants; each saw only their own history and event. Repeating one request key returned the original result without a second entry, and unsupported delegation was refused.
The installed run found a real error path: an amount of zero was refused before admission by the app host, yet the public caller saw an unknown outcome. A host-only repair made the same kind of request return a definite invalid_input/not_applied refusal; reconciliation still found no attempt. The original failure and the retest are both retained. An out-of-tree Go module also fetched the published Sidecat revision and built the app, but that separately built host was not the one installed.
The first author had to search lower-level documentation to compute contract identifiers and test a host. Public preparation and test-driver helpers have since been written. A later source review found that Garden history needed bounded pages. In a new disposable installed trial, Garden 0.2 returned 50 entries followed by the four remaining entries, excluded a later write from the unchanged cursor walk, and kept two callers’ histories separate. That trial exposed another error path: an out-of-range history limit became a public internal failure. After a host fix, fresh invalid-limit calls returned invalid_input/input_schema with query consequence none, while a valid read still worked. The original failure and corrected retest remain in the evidence.
A separate installed case: one Note, several uses
A different disposable-node test exercised composition among the existing Content, Messaging, and Work applications. Content made a Note. Messaging used that same Note as a Message’s content. Work described a piece of work with that Note, and two Plan occurrences referred to the Work and Note. Checks in the retained run agreed that the references pointed to the same Note revision, and completing one occurrence left the other occurrence and Work’s current state unchanged.
The test then stopped Messaging and tried to post some text. Content still created the Note, but making the Message failed before dispatch, leaving a partial result. After Messaging was active again, a fresh client resumed the operation using the retained Note and request keys. A second resume returned the same result. A complete room read showed that Message once, with the original Note as its content.
This demonstrates one useful recovery boundary: an unavailable application did not discard the content already saved by another application, and resuming did not duplicate the Message. The run did not test a response lost after a Message had been committed; that is a different failure case.
What the evidence supports
The short evidence manifest separates original source tests, both installed Garden runs, their failure-path retests and the installed composition. Commands and raw outputs remain in the project’s trial records. The Garden source is public; the private trial packet and built binaries are not public downloads.
These tests give the authoring tools a concrete target: an app must work with independently owned neighbors and preserve definite outcomes across the public interface. The Version 1 contract sets the requirements; the progress page tracks event binding, recovery, capacity and public release work still open.