Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
with:
toolchain: stable
# io-harness pulls a bundled rusqlite, which is the expensive part of a
# cold build here.
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
- run: cargo build --all-targets
- run: cargo test --all-targets
# `cargo test --all-targets` does not run doctests. This crate has few, and
Expand All @@ -78,11 +78,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
- run: cargo fmt --all -- --check
- run: cargo clippy --all-targets -- -D warnings

Expand All @@ -95,8 +95,8 @@ jobs:
# here, so the two can never drift apart.
- id: msrv
run: echo "version=$(cargo metadata --no-deps --format-version 1 | python3 -c 'import json,sys; print(json.load(sys.stdin)["packages"][0]["rust_version"])')" >> "$GITHUB_OUTPUT"
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
with:
toolchain: ${{ steps.msrv.outputs.version }}
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
- run: cargo build --all-targets
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,11 @@ jobs:
archive: zip
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # v1
with:
toolchain: stable
targets: ${{ matrix.target }}
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
key: ${{ matrix.target }}

Expand Down
30 changes: 30 additions & 0 deletions .ultraship/products/io-cli/execution/archive/0.1.1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
product: io-cli
version: 0.1.1
execution_state: DEVELOPING
checkpoint: null
blockers: []
release_fit:
assessment: high
reasons:
- "The workspace records `preferences.minimize_cost: true` and `allow_parallel_agents: false`,
so this is a sequential build with no fan-out. Five small tasks against an existing suite fit
that limit comfortably: the release adds one seam, one field and one line format, and every
one of them is asserted in the harnesses 0.1.0 already built."
- The workspace records no time, token or monetary budget — `resource_profile.available` is null
on every field — so nothing caps this release except the work itself, and the contract carries
a fallback scope that drops the step rendering and then the spinner if it does.
- "The workspace constraint that io-cli contains no agent loop, no provider client and no
session store is not touched by this release. Everything here is rendering: a timer, a field
and a line order. No io-harness change is required and none is anticipated."
- The code this release changes is four files totalling under a thousand lines — `src/app.rs`,
`src/status.rs`, `src/events.rs` and the driver's select loop — and each already has a test
file pointed at it.
major_cost_drivers:
- The clock seam. The work is not the timer; it is making the tick assertable without asserting
on time, which is what keeps N1 true. Getting that seam wrong is the way this release grows a
sleeping test.
- Not repainting when idle. The easy implementation ticks always, and F2 exists because that is
the version that would ship by accident.
- "F3, which cannot be automated: a real turn against a live provider, watched by the owner, and
a screenshot recaptured from it."
recommended_scope_change: null
Loading
Loading