Skip to content

Releases: dongguri-jun/embedctl

embedctl 0.2.3

15 Jun 09:56

Choose a tag to compare

Scope notes

  • Track follow-up 0.2.x fixes after the 0.2.2 release here.

Release operations

  • Fixed release note file handling for environments where gh release create --notes-file cannot read /tmp paths.
  • Added a reusable generic public safety guard for CI and release gates, while keeping project-specific residue rules in private overlay scanners.

MCP and downstream agent setup

  • Added the local embedctl_mcp stdio adapter and installer path so downstream OpenCode workspaces can register embedctl-mcp without invoking Dart directly.
  • Kept MCP serverInfo.version, CLI --version, package versions, and VERSION aligned under the shared release train.

Host-side visual evidence

  • Added modular host-camera visual source discovery and single-frame capture through the ffmpeg_v4l2 backend.
  • Added public-safe visual_sources.host_camera profile declarations while rejecting host-local camera device paths in public profiles.

Performance evidence and gates

  • Added structured runtime performance artifacts under performance/ for steady profiling, workload profiling, frame telemetry, scanner telemetry, and lifecycle telemetry.
  • Added release-check --performance-policy <path> so explicit performance gates participate in release evidence instead of living in project-specific checklists.
  • Added performance proof and metric diffs to evidence inspect and evidence diff while preserving redaction validation.
  • Added public-safe observability target profile declarations for supported telemetry and frame-source metadata.

Downstream agent integration

  • Added docs/downstream-agent-integration.md for wiring embedctl into downstream project AGENTS.md, private profile overlays, adapter manifests, and evidence workflows.
  • Added examples/agent-guides/ with copyable public-safe AGENTS.md, adapter manifest, and target profile starter templates.

Verification

  • bash scripts/verify.sh passed during release preparation.
  • python3 scripts/check-public-safety.py passed during release preparation.
  • The private overlay residue scanner passed during release preparation.

Verification

  • bash scripts/verify.sh passed locally before release.
  • GitHub Actions CI passed for this release commit.

embedctl 0.2.2

08 Jun 13:22

Choose a tag to compare

Scope notes

  • Track follow-up 0.2.x fixes after the 0.2.1 release here.
  • Reframed the public repository as generic embedded-device tooling instead of app-specific hardware readiness work.
  • Kept current 0.2.x scope focused on evidence, agent UX, profiling, replay-oriented workflows, and modular embedded Linux/flutter-pi control surfaces.

Public cleanup and project framing

  • Removed app-specific public profile fixtures, adapter workflow fixtures, readiness guidance, and AI command examples from the public repository.
  • Renamed the app-specific session evidence artifact to app_session.json with schema embedctl.app_session.v0.
  • Updated public documentation to describe embedctl as multi-device by design and multi-OS-ready by architecture.
  • Added docs/supported-environments.md so tested, example, supported, and experimental environments can be accumulated with explicit confidence and recommended settings.
  • Clarified that example profiles are fixtures for exercising CLI behavior, not broad support claims.

Evidence and release readiness

  • Added release-check --target <id> --json [--evidence-dir <path>] so agents can evaluate release-build evidence without treating missing proof, fatal logs, QA bridge timeouts, or unknown .err files as a passing release result.
  • Added bugreport --evidence-dir <path> import support that preserves collected evidence under evidence/<relativePath> instead of flattening files into logs/<basename>.
  • Added recursive, path-preserving evidence inspection across evidence/ and logs/, including proof-sufficiency output that honors verdict.json, fatal log signals, bridge error evidence, and missing verdict fields.
  • Added hierarchical evidence layout support with canonical build/, deploy/, runtime/, release/, and bridge/ paths while keeping legacy flat evidence directories as a compatibility fallback.

Bridge and workflow automation

  • Preserved flow-step assertions and expect blocks in bridge batch planned JSON so workflow templates can keep human-readable acceptance checks even before live bridge execution exists.
  • Clarified CLI help and plan/apply documentation so implemented bounded/read-only surfaces are separated from future live bridge, unbounded log streaming, provider mutation, power, measurement, and OTA integration scope.

Verification

  • bash scripts/verify.sh passed locally before release.
  • GitHub Actions CI passed for this release commit.

embedctl 0.2.1

08 Jun 04:34

Choose a tag to compare

Scope notes

  • Future 0.2.x releases should be cut as narrow patch releases instead of bundling unrelated readiness improvements into one broad release.

Prototype hardening

  • Added safe workflow record --live prototype output: it writes a replayable profile-declared snapshot flow without payload values when allowed, or returns typed unavailable JSON without attempting live bridge execution.
  • Expanded logs --follow JSON with bounded collection, source classification, command privacy, and stream/artifact contract fields.
  • Expanded profiling JSON with launch/steady/frame evidence fields plus target-side source/status/confidence/unknowns/next_actions.
  • Expanded provider list/doctor output with read-only prototype adapter records for labgrid, Jumpstarter, tbot, LAVA export, and power/measurement/OTA hook contracts.

embedctl 0.2.0

08 Jun 03:15

Choose a tag to compare

v0.2.0 — Hardware readiness foundation

This release moves embedctl from the v0.1 local flutter-pi control loop into the v0.2 evidence, agent UX, profiling, and hardware readiness milestone.

Evidence and reviewability

  • Added evidence manifest validation with SHA-256 hashes.
  • Added NDJSON transcript events for command timelines.
  • Added evidence inspect for bundle validation and summary output.
  • Added evidence diff for comparing target profile hashes, verdicts, metrics, and artifacts across runs.
  • Kept redaction and sensitive-payload handling explicit in bundle metadata.

Plan/apply and transport hardening

  • Added saved-plan push, pull, and sync apply execution.
  • Added plan hash and target profile hash verification before file-transfer apply.
  • Added explicit apply policy gating for file-transfer execution.
  • Revalidated remote paths against the install root before mutation.
  • Refused overwrite/delete semantics for file-transfer apply.

Bridge and workflow automation

  • Added safe bridge snapshot output for agent-readable state scaffolding.
  • Added bridge batch planning for replayable flow files.
  • Added workflow replay wrapping bridge batch output.
  • Added local-first workflow record from explicit seed commands.
  • Added release bridge absence proof fields to bridge snapshots so release builds can report declared_disabled, unknown, or non-release applicability separately from QA bridge success.

Logs and runtime debugging

  • Added bounded live logs --follow probes for declared systemd service logs.
  • Kept log follow read-only and target-policy gated through shell.
  • Preserved descriptor-only log output when follow mode is not requested.

Profiling and hardware sizing

  • Added launch, steady-state, and frame profiling snapshot commands.
  • Added host facts with explicit unknown/unavailable states.
  • Added read-only target-side probes for /proc, PSI, cgroup, and thermal facts when target shell policy allows probing.
  • Labeled target metric source, status, and confidence instead of estimating missing hardware facts.

Hardware readiness

  • Added public-safe hardware-readiness planning notes for real-device smoke, workflow recording, adapter examples, release bridge absence evidence, and target profiling probes.
  • Added manual-only local smoke support for private profile based runs.
  • Added .embedctl-smoke/ as an ignored local artifact path.
  • Added public-safe app-adapter flow template support.
  • Kept app routes, domain semantics, raw payload values, private hosts, and serial/device access details out of generic core.

Provider skeletons

  • Added read-only provider list and provider doctor skeleton commands.
  • Added provider interface documentation for future lab/provider integrations.

Verification

  • Local bash scripts/verify.sh passed before release.
  • GitHub Actions CI passed for the release commit.
  • The Release workflow created tag v0.2.0 and this GitHub Release automatically from the non--dev version.

Follow-up scope

  • Interactive bridge-session recording remains follow-up work; current recording is local-first from seed commands.
  • Unbounded streaming transport remains follow-up work; current logs --follow is a bounded live probe.
  • Provider hardware mutation, power backends, measurement backends, OTA hooks, and lab integrations remain v0.3+ work.
  • Future releases should be cut more narrowly as patch releases such as 0.2.1, 0.2.2, and so on instead of bundling many unrelated readiness improvements into one release.

embedctl 0.1.0

07 Jun 17:01

Choose a tag to compare

0.1.0 — 2026-06-08

Initial local flutter-pi control loop release.

Added

  • Dart CLI with profile validation, device listing, capability reporting, policy-gated shell execution, plan-first file transfer, deploy/apply plan execution, runtime plan/apply control, log descriptors, screenshot artifacts, bugreport bundles, and doctor checks.
  • App-side Dart bridge package, disabled by default, with command registration, bounded batch execution, typed errors, and secret-safe acknowledgement helpers.
  • Public-safe flutter-pi example target profiles.
  • Optional read-only live doctor probes when target policy allows shell access.
  • Repository verification through scripts/verify.sh and GitHub Actions CI.

Scope notes

  • v0.1 is a safe local control loop with read-only commands, artifact generation, and explicit apply paths for mutating operations.
  • logs reports configured log descriptors; live logs --follow streaming is follow-up work.
  • restart --apply never performs broad process matching when no app_service is declared; it fails closed instead.

Verification: bash scripts/verify.sh passed before tagging.