Repository navigation
Remove stale community/astral/hub, add openbrain as the device path - #376
Conversation
main.py carries the generated engine inline and does not import this directory; the three comment lines naming it are build provenance, not a dependency. The copy here has not moved since it was added and is now well behind the source it was generated from, so it serves stale code to anyone who reads it next to a main.py that no longer matches. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
🔀 Branch Merge CheckPR direction: ✅ Passed — |
✅ Community PR Path Check — PassedAll changed files are inside the |
✅ Ability Validation Passed |
🔍 Lint Results🔧 Formatting fixes availableThis PR is from a fork, so fixes could not be pushed automatically. Download the git apply autofix.patch✅
|
community/astral is version one: one self-contained main.py with the engine generated inline, which answers for any agent with no device and no dependency. It is unchanged here and stays as PR openhome-dev#361 accepted it. This is the device path, and OpenBrain is what it is registered as on the platform, so the directory and its config.json say the same thing. The engine moved out of the ability into a compiled package: what runs inside the OpenHome runtime is a short shim, and the answers come from a dependency pinned by SHA-256 in requirements.txt. It needs a connected DevKit, its category is local, and it is a sibling of the cloud skill rather than a replacement for it. Installing one does not disturb the other, and a user without a device keeps the version that works for them. devkit_functions.py holds the device work, telemetry reads and MQTT publishes, where a reviewer can see it. BOUNDARY.md states the two-function seam with the engine and what is MIT versus proprietary. Nothing in this directory is obfuscated and there is no binary in it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
9178c9c to
2264c08
Compare
uzair401
left a comment
There was a problem hiding this comment.
Confirmed hub/ is fully removed and nothing non-exempt remains in its place — the new openbrain DevKit bridge does the print()-only output, the FUNCTION_REGISTRY/dispatcher shape, and result-guarding correctly, and respects the device timeout. This closes out the risk flagged on #373 cleanly, without reintroducing it under a different name.
One small thing worth a look, not a blocker: config.json still names it "Astral DevKit" / astral-devkit rather than "OpenBrain" as the PR description says — just a naming mismatch to reconcile whenever convenient.
Approving.
Two changes to the Astral ability, neither of which alters
community/astral/main.py.1. Remove
community/astral/hub/Added in #373.
main.pycarries the generated engine inline and does not import thisdirectory; the three lines naming it are build provenance comments. The copy here has
not moved since it was added and is now well behind the source it was generated from,
so it serves stale code next to a
main.pythat no longer matches it. Removing itchanges no behaviour: the ability's imports after removal are
datetime,fractions,math,re,src.agent.*,typing,zoneinfo.2. Add
community/openbrain/community/astralis version one: one self-contained file that answers for any agentwith no device and no dependency. It stays exactly as #361 accepted it.
This is the device path. The engine moved out of the ability into a compiled package,
so what runs inside the OpenHome runtime is a short readable shim and the answers come
from a versioned dependency. It is a sibling, not a replacement. A user without a DevKit
keeps the version that works for them.
main.py, 6.7 KB, takes the turn, calls the device, speaks, hands back on no answerdevkit_functions.py, the device-side shim: engine call, telemetry reads, MQTT publishesrequirements.txt, namesastral-kernel, pinned to a release asset by SHA-256BOUNDARY.md, the two-function seam and what is MIT versus proprietaryconfig.json,unique_name: OpenBrain, categorylocalastral-kernelis a compiled wheel for CPython 3.13 on linux aarch64, published as aGitHub release asset and pinned by hash, so pip verifies it on install. The integration
files here are MIT. Nothing is obfuscated and there is no binary in the package.
openhome validate community/openbrain --jsonreturns{"ok":true,"errors":[],"warnings":[]}.Noted, not fixed
openhome validate community/astralcurrently fails withMissing required file: config.json. That predates this PR and I have not added one, because choosing a triggerset for a frozen artifact is a decision for the ability's maintainers rather than a
mechanical fix. Happy to add it here if you would like.
Two things you may want to know about the CLI
openhome deployonly creates. There is no update verb, and no other command writes to adeployed ability, so there is no API path to shipping a second version of anything: the
dashboard's Upload ZIP control is the only one.
Deploy also refuses any name that already exists with
User ability <name> already exists in other users account, including abilities owned by the account making the request. Itsaid that for an ability this account had created four minutes earlier. Whatever the
uniqueness check is doing, the message is wrong often enough to send people looking for a
conflict that is really their own record.
🤖 Generated with Claude Code