From a0108d0add749c46d7eef7760cb2ce6aece73121 Mon Sep 17 00:00:00 2001 From: Vignesh Date: Wed, 21 Oct 2026 02:45:33 +0530 Subject: [PATCH 1/3] docs: the tasks manual points task.parallel at Tasks, not Spending (#1454) The tasks page located task.parallel in category spending, but /settings shows it under Tasks as 'tasks at once' (settings.go's CategoryTasks), so someone following the page searched the wrong section. Name the section and the row exactly as drawn, and add manual probes that reach the tasks page for the setting. --- internal/manual/chat/tasks.md | 2 +- internal/manual/chat_test.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/manual/chat/tasks.md b/internal/manual/chat/tasks.md index a5a71be262..46831e9c25 100644 --- a/internal/manual/chat/tasks.md +++ b/internal/manual/chat/tasks.md @@ -4356,7 +4356,7 @@ tree's 3/20 bounds do not apply to that run. same time. The setting `task.parallel` exists for anyone who wants a number anyway — settings panel -(`ctrl+,` or `/settings`), category "spending". Blank means no limit. A cap is a queue and +(`ctrl+,` or `/settings`), under Tasks as `tasks at once`. Blank means no limit. A cap is a queue and never a refusal: work past the cap waits and starts when a slot frees, and while it waits its roster row says `waiting · slot` on its hint line, and it sits under `Queued`, which starts folded to its heading. diff --git a/internal/manual/chat_test.go b/internal/manual/chat_test.go index 8ec1caede6..4541f47f43 100644 --- a/internal/manual/chat_test.go +++ b/internal/manual/chat_test.go @@ -841,6 +841,8 @@ func TestTheChatManualAnswersTheQuestionsPeopleAsk(t *testing.T) { {"my cursor jumped to another task while I was reading", "tasks"}, {"why is the finished piece at the bottom of the family", "tasks"}, {"can codeaf parallelize my task", "tasks"}, + {"where is the tasks at once setting", "tasks"}, + {"what section is task.parallel under", "tasks"}, {"how do I open my tasks on a phone", "tasks"}, {"how do I get back from a task on my phone", "tasks"}, {"do tasks touch my working copy", "how-tasks-run"}, From 3e056ff2b54448777ebdbccfe4bf199d3c47fade Mon Sep 17 00:00:00 2001 From: Vignesh Date: Wed, 21 Oct 2026 02:46:24 +0530 Subject: [PATCH 2/3] docs: change entry for #1886 (tasks-at-once manual category) --- .../unreleased/1886-tasks-at-once-manual-category.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/changes/unreleased/1886-tasks-at-once-manual-category.md diff --git a/docs/changes/unreleased/1886-tasks-at-once-manual-category.md b/docs/changes/unreleased/1886-tasks-at-once-manual-category.md new file mode 100644 index 0000000000..2ef329c0d5 --- /dev/null +++ b/docs/changes/unreleased/1886-tasks-at-once-manual-category.md @@ -0,0 +1,8 @@ +--- +kind: fixed +title: the tasks manual points task.parallel at Tasks, not Spending +pr: 1886 +surface: [docs] +invalidates: + - "The tasks manual located `task.parallel` under the settings panel's category \"spending\", so someone following the page searched the wrong section. `/settings` draws the row under Tasks as `tasks at once` (`CategoryTasks` in the registry); the page now names the section and the row exactly as drawn, and manual probes for the setting reach the tasks page." +--- From beedd9534daea82bc5bf2b2e21cdf71d77e3fdee Mon Sep 17 00:00:00 2001 From: Vignesh Date: Wed, 21 Oct 2026 02:56:31 +0530 Subject: [PATCH 3/3] docs: make the task.parallel correction retrievable and exact The generic probes only asserted that some section on the tasks page was returned, so restoring the former Spending wording left them green. Put the issue's exact query vocabulary in the section heading and add a focused test that finds that section, requires 'under Tasks as tasks at once', and rejects the former category. The test fails when the old wording is restored and passes with the correction. --- internal/manual/chat/tasks.md | 2 +- internal/manual/chat_test.go | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/internal/manual/chat/tasks.md b/internal/manual/chat/tasks.md index 46831e9c25..b3bb22dcdd 100644 --- a/internal/manual/chat/tasks.md +++ b/internal/manual/chat/tasks.md @@ -4350,7 +4350,7 @@ The plan store allows up to 256 tasks in one added batch and 1024 tasks in one r A composite worker can wake at most four times to integrate its children. The node tree's 3/20 bounds do not apply to that run. -## How many tasks run at once — can I have it do two things at the same time, can you work on several parts of my answer at once +## How many tasks run at once, where is task.parallel, where is the tasks at once setting, can I have it do two things at the same time, can you work on several parts of my answer at once **There is no limit by default.** codeaf does not cap the number of tasks running at the same time. diff --git a/internal/manual/chat_test.go b/internal/manual/chat_test.go index 4541f47f43..f9450c1862 100644 --- a/internal/manual/chat_test.go +++ b/internal/manual/chat_test.go @@ -3314,6 +3314,29 @@ func TestTheChatManualAnswersTheQuestionsPeopleAsk(t *testing.T) { } } +// #1454: task.parallel is on the Tasks tab as `tasks at once`, not under +// Spending. This checks the retrieved section's answer rather than only its +// page, so restoring the former category cannot leave the retrieval gate green. +func TestTaskParallelQuestionReachesItsCorrectedSettingsLocation(t *testing.T) { + const ( + question = "where is task.parallel" + title = "How many tasks run at once" + ) + for _, section := range Chat().Search(question, DefaultResults) { + if section.Page != "tasks" || !strings.Contains(section.Title, title) { + continue + } + if !strings.Contains(section.Body, "under Tasks as `tasks at once`") { + t.Errorf("task.parallel answer omits its visible settings location: %s", section.Body) + } + if strings.Contains(section.Body, `category "spending"`) { + t.Errorf("task.parallel answer still names the former category: %s", section.Body) + } + return + } + t.Fatalf("%q did not reach tasks · %q", question, title) +} + // #1469: home listed waiting standing orders without their due time, and a person // asking when one goes off there had to be sent to the standing place for it. // Standing orders are automations now (automations.md), and home's `automations`