Repository navigation
Releases: zixiaoshawnshi/DataScientist-OS
Release list
V0.5.0 Update
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.daemonowns the store and serves the GUI plus both MCP profiles.python -m dsos.mcp_serveris 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'sDSOS_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,resultorsuperseded.run_sql/run_pythonoutput startsexploratoryand is hidden from search until claimed (mark(status="result"));save_artifactis aresult. Newmarktool; validations are append-only (a human verdict outranks a later model one), andstaleis derived from a source'srefresh_after. - Questions and decisions.
start_sessionrecords the question and shows a coordination board of related in-flight, waiting and answered questions; newclose_questionandrecord_decision. A consumer'sasklands on that board, and asking again returns the answer once it exists. - Inputs are bound as
in_1..in_N(ininput_row_idsorder), plusinputs["<row_id>"]in Python — no more title-derived table names. - A failed run is an execution, not an artifact: the response carries an
execution_idand norow_id. - Removed:
promote_scratch(usestatus),list_skills,save_skill,publish_report.save_template/list_templatesstay.
Upgrading from v0.4.0
pip install --upgrade "git+https://github.com/zixiaoshawnshi/DataScientist-OS.git@v0.5.0"into the same venv.- Make sure the MCP registration sets an absolute
DSOS_DB_PATH(the shim will not start a daemon without one) andDSOS_PYTHON_PATH, and runspython -P -m dsos.mcp_server—-Pstops a dsos checkout in the working directory shadowing the installed package. - Reconnect. The first connection starts the daemon, which migrates the store (schema v0 → v4) after writing a backup to
<store>.bak-v0. Oldready/okrows becomeresult; legacy error rows stay hidden. - pi users: clear
~/.pi/agent/mcp-cache.jsonso 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
Bundles everything merged into main since v0.3.0:
run_pythonnow always executes in a subprocess against a configuredpython_path(falls back toDSOS_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 optionalanalysisextra instead of being a hard dependency.requirements=[...]now only fills gaps viauvon top ofpython_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/@latesttag guidance.
V0.3.0 Update
Add auto release + minor polishes
v0.2.0
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
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.