T-ONN4-ontogen-headless-server-generation
State: planning/proposed · Impact: medium · Complexity: medium
Decide whether ontogen should generate the parts of headless HTTP mode that every app now writes by
hand, so a new ontogen app gets an <app>-server and web transport selection for free.
| Location | Role today |
|---|---|
github.com/sksizer/rust-ontogen | Ontogen source. gen_servers emits Axum routes (HttpAxum), Tauri IPC and MCP; gen_clients emits the TS transport and bindings. Nothing emits a server main, a listener or a resolved-paths route |
Root Cargo.toml | Pins ontogen = "=0.8.0" from crates.io, plus ontogen-core and ontogen-macros |
| Ontogen users | determined-platform and other determined crates, packages/rust/foreman, SDF (solutions/ontological/desktop), suspenders, pumice, agentpants. ontological-legacy pins ontogen by git rev, not the workspace version |
| Hand-written today | Each app’s server main and port binding (pumice, agentpants in-app; platform-server, sdf-serve as bins); the shared helper from T-UU4J |
Proposed
Section titled “Proposed”A written decision, as a decision entity or a section in the ontogen repo’s docs, that answers:
which pieces ontogen could generate (server main on the shared helper, resolved-paths route, web
transport selection), which stay hand-written, and the cost of each. If the answer is yes for any
piece, a task on sksizer/rust-ontogen and a follow-up task for the template.
Approach
Section titled “Approach”- List what each internal
<app>-serverand the shared helper contain afterT-LJLH; mark the lines that differ only by names ontogen already knows. - Read
src/servers/andsrc/clients/in rust-ontogen for where a server-main generator would sit, and whetherServersConfigcan carry port and state-builder hooks. - Check zoo and Augmented Books: would adopting ontogen be cheaper than their hand-written routers?
- Write the decision; file follow-up tasks.
| Area | Note |
|---|---|
sksizer/rust-ontogen src/servers/, src/clients/ | Generator surface |
Internal <app>-server bins | Evidence |
docs/planning/decisions/ | The decision |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: A decision entity records, per piece, generate or hand-write, with the reason.
- AC-2: Each “generate” answer has a follow-up task filed, on rust-ontogen and for the template.
Out of scope
Section titled “Out of scope”- Implementing any generator.
Dependencies
Section titled “Dependencies”T-LJLH, so the investigation reads the simplified helper, not a draft.
Discovery context
Section titled “Discovery context”- The
determined-platform/clippy.tomlcomment said ontogen was pinned by rev; it is pinned by crates.io version. The comment was corrected with this task.
Depends on
Section titled “Depends on”T-LJLH