Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup pinned development toolchain
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup pinned development toolchain
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup mise
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependency-policy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup mise
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Fetch Book deployment refs
run: git fetch --force origin main develop --tags
- name: Setup pinned book toolchain
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down Expand Up @@ -60,4 +60,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
with:
fetch-depth: 0
- name: Setup pinned release toolchain
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scheduled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup pinned development toolchain
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup mise
uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0
with:
version: 2026.7.6
install: true
Expand Down
2 changes: 2 additions & 0 deletions .pinto/issued_ids
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,5 @@ P-73
P-74
P-75
P-76
P-77
P-78
30 changes: 30 additions & 0 deletions .pinto/tasks/P-77.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
+++
id = "P-77"
title = "Independently configure sprint start and end datetimes"
status = "done"
rank = "zy"
points = 5
start_at = "2026-09-11T09:38:00.627760Z"
done_at = "2026-09-11T10:08:31.090702Z"
created = "2026-09-11T09:32:56.920845Z"
updated = "2026-09-11T10:08:31.090702Z"
+++

# **Summary**

Allow users to update a Sprint's planned start or end datetime independently through `sprint edit`, preserving the endpoint they did not supply. Keep the existing paired-period invariant for persisted Sprints and keep `sprint new` requiring both endpoints.

# **Implementation Plan**

- Carry independent start/end edit intent from the CLI through the service boundary.
- Merge a supplied endpoint with the existing counterpart before validating and saving.
- Add focused domain/service and CLI integration coverage for preservation and rejection paths.

# **Acceptance Criteria**

- [x] Updating only the start datetime changes the start datetime and preserves the existing end datetime.
- [x] Updating only the end datetime changes the end datetime and preserves the existing start datetime.
- [x] Updating both the start and end datetimes continues to succeed.
- [x] Invalid datetime input is rejected.
- [x] An update where the start datetime is later than the end datetime is rejected.
- [x] An update with neither datetime supplied preserves the existing behavior.
69 changes: 69 additions & 0 deletions .pinto/tasks/P-78.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
+++
id = "P-78"
title = "Allow independent Sprint Edit schedule endpoints"
status = "done"
rank = "zz"
parent = "P-77"
start_at = "2026-09-11T09:38:00.892159Z"
done_at = "2026-09-11T10:05:04.876284Z"
created = "2026-09-11T09:38:00.432197Z"
updated = "2026-09-11T10:06:29.100040Z"
+++

# **Summary**

Implement independently configurable start and end datetimes for `sprint edit` without weakening the persisted Sprint paired-period invariant.

# **Planning Estimate**

5 points.

# **Dependencies**

None. Existing datetime parsing, persistence, and paired-period validation are reusable.

# **Owner**

Sprint CLI/service implementation sub-agent.

# **Verification**

Focused checks passed:

- `vfy run --json -- cargo test --all-features --locked --test cli sprint_edit_` — passed (6 tests).
- `vfy run --json -- cargo test --lib service::sprint::tests::edit_` — passed (4 tests).
- `vfy run --json -- cargo test --test cli sprint_new_start_` — passed (2 tests).
- `vfy run --json -- cargo clippy --all-targets -- -D warnings` — passed.
- `vfy run --json -- cargo fmt --all -- --check` — passed.

The full `mise run check` gate compiled the project and reported 4 failures in pre-existing editor/template integration tests (`add`, `retro`, and `review`); no Sprint endpoint test failed.

Code review found no issues.

# **Completion Conditions**

- Independent `sprint edit --start` and `sprint edit --end` updates preserve the omitted endpoint — passed.
- Invalid requests do not mutate or persist the Sprint — passed.
- Existing paired edits and `sprint new` behavior remain valid — passed.
- Focused tests pass — passed.

# **Decision**

Decision: Apply independent endpoint behavior to `sprint edit`, not `sprint new`.
Why: The Acceptance Criteria specify updating, while new Sprints have no counterpart to preserve and the persisted model requires a complete period.
Next verification: Focused CLI and service tests exercise endpoint preservation and reject incomplete or inverted effective periods.

# **Checkpoint**

What differed from the plan: The service schedule intent uses a seven-argument tuple alias to satisfy the repository's clippy argument-count policy while preserving independent endpoints.
What blocks the next work: Nothing in the selected SBI; the broad gate remains red on four unrelated existing editor/template tests.
Plan, split, or Flow Mode change: No change; the one-SBI Standard split remains sufficient.

# **Residual Risks and Unverified Items**

- The full project gate is not green because of unrelated existing integration-test failures.
- Demo data and the repository-wide gate were not added or rerun because the human requested only implementation and tests, not the full Sprint/DoD ceremony.

# **Risks**

The existing commit-failure durability caveat in the service contract is unchanged.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ and releases use [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.4.4] - 2026-09-11

This patch release improves Sprint schedule editing without changing the
persisted paired-period invariant or the existing `sprint new` contract.

### Fixed

- Allowed `sprint edit --start` and `--end` to be updated independently while
preserving the endpoint that was not supplied.

## [0.4.3] - 2026-07-31

This patch release adds Sprint records and strengthens board integrity,
Expand Down
Loading
Loading