Skip to content
Open
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
8 changes: 8 additions & 0 deletions docs/changes/unreleased/1886-tasks-at-once-manual-category.md
Original file line number Diff line number Diff line change
@@ -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."
---
4 changes: 2 additions & 2 deletions internal/manual/chat/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4350,13 +4350,13 @@ 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.

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.
Expand Down
25 changes: 25 additions & 0 deletions internal/manual/chat_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
Expand Down Expand Up @@ -3312,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`
Expand Down
Loading