Skip to content

Remove stale community/astral/hub, add openbrain as the device path - #376

Merged
uzair401 merged 2 commits into
openhome-dev:devfrom
Jmesmykil:remove-stale-astral-hub
Sep 17, 2026
Merged

uzair401 merged 2 commits into
openhome-dev:devfrom
Jmesmykil:remove-stale-astral-hub

Conversation

@Jmesmykil

@Jmesmykil Jmesmykil commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Two changes to the Astral ability, neither of which alters community/astral/main.py.

1. Remove community/astral/hub/

Added in #373. main.py carries the generated engine inline and does not import this
directory; 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.py that no longer matches it. Removing it
changes no behaviour: the ability's imports after removal are datetime, fractions,
math, re, src.agent.*, typing, zoneinfo.

2. Add community/openbrain/

community/astral is version one: one self-contained file that answers for any agent
with 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 answer
  • devkit_functions.py, the device-side shim: engine call, telemetry reads, MQTT publishes
  • requirements.txt, names astral-kernel, pinned to a release asset by SHA-256
  • BOUNDARY.md, the two-function seam and what is MIT versus proprietary
  • config.json, unique_name: OpenBrain, category local

astral-kernel is a compiled wheel for CPython 3.13 on linux aarch64, published as a
GitHub 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 --json returns {"ok":true,"errors":[],"warnings":[]}.

Noted, not fixed

openhome validate community/astral currently fails with Missing required file: config.json. That predates this PR and I have not added one, because choosing a trigger
set 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 deploy only creates. There is no update verb, and no other command writes to a
deployed 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. It
said 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

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>
@Jmesmykil
Jmesmykil requested a review from a team as a code owner September 13, 2026 18:02
@github-actions

Copy link
Copy Markdown
Contributor

🔀 Branch Merge Check

PR direction: remove-stale-astral-hub → dev

✅ Passed — remove-stale-astral-hub → dev is a valid merge direction

@github-actions

Copy link
Copy Markdown
Contributor

✅ Community PR Path Check — Passed

All changed files are inside the community/ folder. Looks good!

@github-actions github-actions Bot added the community-ability Community-contributed ability label Sep 13, 2026
@github-actions

github-actions Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

✅ Ability Validation Passed

📋 Validating: community/astral
  ✅ All checks passed!

📋 Validating: community/openbrain
  ✅ All checks passed!

@github-actions

github-actions Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

🔍 Lint Results

🔧 Formatting fixes available

This PR is from a fork, so fixes could not be pushed automatically. Download the python-lint-results artifact from the workflow run for the patch file, then run:

git apply autofix.patch

✅ __init__.py — Empty as expected

Files linted: community/openbrain/devkit_functions.py community/openbrain/main.py

✅ Flake8 — Passed

✅ All checks passed!

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>
@Jmesmykil
Jmesmykil force-pushed the remove-stale-astral-hub branch from 9178c9c to 2264c08 Compare September 13, 2026 19:32
@Jmesmykil Jmesmykil changed the title Remove stale community/astral/hub, add astral-devkit as the device path Remove stale community/astral/hub, add openbrain as the device path Sep 13, 2026

@uzair401 uzair401 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@uzair401
uzair401 merged commit 21a90e4 into openhome-dev:dev Sep 17, 2026
10 checks passed
@Jmesmykil Jmesmykil mentioned this pull request Sep 17, 2026
9 of 10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community-ability Community-contributed ability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants