Skip to content

Move goldilocks-agent to goldilocks-core v0.3.0 - #49

Open
junwen94 wants to merge 2 commits into
mainfrom
feat/core-v0.3.0
Open

junwen94 wants to merge 2 commits into
mainfrom
feat/core-v0.3.0

Conversation

@junwen94

@junwen94 junwen94 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Closes #48
Closes #47

goldilocks-core v0.3.0 (stfc tag, bf8355f) is the first release with the
band and phonon tasks. Its embedded Workbench speaks vocabulary 5, not 1,
and its Workspace snapshot replaced the fields the chat executor read
(failure, outOfDate, lastDownload, attemptedStructureInput) with
per-draft outcomes (explain, preview, inspectFailure, startupFailure).
So the tarball, the Docker image's core and PyPI mode had to move
together, and the executor had to be rewritten against the new API.

- scripts/bump_core.py (`uv run poe bump-core vX.Y.Z`) clones the tag,
  builds goldilocks-workbench from it, vendors the tarball and rewrites
  core_pin.json, so every pin site moves in one step. The pin no longer
  carries a separate source_commit: the tarball is built from the pinned
  commit, and tests/test_core_pin.py checks that its name and package
  version are the release's.
- dft_open_structure returns a summary of the structure (with its
  partially occupied sites, which core now refuses to recommend for), the
  calculation it opened into, the overrides it cleared, and the tasks
  core offers, so band and phonon reach the model from capabilities.
- dft_review returns each record's value and source, the warnings, and
  the blocking findings with their remedies, without the provenance the
  cards show: a Si review the model reads is 7.5 kB, against 15.8 kB from
  /explain.
- dft_download_bundle reviews the current settings itself. When core
  blocks generation, its error names the decisions needed and their
  remedies, and tells the model to ask the user. A review or preview that
  failed on core's side (unreachable, 5xx, a missing asset) is sent again
  when the model calls a tool again, since core's failures stay with their
  draft; a 4xx refusal of the draft is not, as it would come back the same.
- The chat Download card saves the archive its own call produced, kept
  in the page by card id, instead of whatever the workspace holds by the
  time it is clicked. A card from before a reload says so.
- The restore forgets a saved structure only when /inspect refuses the
  input itself (invalid_structure, invalid_request); core failures no
  longer carry `retryable`.
- The fixtures are re-recorded from v0.3.0, plus a blocked verdict
  (isolation=slab on bulk Si).

The executor was also run against a real v0.3.0 core: open, review and
bundle for Si and for Si with the phonon task, the slab refusal with its
remedy, Fe bcc's is_magnetic from the ML tier, and a disordered FeNiO
refused at review. The agent's own mMACE setup is removed in the next
commit, which has to land with this one.
…ts time

Since goldilocks-core v0.3.0, mace-torch is an ordinary core dependency and
mMACE's backbone is installed with core's `workbench` assets. The agent's
own setup now breaks it: it installed the CheukHinHoJerry fork and
sphericart 1.0.9 over core's locked mace-torch, and pointed
GOLDILOCKS_MACE_BACKBONE at the v1.0 checkpoint, which core refuses, so
every is_magnetic request failed.

- GOLDILOCKS_AGENT_MMACE_ENABLED and everything behind it are gone: the
  fork and sphericart installs, the checkpoint download and md5 check,
  the injected GOLDILOCKS_MACE_BACKBONE, and `core.mmace_enabled`. Both
  modes run mMACE with nothing added, PyPI mode included. README and
  docs/configuration.md say how to upgrade an earlier setup.
- The first start after a core upgrade fetches the changed models and the
  PseudoDojo tables from PSDI before core listens, which took over 20
  minutes on slow links. The startup cap is now an hour; a step that
  fails still ends the start at once, since the spawned chain exits.
- A start that runs out of time is stopped before it is reported. It used
  to be left running, so the retry 10 s later spawned a second core while
  the first still held the port or its downloads.
- While starting, /api/core-server/ensure reports core's latest output
  line as `detail`, which DFT Workbench shows under its "first start takes
  minutes" note, instead of the last failure's detail, which a retry used
  to keep. It can stay on one line for minutes: `goldilocks assets
  install` prints nothing until every download is done.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: move goldilocks-agent to goldilocks-core v0.3.0 chore: drop the agent's own mMACE setup; core v0.1.2 installs mace-torch and the v2.0 backbone

1 participant