Releases
indi-nexus-v0.2.0
Compare
Sorry, something went wrong.
No results found
0.2.0 (2026-08-15)
⚠ BREAKING CHANGES
protocol: timestamps on Vector, Message and DelProperty are timezone-aware UTC, so comparing one against a naive datetime.now() raises TypeError. A naive datetime passed to prop.set(timestamp=) or device.message(timestamp=) is read as UTC, not local. parse_indi() no longer raises on a malformed value; it returns fewer messages, and the count is on the parser. format_number changes at exact half ticks.
Added
cli: add Typer serve/run/monitor commands (e583d5e )
client: add PropertyStore cache with subscriptions (56e7950 )
client: add public send() for forwarding messages upstream (9c573dd )
client: add reconnecting IndiClient (82a4cee )
cli: indi-nexus new scaffolds a runnable driver (c53b24c )
cli: run drivers in-process with serve --device (e19f168 )
docs: add a live weather demo running in the browser (da64737 )
docs: MkDocs Material site with live demo, both APIs, Pages deploy (1da18e4 )
docs: rebuild the weather demo around the real panel and a proper dashboard (a6c8d2d )
docs: redesign the custom UI as a dome wallboard (cf67168 )
driver: add @every and @on _new decorators (a9ee27e )
driver: add BoundProperty and Device base class (4a9f7b3 )
driver: add stdio runtime and package entrypoint (7a841d8 )
driver: built-in CONNECTION lifecycle and connection-gated jobs (1a32b14 )
driver: serialize dispatch, type properties, and quiet the wire (2824378 )
examples: add a dome simulator driver (aefacf1 )
examples: add a hardware-shaped weather station driver (a7da59d )
examples: add a telescope simulator driver (90ebb9e )
examples: add an Open-Meteo driver for real public data (4a6def5 )
examples: gate the dome behind CONNECTION; test both simulators (3a9bc9a )
examples: port libindi's CCD Simulator to the SDK (2f0626a )
examples: publish wind bearing and apparent temperature (65d92bb )
examples: serve any driver in the demo bridge via --device (463826e )
examples: serve several drivers in one panel (c3a325f )
panel: animate the messages rail and use a bottom drawer on mobile (da4804d )
panel: backend-less demo build with an in-browser dome simulator (460f072 )
panel: disclose the messages panel from its own title bar (705a33a )
panel: dock the message log as a right-hand sidebar (c57e596 )
panel: dock the message log as a VS Code-style bottom panel (69a87f4 )
panel: dock the messages log as a collapsible side panel (47ff543 )
panel: move the messages toggle into the sidebar menu (d147f04 )
panel: navbar-height messages bar, unread badge, and tooltips (721e6c9 )
panel: toggle the messages sidebar from a header icon button (007f781 )
protocol: add enableBLOB message and BLOBPolicy (60f3c08 )
protocol: add JSON codec and base64 BLOB serialization (8195c92 )
protocol: add slugify and Element.from_labels (97b067f )
protocol: add typed INDI protocol core with XML codec (c39975a )
protocol: pure vector accessors for handler ergonomics (fe5af28 )
react: add per-kind value hooks (28f27a2 )
react: add the shadcn accordion primitive (5341f4f )
react: add the shadcn drawer primitive (9180b8f )
react: export the test harness as @indi-nexus/react/testing (8440709 )
testing: add DeviceHarness (a737146 )
web: add @indi-nexus/client transport and property store (6c77924 )
web: add @indi-nexus/react hooks and shadcn/ui components (c46ab2d )
web: add Bridge and FastAPI app (WebSocket + REST snapshot) (5048e91 )
web: add self-contained debug inspector page (f6441b9 )
web: add the reference panel app (2d7e9c2 )
web: debug-info display setting for technical INDI detail (f38af6f )
web: live current-value readouts on writable elements (c631c1e )
web: mark the selected switch in the action colour and pulse Busy (cf55441 )
web: serve the built panel from FastAPI; add demo bridge harness (eff8e1a )
web: stack message-log entries and follow the newest (cd91cdf )
web: useElement hook for single-value reads (b1623cf )
Fixed
build: keep node_modules out of the sdist and the package sources in (718abd2 )
ci: build workspace packages before typecheck and test (072e32f )
ci: give Mermaid a browser to render diagrams with (aa92a79 )
ci: pin pnpm version for pnpm/action-setup (e977c47 )
ci: pin setup-uv to a tag that exists (965440c )
client: ignore a socket that has already been superseded (7b4d0e2 )
client: keep a property's state when a set does not carry one (dfa9a46 )
client: key BLOB policies on a pair, and drop non-object frames (ff2d87e )
client: render numbers the way the wire renders them (9903f21 )
demo: put the simulators back in step with their drivers (0c475d8 )
driver: gate @every jobs on setup() completion (7ceeabd )
driver: honor the getProperties device filter (856768b )
driver: ignore client writes addressed to other devices (31ad723 )
driver: survive exceptions from @on _new handlers and setup() (cce961f )
examples: power-gate the demo animation and accept partial switch writes (95d1c99 )
protocol: make name in vector tell the truth (30275d6 )
protocol: survive a hostile peer and stamp timestamps in UTC (bfe2ddf )
react: restore pointer cursor on enabled buttons under Tailwind v4 (42bb085 )
transport: add close to the transport contract and release sockets (0fdc210 )
typing: ship a py.typed marker (4664027 )
web: buffer INDI messages and replay them to late-joining viewers (93c258e )
web: drop the tick and stop a switch deselecting itself (2fc020d )
web: make the active member of a switch vector legible (fdfd135 )
web: make the panel and the wallboard work on a phone (ffc1d7e )
web: stack writable-element rows so labels and readouts always fit (aec4436 )
web: start the bridge without waiting for indiserver (e0274f3 )
web: track src/lib/utils.ts (gitignored by the Python lib/ rule) (b777e09 )
web: use relative imports in @indi-nexus/react instead of the @/ alias (8d1bd3a )
Packaging
add httpx dev dependency and filter starlette test warning (c2ed83c )
automate PyPI and npm releases (097a3b9 )
bundle the reference panel into the wheel (e7dd273 )
ci: move every action off the deprecated Node 20 runtime (bacd233 )
keep breaking changes on the minor while below 1.0 (1a9d647 )
let Release Please own the changelog and drop towncrier (8a37c37 )
manage the changelog with towncrier (990b29b )
require Python 3.12 and drop the anyio dependency (128d042 )
set up Python packaging, dependencies, and dev tooling (7ff13cd )
test and declare Python 3.13 and 3.14 (f962290 )
Documentation
add DEVELOPMENT.md with the full command reference (40a8192 )
add quickstart and command reference to README (9df062f )
add the real-data tutorial and its custom UI (47980b1 )
adopt Python 3.12, asyncio, and NumPy-docstring conventions (802a16a )
claude: split the guidance by area and add the global working rules (da96e31 )
correct the macOS install claim and cut repetition (a9e8027 )
cover the new SDK surface, port guide, and mermaid diagrams (f94fd80 )
cut duplication and fix broken cross-references (44781e8 )
cut the 0.1.0 changelog for today, and write up releasing (93c1a26 )
describe INDINexus, stack, and workflows in README and CLAUDE.md (e69104d )
docstring type fields are plain text, not backticked (300b85a )
document the examples and the three ways to run a driver (1fc9f03 )
driver: add Numpydoc parameter types to docstrings (429d920 )
driver: document the driver SDK and add demo device (f9d8dae )
driver: NumPy-style docstrings across the driver SDK (7ed606a )
drop backticks from docstring type fields (5c733ee )
examples: add monitor_client example with tests (3d1f137 )
examples: docstring the demo device methods (f12b7f5 )
feature all three simulators in the demo (6638357 )
fix the claims an audit found were no longer true (65c8cc9 )
focus the README on quickstart and link the development guide (82a9fdc )
general refactor - tighten prose and update project URLs (7b3b76e )
improve mermaid diagram contrast on light backgrounds (ff1c796 )
install from PyPI, and be clear indiserver is the hub (25bba24 )
let the diagrams follow the theme, and validate them in CI (40152d7 )
link the weather demo and give it a nav tab (893a139 )
make the flat-field lamp a real example and run it in the browser (21ddd52 )
mark client layer done; refresh README (8f0d5da )
mark M5 done and document the frontend (e902251 )
mark web bridge and CLI done; add bridge E2E and docs (992d401 )
protocol: add Numpydoc parameter types to docstrings (d95cb56 )
protocol: NumPy-style docstrings across the protocol layer (12ae2d9 )
rewrite the public docs for a first-time reader (02abc5c )
serve the live demo as its own page and move the site to a subdomain (f7fd934 )
specify Numpydoc parameter formatting rules (79c7554 )
split the changelog into sections and publish it on the docs site (e91502e )
tests: add NumPy-style docstrings to the test suite (0bcb910 )
tests: type the docstring parameter entries in the suite (7b2c470 )
tighten CLAUDE.md and point it at DEVELOPMENT.md (73509ad )
update CLAUDE.md for the transport, runtime, and bridge changes (79b9b93 )
web: add readmes and licences to the published npm packages (169e304 )
Changed
driver: extract shared transport contract (bbfb996 )
driver: replace anyio with asyncio in the runtime (7f65305 )
examples: adopt the SDK connection surface and accessors (00cb80d )
protocol: use stdlib StrEnum for the wire enums (e4ff825 )
web: map an INDI state to its colour in one place (2084e66 )
You can’t perform that action at this time.