aboutsummaryrefslogtreecommitdiff
path: root/tasks/20261014-191419
diff options
context:
space:
mode:
authorTommaso Negri <me@tommasongr.com>2026-10-14 21:58:57 +0200
committerTommaso Negri <me@tommasongr.com>2026-10-14 21:58:57 +0200
commitf802039757d5da01a2b7cb7d1b15c692f137d91f (patch)
tree86c328bda63b0d566eb56c8d0c83409fcc9b8b8c /tasks/20261014-191419
parente6b4d0cb69809ea3d742ba03f4a0586cbbb3d1b3 (diff)
downloadbar-f802039757d5da01a2b7cb7d1b15c692f137d91f.tar.gz
bar-f802039757d5da01a2b7cb7d1b15c692f137d91f.zip
add tasks
Diffstat (limited to 'tasks/20261014-191419')
-rw-r--r--tasks/20261014-191419/TASK.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/tasks/20261014-191419/TASK.md b/tasks/20261014-191419/TASK.md
new file mode 100644
index 0000000..5854777
--- /dev/null
+++ b/tasks/20261014-191419/TASK.md
@@ -0,0 +1,15 @@
+# Make block timer start and stop predictable
+
+- STATUS: OPEN
+- PRIORITY: 40
+- TAGS: review,bug,core
+
+File: Sources/bar/Models/Block.swift; lifecycle caller: Sources/bar/Views/AppDelegate.swift.
+
+Problem: Calling start() twice creates another timer and overwrites tick without cancelling the old task. stop() only cancels the currently stored timer. This matters when users customize lifecycle behavior or apply patches.
+
+Approach: Choose and document idempotent start semantics or explicit restart semantics. Cancel an existing timer before replacing it where appropriate; clear stored state on stop. Preserve one initial refresh per intended start and no automatic timer for nil or nonpositive intervals. Clarify whether stop means only stop ticking or also stop queued/in-flight execution, coordinating with the execution-policy task. Do not imply Task cancellation terminates a Process unless implemented.
+
+Completion checks: Repeated start calls do not multiply periodic executions. Stop prevents later ticks, including after a sleeping timer resumes. Start-stop-start behaves consistently. Add a small meaningful lifecycle test using short controlled intervals or an execution seam.
+
+Design constraint: Follow README.md: keep source-based configuration, no dependencies or plugin framework, and use the smallest readable change that makes the existing behavior reliable. This is a suggestion for individual review, not a deadline. Findings were recorded on 2026-10-14; re-check the current code before implementing.