TinyChain-Inc / TinyChain-Inc/ha-ndarray
[Streaming][S1] Define ordered Array-block stream contract and bounded backpressure
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Objective
Define and implement the backend-neutral asynchronous contract for a fallible stream of Array blocks before adding fused CubeCL execution.
Contract
Specify stream dimensions, compatible dtype/rank/shape variation, input/output ordering, partial progress, upstream/downstream errors, cancellation, consumer drop, maximum in-flight blocks and host-memory accounting.
Acceptance criteria
- Public API and compatibility/version policy are documented.
- Slow-consumer tests prove bounded buffering and effective backpressure.
- Ordering and terminal/error semantics are deterministic.
- Cancellation and downstream drop stop upstream work and release buffers.
- An incompatible block returns a typed error identifying its sequence and violated metadata.
- Sequential host execution is the independent result oracle.
Parent: #38
Tembo execution contract
automation:
eligible: true
executor_profile: tembo
readiness: blocked
primary_repository: TinyChain-Inc/ha-ndarray
base_branch: main
writable_scope:
- src/stream/**
- src/array.rs
- src/buffer.rs
- tests/stream/**
- docs/**
prerequisites:
- "#41"
concurrency_group: array-stream-contract
required_commands:
- "cargo fmt --all -- --check"
- "cargo test --no-default-features --features cubecl"
- "cargo test --all-features"
evidence:
cpu_conformance: required
accelerator_conformance: not-required
actual_browser: not-required
benchmark_report: not-required
exact_hardware_and_driver_identity: not-required
external_actions: none
draft_pr_only: true
completion_authority: human
budget:
size: large
max_revisions: 3
max_wall_minutes: 180
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by checking prerequisite #41, then inspect src/stream/, src/array.rs, src/buffer.rs, tests/stream/, and docs/** to locate the existing stream and block metadata entry points. Run the required cargo fmt and test commands to establish the baseline. Done means the documented contract, bounded-buffer and cancellation tests, deterministic error behavior, typed incompatibility errors, and sequential host oracle satisfy the acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100