Skip to content

v0.18.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@hlubek hlubek released this 12 Sep 12:00
· 136 commits to main since this release
d91c364

This is an alpha of v0.18.0, published so the engine-only flow gets real use before the stable release.
Prereleases stay out of releases/latest and the Homebrew cask, so installing it takes the explicit tag:

curl -sL https://github.com/networkteam/sdd/releases/latest/download/install.sh | sh -s -- v0.18.0-alpha.1

Breaking

  • The legacy /sdd skill family is gone, and /sdd now runs the engine. The bundled renders for sdd, sdd-bootstrap, sdd-catchup, sdd-explore and sdd-groom are removed. Run sdd init after upgrading: it deletes the installed copies it wrote, keeps any file you edited and names it in a warning, and leaves alone any skill it never wrote. Then work in /sdd as before. This release has no skill-driven flow to fall back to.

  • Every MCP tool now carries the session handle. start_session takes an optional project, and when several projects are reachable and none is passed it returns a listing instead of opening a session. resume_session takes the handle as its only argument. list_sessions is removed, replaced by the sdd sessions command. A connection close no longer ends a dialogue.

  • Search requires an explicit synchronization mode. Pass none, local or all. Local covers the selected branch snapshot, all also covers searched dependencies.

  • Go API for external compositions. NewApplication takes ApplicationOptions{Access, Sessions, StagedBlobs, Clock}. ProjectRuntimeOptions lost Sessions, StagedBlobs and Now, and its Embedder field replaces Embeddings. AccessResolver gains two required methods, AuthorizeSession (with OwnerOnly shipped) and ResolveParticipant. LoadWorkflow, ResumeWorkflow, AbandonWorkflowSession, ReconcileMutation and RecoverMutation no longer take a project parameter. NewBatcher is gone; compose embed.Batched instead.

  • Embedding stats operation names changed from embed-documents and embed-queries to embed-document and embed-query. Existing rows keep their old names and sdd stats shows both.

Highlights

  • One endpoint serves every project. The MCP server no longer pins a single project. The project is chosen at start_session and carried by the session from then on, and a move can also work in a project the home project declares as a dependency.

  • sdd index gc collects old index versions. Indexing no longer deletes anything, so sdd index and MCP reconciliation only add. The new command reports the store's version groups with their entry counts, age range and size, and deletes only through --drop <group> or --drop stale, refusing the group in current use. --repo and --all-repos cover connected stores. The report renders as a table on a terminal and as JSON on a pipe.

  • Indexing survives interruption. An entry becomes searchable only once its whole version is published, so a cancelled or failed run leaves no half-indexed entries behind, and a retry skips what already landed instead of starting over.

  • Sessions are visible from the CLI. sdd sessions lists this project's sessions with open work, and sdd sessions abandon <handle> tears one down. Sessions survive a server restart and are reachable from any client holding the handle.

  • The public LLM surface is complete. For hosts embedding SDD, pkg/llm and the new pkg/llm/embed carry the bounding, rate limiting, observation and batching decorators. Provider adapters no longer split batches or record their own stats, so one embed call is one request and the host composes the rest.

Other changes

  • Consumers can schedule or await indexing before a search runs, through ApplicationOptions.PrepareSearch, and scope it to the entries a write touched.
  • Graph reads acquire their source per operation, with branch-aware attachments.
  • sdd index reports the store size, and stale progress labels on empty entries are fixed.
  • Dependency-closure membership is decided on the resolved project, so a composition whose project IDs differ from its repo IDs can reach foreign targets.
  • New exports for external hosts: PageAttachment over fs.FS, and ReadProjectConfigFS.
  • Pre-flight tolerates a model response carrying surrounding braces.
  • A duplicate publication debug event is no longer logged.

Full Changelog: v0.17.0...v0.18.0-alpha.1