Skip to content

task state helper can silently rewind work to queued #366

Description

@SUaDtL

Observed behavior

_taskboardlib.set_state(text, target, queued, today) is publicly documented as accepting queued, in_progress, or done. Calling it on an in-progress or done task rewinds the marker to [ ] and strips the lifecycle date.

The sanctioned taskwrite CLI exposes only start and done, so this is not reachable through the public task command and does not block #364. It remains an internal API/state-machine inconsistency.

Why investigate

The forward lifecycle is queued -> in-progress -> done. A silent rewind can erase start/completion evidence if another internal caller uses the advertised queued target.

Acceptance criteria

  • Decide whether queued is a sanctioned repair transition or unsupported target state.
  • If unsupported, reject it without mutation and narrow the public helper contract.
  • If supported, document the repair semantics and make commit classification/audit behavior explicit.
  • Add regressions for in-progress and done inputs.
  • Preserve fail-soft behavior for malformed hook input.

Provenance

Harvested as a LOW, inherited, non-blocking finding during independent review of #364.

Activity

  1. added a commit that references this issue on Jul 20, 2026
    5a6cb21
  2. SUaDtL commented on Jul 20, 2026

    @SUaDtL
    CollaboratorAuthor

    Implemented on PR #367 at commit 5a6cb21. The shared helper now accepts only in_progress and done as transition targets; queued remains parse/add-only. Exact regressions preserve in-progress and completed board text, including dates, and malformed states remain fail-soft. Hosted CI run 29761256698 passed every job, including Windows Pi 0.80.5. Evidence: https://github.com/arbiterForge/codeArbiter/actions/runs/29761256698

  3. added a commit that references this issue on Jul 20, 2026
    bff6469
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions