Skip to content

Releases: raktim-mondol/academic-harness

v0.25.4 — Fix new-session failure on current DSH

Choose a tag to compare

@raktim-mondol raktim-mondol released this 26 Oct 04:57

DSH's latest Cordis enforces service injection on preset plugins. paper-fold registered a tool through ctx.tools without declaring inject: ['tools'], so every new session failed with:

agent-preset/invalid: paper-fold (academic-harness/paper-fold): cannot get property "tools" without inject

This patch declares the dependency. New sessions create normally after restart, and paper_fold still passes its 85 checks. No account login or SDK change is involved.

v0.25.3 — Skill updates reach existing installs

Choose a tag to compare

@raktim-mondol raktim-mondol released this 25 Oct 21:45

The v0.25.2 Modal troubleshooting guidance only reached fresh installs: seeded skills are never overwritten by copyMissing, and the refresh hook only matched the old ResearchCraft marker.

This patch makes the seeder refresh first-party briefs that lack current-version markers:

  • modal — managed SDK runtime / pnpm allowBuilds troubleshooting
  • runpod — REST API v2 section
  • vastai — agent pitfalls section

Known-old content is replaced; local edits to other skills are untouched. Covered by test-academic-harness.

v0.25.2 — Modal SDK troubleshooting guidance

Choose a tag to compare

@raktim-mondol raktim-mondol released this 25 Oct 21:42

Agent-facing guidance for the Modal SDK runtime.

  • The modal skill now covers the managed SDK install ($DSH_HOME/modal-sdk), ACADEMIC_HARNESS_MODAL_SKIP_INSTALL, and the pnpm 11 ERR_PNPM_IGNORED_BUILDS workaround — including why allowBuilds must live in the profile's pnpm-workspace.yaml rather than the package.
  • The system prompt sends a failed manual Modal install to that skill before any profile config is edited, and prefers denying the two optional native builds over pnpm approve-builds --all.
  • Docs index changelog range updated.

v0.25.1 — Automatic Modal SDK, pnpm 11 fix

Choose a tag to compare

@raktim-mondol raktim-mondol released this 25 Oct 13:09

Removes the last manual step from Modal setup.

Modal SDK is automatic

modal_run loads the SDK from the profile when present. Otherwise it installs a pinned modal@0.11.1 into $DSH_HOME/modal-sdk on first use and loads it immediately — no dsh plugin add modal, no restart. Set ACADEMIC_HARNESS_MODAL_SKIP_INSTALL=1 to manage the SDK yourself.

pnpm 11 installs no longer fail

pnpm 11 exits nonzero when a dependency has unapproved build scripts. The managed runtime, and every existing profile that depends on Academic Harness, now gets:

allowBuilds:
  cbor-extract: false
  protobufjs: false

So a manual dsh plugin --profile <profile> add modal exits 0 instead of ERR_PNPM_IGNORED_BUILDS. Profile patching only touches Academic Harness profiles, preserves existing decisions, and is idempotent.

Verified with a live managed install (pnpm exit 0, ModalClient loaded), a temp-profile seed test, and the full CI suite.

v0.25.0 — Vast.ai, Runpod REST v2, compute hardening

Choose a tag to compare

@raktim-mondol raktim-mondol released this 25 Oct 12:02

Remote GPU compute now has three backends, and the two existing ones are fixed.

Vast.ai joins the tools

vastai_run searches live marketplace offers, rents the cheapest verified machine, uploads files_in, runs a command, copies files_out back, and destroys the instance. Supports spot bidding (bid_price), pinned offer_id, exact GPU counts, a price cap, and pre-created volumes. A temporary SSH key is registered per call and removed during teardown. New vastai skill and VAST_API_KEY in Settings.

Runpod moves to REST API v2

Ahead of the v1 retirement on 2026-11-15. Fixes the invalid CPU flavor/image, pins network-volume pods to the volume's data center, retries deletes, reports teardown failures with the pod id, and reconciles a create whose reply was lost.

Modal reaches parity

Persistent Modal Volumes, CUDA/PyTorch GPU defaults (no more CUDA-free python image), directory transfers, sandbox_id, retried teardown, and the SDK peer bumped to ^0.11.1.

Transfer and safety hardening

Symlink-safe workspace confinement (the workspace root itself is rejected), atomic directory downloads, both-end tar checks, capped output capture, transfer timeouts, and outputs that fail to transfer are no longer reported as "missing".

Skills and docs

Fixed the duplicate modal skill name (modal-usage), added stale-brief refresh during seeding, and documented all three backends, credentials, storage, and teardown behavior.

Tests: npm run test:compute (catalog/payload/registration/path/transfer) plus a mock-HTTP suite, wired into CI.

v0.16.2 — checkout move fix

Choose a tag to compare

@raktim-mondol raktim-mondol released this 22 Oct 18:50

Fixes

  • The vendored Academic Harness engine venv is now recreated with --clear when the plugin moves or its version changes. Previously a moved checkout left pip pointing at the old path, so ah_* tools failed to start.
  • The AH adapter test now tracks the package version, fixing the v0.16.1 CI failure.

Checkout moved

This release was cut from the renamed checkout at /home/raktim/academic-harness. The GitHub repo remains raktim-mondol/academic-harness.

No new installation steps: fresh installs use the v0.16.0 rename instructions. Existing profiles linked to the old checkout should point at the new path and run dsh plugin --profile academic-harness install.

Full Changelog: v0.16.0...v0.16.2

v0.16.0 — Academic Harness

Choose a tag to compare

@raktim-mondol raktim-mondol released this 22 Oct 14:01

Academic Harness is the new name

The repo, npm package, plugin, DSH preset, profile, launcher, and product name are now academic-harness / Academic Harness. The science, tools, and behavior are unchanged.

Fresh install

dsh plugin --profile academic-harness add github:raktim-mondol/academic-harness
dsh --profile academic-harness
# or, with the shared launcher:
academic-harness

npm is not published in v0.16.0; install from GitHub or a local checkout.

Updating from dsh-researchcraft

node scripts/migrate-profile.mjs --profile researchcraft --to academic-harness --apply
dsh plugin --profile academic-harness install

The migration backs up the profile, moves the package/bundle entries, merges API keys into the new academic-harness settings entry, updates the preset default, and renames the profile directory.

This release:

  • keeps the legacy researchcraft preset registered so sessions created before v0.16.0 still open;
  • migrates API keys per field from the old profile row and the old dsh-researchcraft-keys namespace;
  • keeps dsh-researchcraft as a transition launcher alias;
  • adds scripts/test-rename.mjs and profile-migration tests;
  • removes two tracked __pycache__ files and adds .npmignore.

The vendored Academic Harness engine keeps its name and ah CLI. Its former upstream URL now refers to this plugin; docs/ACADEMIC-HARNESS-ENGINE.md and vendor/academic-harness/SOURCE.txt are authoritative.

Verified: rename/migration tests, legacy-preset boot, API-key preservation, full local test suite, and CI on main and v0.16.0.

Full Changelog: v0.15.0...v0.16.0

v0.15.0

Choose a tag to compare

@raktim-mondol raktim-mondol released this 22 Oct 12:03

Superseded by v0.16.0: the repo, npm package, plugin, preset, profile, and launcher were renamed to academic-harness. The commands below use the old name; see the v0.16.0 notes for the new install and migration commands.


zg ↔ PaperMemory v2 alignment

zg is now workspace context, not citation evidence. The system prompt and zvec-grep skill route claims, numbers, quotations, methods, and citations about a paper through PaperMemory (cite, quote_check, trace, get). zg remains fail-soft; PaperMemory remains fail-loud.

  • zvec_index action=start accepts exclude (-g globs). PaperMemory store, corpus/, *.db*, and evidence paths under the index root are excluded automatically.
  • Auto-ingest (paper_download, pdf_to_markdown write_to) now passes --cwd, so PaperMemory resolves the project from ah.yaml or manuscript root_path instead of the workspace directory slug. PAPERMEMORY_PROJECT remains the explicit override.
  • Re-vendors PaperMemory 0.2.1 (--cwd in CLI and MCP) and bumps the bundle revision to dsh15.
  • Verified: 90 upstream + 90 vendored tests, golden surface, exclusion unit tests, a real zg index exclusion run, and the 104-paper scale run at 28/28.

Install / update

dsh plugin --profile researchcraft update dsh-researchcraft

Restart dsh after updating; the managed PaperMemory venv is reinstalled as 0.2.1+dsh15 on the next ResearchCraft start.

Full Changelog: v0.14.1...v0.15.0

v0.13.2

Choose a tag to compare

@raktim-mondol raktim-mondol released this 21 Oct 09:39

Fix: Add Plugin no longer stalls on Academic Harness setup

A fresh package copy has no vendored Academic Harness .venv. The hooks row awaited venv preparation inside apply(), so pnpm could finish in seconds while the UI stayed on Installing for the two 5-minute uv/pip timeouts.

  • Hooks now register immediately; engine preparation runs in the background.
  • ah_* tools and hooks resolve the engine lazily and wait only when they are used.
  • Add Plugin and live-profile activation are no longer blocked by Python setup.
  • Verified with a simulated slow uv: hooks apply() returns in ~4 ms while setup continues in the background.

Install / update

dsh plugin --profile researchcraft update dsh-researchcraft

Or remove and reinstall from Plugins → Add plugin. Restart dsh after updating; reload the browser to clear a stale install dialog.

Full Changelog: v0.13.1...v0.13.2

v0.13.1

Choose a tag to compare

@raktim-mondol raktim-mondol released this 21 Oct 09:28

DSH 0.2.1

ResearchCraft now targets DeepSeek Harness 0.2.1 (latest published CLI: 0.2.1-rc.2).

  • dsh-* dependencies track 0.2.1-rc.2; engines.dsh declares >=0.2.1-rc.2 <0.3.0.
  • Removed the {{cwd}} persona clause (the variable was removed in 0.2.1) and subagent backgroundMode (managed activations).
  • Subagents now return { kind: "activation", subagentId } immediately; the final answer arrives as a completion notice. The prompt and Paper2Agent skills document send_message and interrupt_agent.
  • Added the official Standard time-context row.
  • web_fetch guidance now covers the local HTTP provider and the DeepSeek Search/Fetch setting; working_directory replaces the persona path reference.
  • CI pins DSH 0.2.1-rc.2.

Install from the Web UI

The bundle now installs from Plugins → Add plugin:

  • GitHub: github:raktim-mondol/dsh-researchcraft
  • npm: dsh-researchcraft (after the package is published to npm)
  • Local checkout: an absolute path to the repository

The package includes localized display metadata (locale/en.json, locale/zh.json) and an icon (assets/icon.svg).

Install / update

npm install -g @deepseek-ai/dsh
dsh plugin --profile researchcraft add github:raktim-mondol/dsh-researchcraft

# update
dsh plugin --profile researchcraft update dsh-researchcraft

From the Web UI, the bundle installs into the current profile; update it by removing and reinstalling. Restart dsh after updating and confirm the preset selector reads ResearchCraft.

Modal SDK is optional

modal moved to an optional peer so pnpm 11's blocked native builds (cbor-extract, protobufjs) no longer fail plugin installation. runpod_run works with its API key; modal_run returns sdk_missing until the optional SDK is installed:

dsh plugin --profile <profile> add modal

Full Changelog: v0.12.0...v0.13.1