# DS4Server implementation plan Only unfinished implementation work belongs here. DwarfStar remains the behavioral oracle for model execution, token processing, context accounting, KV-cache behavior, the HTTP API, and the built-in agent loop. ## 1. Add A2UI local-chat surfaces - Use the public [A2UI protocol](https://a2ui.org/) as the normative reference. Implement its versioned, streaming JSON messages and keep `../bDS2` only as a reference for the research-oriented components and presentation we want. - Define a DS4Server catalog and native Iced renderer for the A2UI Basic Catalog plus useful research surfaces such as charts, tables, metrics, timelines, maps, mind maps, tabs, cards, lists, and forms. - Support `createSurface`, incremental `updateComponents` and `updateDataModel` messages, and `deleteSurface`. The model must be able to add, replace, and update components and data over multiple responses without recreating the whole surface. - Persist A2UI messages with the chat and restore the resulting surfaces after relaunch. Validate messages against the selected catalog, report validation failures back to the model, and retain a readable fallback in the transcript. - Implement catalog-declared local functions and agent events. UI-local edits update the surface immediately; agent events return the action and current data to the conversation so the model can respond with further A2UI updates. The existing approval flow applies only if the resulting agent turn invokes an ordinary side-effecting tool such as shell or file mutation. - A2UI can be enabled/disabled in preferences to reduce the system prompt ## 2. Finish native project and chat controls - Add functional File, View, and Help menus; update native menu enabled state from the focused control; complete undo/redo behavior; and make transcript text selectable and copyable. - File menu has an "export" menu to save a chat as markdown - File menu has a new "menu" that opens a new chat in the currently active project. if the app is not on a project or session of a project in the sidebar, "new" is disabled - Explain model/checkpoint mismatches where a session must rebuild context instead of resuming its existing checkpoint. - the hellp menu must open a window with an actual documentation in it, that still needs to be constructed from the information and implementation ## 3. Add Dev Brain support - Let the user select one Obsidian vault and give the local agent bounded Markdown memory_search, memory_read, memory_create, and memory_append operations outside project folders. - the dev brain uses simple markdown lines to separate multiple memories - check LLM wiki ideas online to see how obdsidian should be used by the LLM as a memory storage - dev brain can be enabled/disabled in preferences to reduce system prompt