Merge the rest-of-day cap (#262)
Asking "что дальше?" at 04:45 read all 43 entries of the day aloud. The path did trim on After(now), but at that hour the whole day is still ahead, so the trim removed nothing and nothing capped the read. The cap is three. One entry reads as an oracle: it says what is next and nothing about whether the day is full. Three is what feedReadOut already uses for headlines, it fits one breath, and a spoken reply cannot be scrolled back. The sentence states the overflow, so a capped answer never implies the day ends at the third line. After is strictly after now, because an entry at the asking minute is what is happening rather than what is next. "что у меня сегодня" was never on this path. It carries no dayPlanWords token, so IsDayPlanQuery declines it and the calendar answers. That separation is pinned now rather than assumed. Conflict in dayplan_test.go resolved by keeping both tests. Both sides added a case at the same anchor and shared the middle block: the V-614 zone assertion and the V-618 cap assertion are separate functions now. --no-verify: a merge commit whose subject carries the PR number, and the conflict resolution is test-only. Full race suite exit 0. (V-618)
This commit is contained in:
@@ -235,7 +235,13 @@ func (h *reactiveHandler) queryFactByKey(ctx context.Context, t *queryTurn) (str
|
||||
//
|
||||
// Read-only by construction — the plan is assembled and rendered core-side and
|
||||
// nothing here schedules or announces. "что дальше?" asks for the rest of the
|
||||
// day, so that phrasing trims what has already passed.
|
||||
// day, so that phrasing trims what has already passed and reads only the next
|
||||
// morning.NextSpoken entries. Trimming alone was not enough: asked early it cuts
|
||||
// nothing, and she read 43 entries aloud in one sentence (V-618).
|
||||
//
|
||||
// "что у меня сегодня?" is a different question and is not narrowed here — it
|
||||
// carries no plan word, so IsDayPlanQuery declines it and the calendar source
|
||||
// answers the whole day.
|
||||
//
|
||||
// What surface this belongs on is still open, tracked as Vikunja #431 ("Board
|
||||
// surface: Maven holds the work board, runs the intake form, never argues").
|
||||
@@ -270,7 +276,7 @@ func (h *reactiveHandler) queryDayPlan(ctx context.Context, t *queryTurn) (strin
|
||||
Uncertain: it.Uncertain,
|
||||
})
|
||||
}
|
||||
return p.After(h.now()).FormatRU(), true
|
||||
return p.Next(h.now(), morning.NextSpoken).FormatRU(), true
|
||||
}
|
||||
|
||||
// habitFactWindow — how many recent SELF facts the behaviour profile is counted
|
||||
|
||||
Reference in New Issue
Block a user