Releases: dongguri-jun/embedctl
Releases · dongguri-jun/embedctl
embedctl 0.2.3
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-filecannot read/tmppaths. - 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_mcpstdio adapter and installer path so downstream OpenCode workspaces can registerembedctl-mcpwithout invoking Dart directly. - Kept MCP
serverInfo.version, CLI--version, package versions, andVERSIONaligned under the shared release train.
Host-side visual evidence
- Added modular host-camera visual source discovery and single-frame capture through the
ffmpeg_v4l2backend. - Added public-safe
visual_sources.host_cameraprofile 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 inspectandevidence diffwhile preserving redaction validation. - Added public-safe
observabilitytarget profile declarations for supported telemetry and frame-source metadata.
Downstream agent integration
- Added
docs/downstream-agent-integration.mdfor wiring embedctl into downstream projectAGENTS.md, private profile overlays, adapter manifests, and evidence workflows. - Added
examples/agent-guides/with copyable public-safeAGENTS.md, adapter manifest, and target profile starter templates.
Verification
bash scripts/verify.shpassed during release preparation.python3 scripts/check-public-safety.pypassed during release preparation.- The private overlay residue scanner passed during release preparation.
Verification
bash scripts/verify.shpassed locally before release.- GitHub Actions CI passed for this release commit.
embedctl 0.2.2
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.jsonwith schemaembedctl.app_session.v0. - Updated public documentation to describe embedctl as multi-device by design and multi-OS-ready by architecture.
- Added
docs/supported-environments.mdso 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.errfiles as a passing release result. - Added
bugreport --evidence-dir <path>import support that preserves collected evidence underevidence/<relativePath>instead of flattening files intologs/<basename>. - Added recursive, path-preserving evidence inspection across
evidence/andlogs/, including proof-sufficiency output that honorsverdict.json, fatal log signals, bridge error evidence, and missing verdict fields. - Added hierarchical evidence layout support with canonical
build/,deploy/,runtime/,release/, andbridge/paths while keeping legacy flat evidence directories as a compatibility fallback.
Bridge and workflow automation
- Preserved flow-step
assertionsandexpectblocks inbridge batchplanned 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.shpassed locally before release.- GitHub Actions CI passed for this release commit.
embedctl 0.2.1
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 --liveprototype 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 --followJSON 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
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 inspectfor bundle validation and summary output. - Added
evidence difffor 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, andsyncapply execution. - Added plan hash and target profile hash verification before file-transfer apply.
- Added explicit
applypolicy 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 snapshotoutput for agent-readable state scaffolding. - Added
bridge batchplanning for replayable flow files. - Added
workflow replaywrapping bridge batch output. - Added local-first
workflow recordfrom 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 --followprobes 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 listandprovider doctorskeleton commands. - Added provider interface documentation for future lab/provider integrations.
Verification
- Local
bash scripts/verify.shpassed before release. - GitHub Actions CI passed for the release commit.
- The
Releaseworkflow created tagv0.2.0and this GitHub Release automatically from the non--devversion.
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 --followis 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
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.