Skip to content

Releases: zixiaoshawnshi/DataScientist-OS

V0.5.0 Update

Choose a tag to compare

@zixiaoshawnshi zixiaoshawnshi released this 29 Sep 12:02
a6e2538

Bundles everything merged into main since v0.4.0 — the Spine & Scale refactor (#15) and daemon channels + autostart (#16). This release changes the tool surface and how dsos runs; read "Upgrading" below.

How dsos runs now

  • One daemon per store. A long-lived dsos.daemon owns the store and serves the GUI plus both MCP profiles. python -m dsos.mcp_server is now a thin stdio shim that forwards to it — and starts it for you the first time a client needs it, detached, configured by the registration's DSOS_DB_PATH / DSOS_PYTHON_PATH. Registering the MCP server is still the whole install.
  • Two profiles. Producer (analysis agents, 12 tools) and a new consumer profile for agents that have no data and cannot run code — a PM backing a claim: find_evidence, get_claim, cite, ask. Contradicted, stale or superseded results come back with their standing attached, never silently.
  • Prod and dev never collide. A released install's daemon takes a port in 8765–8779, a source checkout's in 8780–8799; clients find it through <store>.daemon.json, so the number never matters.

What changed for agents

  • Lifecycle. Artifacts are exploratory, result or superseded. run_sql/run_python output starts exploratory and is hidden from search until claimed (mark(status="result")); save_artifact is a result. New mark tool; validations are append-only (a human verdict outranks a later model one), and stale is derived from a source's refresh_after.
  • Questions and decisions. start_session records the question and shows a coordination board of related in-flight, waiting and answered questions; new close_question and record_decision. A consumer's ask lands on that board, and asking again returns the answer once it exists.
  • Inputs are bound as in_1..in_N (in input_row_ids order), plus inputs["<row_id>"] in Python — no more title-derived table names.
  • A failed run is an execution, not an artifact: the response carries an execution_id and no row_id.
  • Removed: promote_scratch (use status), list_skills, save_skill, publish_report. save_template / list_templates stay.

Upgrading from v0.4.0

  1. pip install --upgrade "git+https://github.com/zixiaoshawnshi/DataScientist-OS.git@v0.5.0" into the same venv.
  2. Make sure the MCP registration sets an absolute DSOS_DB_PATH (the shim will not start a daemon without one) and DSOS_PYTHON_PATH, and runs python -P -m dsos.mcp_server — -P stops a dsos checkout in the working directory shadowing the installed package.
  3. Reconnect. The first connection starts the daemon, which migrates the store (schema v0 → v4) after writing a backup to <store>.bak-v0. Old ready/ok rows become result; legacy error rows stay hidden.
  4. pi users: clear ~/.pi/agent/mcp-cache.json so the new tool list is picked up.

Managing the daemon yourself instead (a service, a login task): set DSOS_NO_AUTOSTART=1 on the registrations and run python -P -m dsos.daemon with the same environment. See AGENTS.md for the full recipe.

V0.4.0 Update

Choose a tag to compare

@zixiaoshawnshi zixiaoshawnshi released this 27 Sep 00:07
693d926

Bundles everything merged into main since v0.3.0:

  • run_python now always executes in a subprocess against a configured python_path (falls back to DSOS_PYTHON_PATH, then the server's own interpreter). The server process itself never execs agent code anymore, so the analysis stack (matplotlib/scipy/scikit-learn/statsmodels) moves to an optional analysis extra instead of being a hard dependency. requirements=[...] now only fills gaps via uv on top of python_path, rather than resolving a whole environment every call.
  • GUI dark mode, plus a fix for the lineage graph not rendering.
  • GitHub Pages install docs: per-agent install tabs and updated AGENTS.md/@latest tag guidance.

V0.3.0 Update

Choose a tag to compare

@zixiaoshawnshi zixiaoshawnshi released this 26 Sep 19:46
dfd91c3

Add auto release + minor polishes

v0.2.0

Choose a tag to compare

@zixiaoshawnshi zixiaoshawnshi released this 26 Sep 05:50
3647368

v0.2.0

Only change since v0.1.0: a release-version update check.

The MCP server now checks GitHub's public Releases API at startup
(best-effort, cached 6h, never blocks/fails startup) and prepends a short
notice to its MCP instructions if a newer tagged release exists than
what's installed. Only applies to a real installed release (pip install
git+...@vX.Y.Z) — skipped entirely for an editable dev install, since main
is routinely ahead of the last tag and the comparison would be backwards
for whoever's doing the releasing.

See dsos/update_check.py and the README's "Checking for updates" /
"Cutting a release" sections. v0.1.0's release notes cover everything
else (GUI, publish_report, skill library, templates, scratch mode,
actionable diagnostics) — none of that changed in this release.

v0.1.0 - first tagged checkpoint

Choose a tag to compare

@zixiaoshawnshi zixiaoshawnshi released this 26 Sep 05:29

v0.1.0 — first tagged checkpoint

DS Artifact OS: an MCP server that makes queries, transforms, datasets,
charts, and narratives first-class, versioned, searchable artifacts — the
working layer underneath an agent's analysis. See "DS Artifact OS — Design
Doc.md" for the full pitch and data model.

Core (layer 1): SQLite-backed artifact store (save/get/search, versioned),
lineage graph, sessions, and a free tool-call trace (dsos/store.py). DuckDB
(run_sql) and Python (run_python) execution against artifacts, each run
auto-recorded and auto-lineage-linked (dsos/execution.py). Keyword-first
(FTS5), semantic-fallback search (dsos/embeddings.py).

MCP server (layer 2, dsos/mcp_server.py): start_session, search_artifacts,
get_artifact, save_artifact, run_sql, run_python, get_lineage,
publish_report, list_skills, save_skill, list_templates, save_template,
promote_scratch.

Since the original ~7-tool contract:

  • scratch=True on run_sql/run_python: an ephemeral, inline-only result with
    no artifact/lineage footprint, promotable later via promote_scratch.
  • A seeded skill library (workflow guidance: discovery, EDA, charting,
    stats, modeling, reporting) and a template layer (chart styles + report
    layouts), both versioned artifacts rather than new subsystems.
  • publish_report renders a narrative + its {{artifact:...}} embeds into one
    self-contained local .html file; dry_run previews broken/stale embeds
    before a real publish.
  • Actionable-diagnostics pass driven by real agent usage feedback: named
    missing-package hints instead of bare ImportErrors, a clear
    content-missing message instead of a crash when a blob is gone from
    disk, and size-capped inline previews that say what was truncated.

GUI (layer 3, read-only, dsos/gui.py): a separate FastAPI+Jinja2+htmx
process — not an MCP tool — browsing the same SQLite store: sessions, a
live tool-call feed, a searchable artifact gallery, artifact detail
(preview/execution trace/lineage/versions), and a Mermaid.js lineage
graph.

Packaging: added the [build-system] table pyproject.toml was missing
(pip install -e . previously only worked via pip's undocumented legacy
fallback) and fixed a real packaging bug it caught — the GUI's Jinja
templates were missing from package-data and silently vanished from a
real (non-editable) build. Verified end-to-end against a throwaway venv.

Known gap: a pre-existing test-isolation bug (all four smoke tests
resolved their DB path under the shared data/ directory, so their startup
cleanup wiped the real store's blob files) has been fixed, but any blobs
lost before the fix are not recoverable from this repo.