HydroRoll-Team / HydroRoll-Team/OneRoll

Expose cancellable analysis in CLI and TUI

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
area:cli-tui area:statistics blocked priority:p2 type:feature workflow:afk
Dominant language
Python
Stars
3
Forks
1
Avg merge
3d 4h
Merged PRs (30d)
2

Description

## Parent

- #3

## What to build

Expose the accepted sampling and exact-analysis capabilities through CLI and TUI workflows with explicit mode selection, progress, cancellation, and machine-readable export.

## RFC-0006 client contract

- Expose sampled and exact analysis as separate commands or controls; do not use an ambiguous mode Boolean.
- Always display the selected mode and active limits.
- Sampling consumes a complete Program; exact mode accepts one Instruction.
- Exact requests never fall back automatically. Display the stable capability/error reason and let the user start a separate sampling request.
- JSON preserves the versioned contract; CSV must document how typed AnalysisValues and rational probabilities are encoded.
- Run long work outside the TUI event loop with shared cancellation/deadline semantics.
- Closing an analysis view cancels and joins its work instead of detaching it.

## Acceptance criteria

- [ ] Users explicitly select sampled or exact analysis and see the active limits.
- [ ] Long operations report progress and can be cancelled without corrupting state.
- [ ] CLI supports stable JSON and CSV export for analysis results.
- [ ] TUI analysis runs without blocking interaction.
- [ ] Unsupported exact requests display the capability reason without silent fallback.
- [ ] Client conformance cases cover mode selection, export, cancellation, and errors.

## Blocked by

- #31
- #33
- #28

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the RFC-0006 client contract and the blocked issues #31, #33, and #28 to understand the available analysis capabilities. Trace the CLI and TUI workflows and the client conformance cases before planning the cross-cutting changes. Done means explicit mode and limits, progress and cancellation, non-blocking TUI behavior, stable JSON and CSV export, and visible exact-capability errors without fallback.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.