You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Exposed DSView-backed `DSLogic Plus` device-option discovery through owned sys/core snapshots and the new `devices options` CLI command.
10
+
- Added a mode-aware validation model that rejects invalid stop-option, channel-mode, sample-rate, threshold, and filter combinations before acquisition starts.
11
+
- Introduced script-friendly `capture` option tokens for operation mode, stop option, channel mode, enabled channels, threshold volts, and filter selection.
12
+
- Applied validated device options in deterministic order during capture and surfaced truthful partial-apply failures with `applied_steps` and `failed_step`.
13
+
- Unified requested/effective device-option reporting across capture JSON, text output, and schema-v2 metadata sidecars.
14
+
- Passed real-hardware DSLogic Plus verification for discovery, option-aware capture success, failure honesty, and metadata reporting on 2026-04-13.
Copy file name to clipboardExpand all lines: .planning/PROJECT.md
+30-39Lines changed: 30 additions & 39 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## What This Is
4
4
5
-
DSView CLI is a Rust-based command-line tool for using `DSLogic Plus`devices without the DSView GUI. The shipped `v1.0` milestone proved a stable non-interactive capture-and-export workflow, and `v1.1` now focuses on bringing the core DSView logic-mode device options into that CLI surface without breaking the validated baseline.
5
+
DSView CLI is a Rust-based command-line tool for using `DSLogic Plus`logic analyzers without the DSView GUI. Shipped milestones now cover device discovery, bounded capture/export, DSView-backed device-option discovery, pre-acquisition validation, option-aware runtime apply, and requested/effective reporting for automation-friendly capture workflows.
6
6
7
7
## Core Value
8
8
@@ -12,73 +12,64 @@ Users can reliably capture logic-analyzer data from `DSLogic Plus` via CLI and p
12
12
13
13
### Validated
14
14
15
-
-[x] User can connect to a `DSLogic Plus` device from the CLI using the existing DSView/libsigrok4DSL stack. Shipped in `v1.0`.
16
-
-[x] User can configure core capture parameters from the CLI, including the options needed for a basic acquisition workflow. Shipped in `v1.0`.
17
-
-[x] User can start a capture from the CLI and export machine-readable waveform output for downstream analysis. Shipped in `v1.0`.
18
-
-[x] User can run the full capture-and-export workflow non-interactively from a single CLI command. Shipped in `v1.0`.
19
-
-[x] User can choose artifact output locations and receive clear artifact path reporting after a successful run. Shipped in `v1.0`.
20
-
-[x] User can validate DSLogic Plusoption combinations before capture so the shipped `v1.0` capture/export path remains stable. Validated in Phase 11.
21
-
-[x] User can expose and choose DSView-style `DSLogic Plus` device options from the CLI, including operation mode, stop option, channel mode, enabled channels, threshold voltage, and filter selection. Validated in Phase 12.
22
-
-[x] User can use a discoverable non-interactive CLI surface to inspect supported device-option values before a run. Validated across Phases 10 and 12.
23
-
-[x] User can apply the selected DSView-compatible device options before acquisition begins. Validated in Phase 13.
24
-
-[x] User can report the effective option values used for the run in CLI output and metadata. Validated in Phase 13.
15
+
-[x] User can connect to a `DSLogic Plus` device from the CLI using the existing DSView/libsigrok4DSL stack. - `v1.0`
16
+
-[x] User can configure core capture parameters from the CLI, including the options needed for a basic acquisition workflow. - `v1.0`
17
+
-[x] User can start a capture from the CLI and export machine-readable waveform output for downstream analysis. - `v1.0`
18
+
-[x] User can run the full capture-and-export workflow non-interactively from a single CLI command. - `v1.0`
19
+
-[x] User can choose artifact output locations and receive clear artifact path reporting after a successful run. - `v1.0`
20
+
-[x] User can inspect the supported `DSLogic Plus` device-option values for operation mode, stop option, channel mode, threshold voltage, and filter selection from the CLI. - `v1.1`
21
+
-[x] User can choose DSView-style `DSLogic Plus` device options from the CLI, including operation mode, stop option, channel mode, enabled channels, threshold voltage, and filter selection. - `v1.1`
22
+
-[x] User can validate DSLogic Plus option combinations before capture so unsupported requests fail before acquisition begins. - `v1.1`
23
+
-[x] User can apply the selected DSView-compatible device options before acquisition begins. - `v1.1`
24
+
-[x] User can report requested and effective option values in CLI output and metadata. - `v1.1`
25
25
26
26
### Active
27
27
28
-
None - milestone `v1.1` requirements are now fully validated.
28
+
-[ ] Define the next milestone after `v1.1` and recreate `.planning/REQUIREMENTS.md` via `/gsd-new-milestone`.
29
+
-[ ] Decide whether the next shipped increment should prioritize presets, collect-mode control, trigger programming, protocol decode, or broader DSLogic-family support.
29
30
30
31
### Out of Scope
31
32
32
33
- Built-in AI-agent invocation or analysis orchestration - the CLI should keep stopping at analyzable output artifacts.
33
34
- Full DSView GUI feature parity - future milestones should extend the workflow intentionally instead of mirroring the whole desktop app.
34
35
- Modifying the upstream `DSView/` codebase or libraries - the integration strategy still depends on consuming that stack as a read-only dependency.
35
36
- Terminal waveform rendering or a TUI viewer - the product direction stays focused on export-first automation.
36
-
- Preset persistence and reusable named capture profiles - defer until the raw option semantics are stable in the CLI.
37
-
-`CollectMode` repeat/loop behavior, advanced trigger programming, and protocol decode - not part of the `v1.1` device-option milestone.
38
37
39
38
## Context
40
39
41
-
The workspace contains the upstream `DSView/` project, which remains the read-only native dependency for hardware communication through its modified `libsigrok4DSL` stack. The shipped `v1.0` milestone proved that a separate Rust CLI can sit on top of that stack, drive a bounded `DSLogic Plus` acquisition, and emit a reusable `VCD` plus JSON metadata sidecar without requiring the DSView GUI.
42
-
43
-
Milestone `v1.1` is grounded in direct DSView source inspection rather than greenfield feature guessing. The DSView device-session surface for `DSLogic Plus` includes operation mode, stop options, channel mode, threshold voltage, filter selection, and related trigger-facing settings. The current Rust bridge only exposes sample rate, sample limit, and enabled-channel application, so this milestone needs to widen the sys/core/cli boundary while keeping the proven capture/export contract intact.
40
+
The workspace keeps the upstream `DSView/` project as a read-only native dependency while the Rust workspace owns the CLI, orchestration, validation, and reporting layers. `v1.0` proved that this split could deliver a stable non-interactive capture/export workflow for `DSLogic Plus`, and `v1.1` extended that same baseline with truthful DSView-backed device-option discovery and execution rather than inventing a parallel configuration model.
44
41
45
42
## Current State
46
43
47
-
-`v1.0 MVP` shipped on `2026-04-09` and is archived in `.planning/milestones/`.
48
-
- The validated DSLogic Plus capture/export path is the baseline that `v1.1` must preserve.
49
-
- Phase 11 validation modeling completed on `2026-04-13`, including selected-device capability loading, pure validation, and stable CLI validation codes.
50
-
- Phase 12 CLI device-option surface completed on `2026-04-13`, including friendly capture flags, tokenized inspection output, and spawned CLI contract regressions.
51
-
- Phase 13 option-aware capture reporting completed on `2026-04-13`, including deterministic runtime option application, requested/effective reporting, and successful hardware verification.
52
-
- The next milestone is now defined around device-option parity for the existing `DSLogic Plus` target rather than broader hardware support or decode work.
53
-
54
-
## Current Milestone: v1.1 DSLogic Plus device options
44
+
-`v1.1 DSLogic Plus device options` shipped on `2026-04-13` and is archived at `.planning/milestones/v1.1-ROADMAP.md`.
45
+
- The CLI now exposes `devices list`, `devices options`, and option-aware `capture` flows for `DSLogic Plus`.
46
+
- Real-hardware verification passed for discovery on `2026-04-10` and for option-aware capture/reporting on `2026-04-13`.
47
+
- No next milestone is defined yet; live requirements will be recreated when `/gsd-new-milestone` starts the next planning cycle.
55
48
56
-
**Goal:** Bring the core DSView logic-mode device options for `DSLogic Plus` into the CLI while preserving the shipped non-interactive capture/export workflow.
49
+
## Next Milestone Goals
57
50
58
-
**Target features:**
59
-
- Operation mode selection for `Buffer Mode` and `Stream Mode`
60
-
- Stop-option selection where the selected mode supports it
61
-
- Channel-mode selection plus explicit enabled-channel control
62
-
- Threshold-voltage and filter selection
63
-
- Mode-aware validation and effective-option reporting in CLI output and metadata
51
+
- Choose the next smallest shipped increment that extends the proven `DSLogic Plus` workflow without weakening the `v1.0` and `v1.1` baseline.
52
+
- Prefer work that builds on the validated option model: reusable presets, collect-mode control, trigger configuration, protocol decode, or broadened hardware support.
53
+
- Keep hardware verification part of phase exit criteria whenever new runtime behavior is added.
64
54
65
55
## Constraints
66
56
67
-
-**Device scope**: `DSLogic Plus`only - this milestone does not expand support to other hardware.
57
+
-**Device scope**: `DSLogic Plus`is the only shipped target today; broader hardware support remains future work.
68
58
-**Dependency boundary**: Reuse `DSView/` and its modified `libsigrok4DSL` stack without modifying that repository.
69
59
-**Workflow**: Optimize for scriptable CLI usage, not GUI, TUI, or profile-driven interaction.
70
-
-**Baseline stability**: Preserve the shipped `v1.0` capture/export behavior while adding richer option control.
71
-
-**Scope discipline**: Focus on DSView device options first; presets, collect-mode automation, trigger programming, and decode remain deferred.
60
+
-**Baseline stability**: Preserve the shipped `v1.0` capture/export path and the shipped `v1.1` device-option workflow.
61
+
-**Scope discipline**: Future milestones should extend the validated workflow incrementally rather than chasing full DSView feature parity.
72
62
73
63
## Key Decisions
74
64
75
65
| Decision | Rationale | Outcome |
76
66
|----------|-----------|---------|
77
67
| Build the tool in Rust | User explicitly wants Rust for the CLI implementation | Adopted - implemented across `dsview-cli`, `dsview-core`, and `dsview-sys`|
78
68
| Keep `DSView/` unchanged and integrate with its existing libraries | Reuse proven device communication behavior while avoiding upstream modifications | Adopted - native integration stays behind the Rust boundary and `DSView/` remains read-only |
79
-
| Scope `v1.0` to `DSLogic Plus` only | Narrower device scope reduced risk for the first usable release | Adopted - `v1.0` validated the DSLogic Plus capture/export workflow |
80
-
| Start `v1.1` with DSView device options instead of presets or decode | The current blocker is missing parity for real device configuration, not artifact post-processing | Adopted for milestone definition |
81
-
| Defer presets until option semantics are clear in CLI | DSView persists these settings, but CLI should first prove the raw option model and validation surface | Adopted for `v1.1` scope |
69
+
| Scope initial releases to `DSLogic Plus`| Narrow device scope keeps hardware/runtime risk bounded while the CLI contract matures | Adopted across `v1.0` and `v1.1`|
70
+
| Layer friendly CLI tokens on top of stable core IDs | Automation needs stable identifiers while humans need copy-pasteable command tokens | Adopted in `v1.1` discovery and capture surfaces |
71
+
| Keep device-option apply order and failure reporting in Rust core instead of C | Ordered execution, partial-apply facts, and output reuse need one typed source of truth | Adopted in `v1.1` runtime apply/reporting |
72
+
| Report requested and effective device-option facts separately | Devices can align or adjust runtime values, so outputs must preserve both intent and outcome | Adopted in `v1.1` JSON, text, and metadata reporting |
82
73
83
74
## Evolution
84
75
@@ -98,4 +89,4 @@ This document evolves at phase transitions and milestone boundaries.
98
89
4. Update Context with current state
99
90
100
91
---
101
-
*Last updated: 2026-04-13 after completing Phase 13 option-aware capture reporting*
92
+
*Last updated: 2026-04-13 after completing the v1.1 milestone*
*A living document updated after each milestone. Lessons feed forward into future planning.*
4
+
5
+
## Milestone: v1.1 - DSLogic Plus device options
6
+
7
+
**Shipped:** 2026-04-13
8
+
**Phases:** 4 | **Plans:** 12 | **Sessions:** not systematically tracked
9
+
10
+
### What Was Built
11
+
- DSView-backed `DSLogic Plus` option discovery across sys, core, and CLI, including the new `devices options` command.
12
+
- Mode-aware validation and friendly CLI selection for operation mode, stop option, channel mode, enabled channels, threshold volts, and filter.
13
+
- Deterministic option-aware capture execution with requested/effective reporting in JSON, text, and schema-v2 metadata.
14
+
15
+
### What Worked
16
+
- Keeping stable IDs in core and layering friendly tokens in the CLI preserved automation compatibility without hurting usability.
17
+
- The shipped `v1.0` baseline stayed intact because `v1.1` treated option work as additive seams instead of refactoring the whole capture path.
18
+
- Explicit human UAT on real hardware caught and then closed the last live-runtime confidence gap before milestone closeout.
19
+
20
+
### What Was Inefficient
21
+
- Milestone closeout started without a standalone `v1.1` milestone audit artifact, so archive-time review had to proceed on verified phase evidence alone.
22
+
- Some verification commands in planning docs lagged behind the real `dsview-cli` binary test target, creating avoidable audit noise.
23
+
- Hardware verification still required manual environment handoff instead of being schedulable earlier in the phase exit flow.
24
+
25
+
### Patterns Established
26
+
- Use owned native snapshots plus stable Rust normalization for DSView-derived device facts.
27
+
- Model requested and effective runtime values once, then reuse that structure across CLI output and metadata.
28
+
- Keep runtime apply ordering and partial-failure reporting in typed Rust orchestration rather than spreading it across C and CLI layers.
29
+
30
+
### Key Lessons
31
+
1. Put machine-stable identifiers in core and add human-friendly aliases only at the CLI boundary.
32
+
2. Treat requested-versus-effective runtime facts as a first-class model, not an output-format concern.
33
+
3. Schedule real-hardware verification as part of milestone execution, not just at final archival time.
34
+
35
+
### Cost Observations
36
+
- Model mix: not tracked in planning artifacts.
37
+
- Sessions: not tracked before retrospective creation.
38
+
- Notable: the highest-cost work in `v1.1` was live hardware verification, but it prevented shipping stale assumptions about apply-time behavior and metadata truthfulness.
39
+
40
+
---
41
+
42
+
## Cross-Milestone Trends
43
+
44
+
### Process Evolution
45
+
46
+
| Milestone | Sessions | Phases | Key Change |
47
+
|-----------|----------|--------|------------|
48
+
| v1.0 | not tracked | 9 | Proved the Rust CLI capture/export foundation and then backfilled verification discipline after the audit. |
49
+
| v1.1 | not tracked | 4 | Reused the shipped baseline to add DSView-backed device options with phase-by-phase verification and live hardware sign-off. |
0 commit comments