feat(commands): show player stealth progress
Release / release (push) Successful in 2m29s
CI / build (push) Successful in 1m15s

This commit is contained in:
dmg
2026-08-15 00:03:09 -04:00
parent 91c9e7b9ad
commit 90851a0d87
7 changed files with 184 additions and 8 deletions
+2
View File
@@ -2,6 +2,8 @@
## 2026-08-14
- **Completion**: Completed US-003 with `/stealth progress`, live unsaved interval inclusion, configured target and remaining output, concise duration formatting, and unlocked usage guidance; verified the full Gradle build.
- **Implementation**: Began US-003 with player-facing progress command and human-readable duration tests.
- **Completion**: Completed US-001 with direct potion-drink effect attribution, monotonic elapsed-time accumulation, safe refresh and stop transitions, durable UUID progress, exact-once unlocking, and title plus chat presentation; verified the full Gradle build.
- **Implementation**: Began US-001 with monotonic-clock progression tests and potion-cause event attribution.
- **Completion**: Completed US-005 with validated eight-hour defaults and configurable messages, UUID-keyed immutable state, RFC 3339 timing metadata, safe invalid-record defaults, unknown-field preservation, atomic YAML replacement, periodic saves, and serialized off-thread persistence; verified the full Gradle build.
@@ -2,7 +2,7 @@
type: User Story
title: "US-003: Check personal stealth progress"
description: Show a player their accumulated qualifying invisibility time and stealth unlock status.
status: backlog
status: done
---
# US-003: Check personal stealth progress
@@ -11,13 +11,17 @@ As a **player**, I want to check my stealth progress so that I know how close I
## Acceptance criteria
- [ ] `/stealth progress` reports the player's accumulated qualifying invisibility time.
- [ ] Before unlock, the command reports the configured target and remaining duration.
- [ ] While a qualifying effect is active, the report includes elapsed time not yet written during the current tracking interval.
- [ ] After unlock, the command clearly reports that stealth is unlocked and explains how to prepare a concealed login.
- [ ] Durations are presented in a concise, human-readable form.
- [ ] Repeated command use does not change progression or concealment state.
- [ ] The command has clear usage metadata and an appropriate player permission.
- [x] `/stealth progress` reports the player's accumulated qualifying invisibility time.
- [x] Before unlock, the command reports the configured target and remaining duration.
- [x] While a qualifying effect is active, the report includes elapsed time not yet written during the current tracking interval.
- [x] After unlock, the command clearly reports that stealth is unlocked and explains how to prepare a concealed login.
- [x] Durations are presented in a concise, human-readable form.
- [x] Repeated command use does not change progression or concealment state.
- [x] The command has clear usage metadata and an appropriate player permission.
## Validation
Automated tests verify concise duration formatting, live in-flight progress, configured target and remaining output, command non-mutation, and unlocked usage guidance. Command metadata and the complete `./gradlew clean check jar` lifecycle pass.
## Related