The GitHub org Molecule-AI was suspended on 2026-05-06; canonical SCM
is now Gitea at https://git.moleculesai.app/molecule-ai/. Stale
github.com/Molecule-AI/... URLs return 404 and break tooling that
clones / pip-installs / curls them.
This bundles all non-Go-module URL fixes for this repo into a single PR.
Go module path references (in *.go, go.mod, go.sum) are out of scope
here -- tracked separately under Task #140.
Token-auth clone URLs also flip ${GITHUB_TOKEN} -> ${GITEA_TOKEN} since
the GitHub token does not auth against Gitea.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Verify whether failure was setup-python toolcache class (now fixed via
orchestrator's runners-1-8 recreate) or real CODE class.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three refs in README.md, all anonymous (no auth tokens):
- Line 9: sister-repo cross-link to hermes-platform-molecule-a2a
- Line 43, 108: `git clone` install command (Quick start + Development)
All rewritten to canonical Gitea path. Anonymous-clone semantics
preserved — repos are public on Gitea, no env-var coordination needed.
Refs: molecule-ai/internal#37, molecule-ai/internal#38
NousResearch/hermes-agent#17751 (merged 2026-04-30) shipped a
comprehensive pluggable-platform system with:
- ctx.register_platform(name, label, adapter_factory, check_fn, ...)
- Open Platform enum (Platform('molecule') creates a pseudo-member
via _missing_() when the platform_registry knows about it)
That supersedes my upstream PR #18775 (which used a narrower
register_platform_adapter shape with a closed enum + custom
PluginPlatformIdentifier). Closing #18775 as redundant.
This plugin previously coupled to my fork's API. Migration:
- __init__.py register() now prefers ctx.register_platform when
available; falls back to ctx.register_platform_adapter on legacy
forks (template-hermes' baked-in fork until it migrates).
- adapter.py constructs Platform(name) when the enum accepts
'molecule', else falls back to PluginPlatformIdentifier(name).
Same wheel installs cleanly on stock hermes-agent (post-#17751)
AND on the legacy template-hermes fork build. Removed the test
stub of PluginPlatformIdentifier; tests now stub the open-enum
Platform shape with the same _missing_() behavior the upstream
ships.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The molecule-runtime spawned subprocess reads MOLECULE_WORKSPACE_TOKEN
to authenticate outbound platform calls (per
molecule_runtime.platform_auth.get_token). Inside a container the
runtime falls back to /configs/.auth_token; external runtimes (the
common case for this plugin) must supply the env var.
The env var was already inherited via os.environ.copy(), so existing
installs that DID export MOLECULE_WORKSPACE_TOKEN were fine. But there
was no signal to operators that the var was needed — silent 401s are
the worst failure mode. This adds:
- A soft warning in check_molecule_requirements when the token is unset
(does NOT block plugin load; in-container case still works).
- README env-var section now lists the token alongside WORKSPACE_ID.
- Two regression tests asserting (a) the token reaches the subprocess
when set and (b) is absent when unset.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Connects an external hermes-agent to the Molecule platform via the
molecule-runtime A2A MCP server. Inbound canvas-user and peer-agent
messages surface as hermes platform events; outbound replies route
back through send_message_to_user (canvas) or delegate_task (peer).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>