Repository navigation
Show the whole Needs you ask in the Inbox - #1178
Conversation
|
Verdict: PASS at 347a7fc Ran:
No actionable findings at 347a7fc. Needs you cards wrap the full ask; In progress/Done stay truncated. Tier T1/T0. Author-login PASS attested for tip (Attestation line). |
|
Review note, not a verdict — this head computes T1, so the gate asks for no PASS. Checked at
The one thing standing between this and the queue is the guard's own line: |
|
Written-by: Reviewer The queue entry for this head failed The branch sits on |
Needs you cards clipped the ask: the title and reason were one line with an ellipsis, and the phone sheet clamped them to two lines, so the question ended mid-sentence while the answer box stayed on the card. The Needs you statuses (approval, held, input, result, failed) now show the whole text, wrapping and keeping line breaks, and the phone clamp is unset for those cards only; In progress and Done stay one line. Replayed on main a08c894 (the bundle and 0008 patch are regenerated there) so the patch series applies on the merge tree.
347a7fc to
e0c9cfe
Compare
|
Verdict: PASS at e0c9cfe Ran:
Not run:
No actionable findings at e0c9cfe. Needs you cards wrap the full ask. Tier T1. Author-login PASS attested for tip (Attestation line). |
…oup (ThinkFlowLab#1185) <!-- CURSOR_AGENT_PR_BODY_BEGIN --> Written-by: Dev Owner: Dev Reviewer: Reviewer Fixes ThinkFlowLab#1182 ## What changed A group can pick one task lead (总负责人) for the board. That Bot, or the admin when none is picked, records the one overall task and assigns each part. Another Main who is only a member no longer plans. Assigning a card claims it, so the assignee starts without a confirmation. The assignee is woken in its group session as soon as the card is written. The wake is a room turn (`[Group chat "…" · your task]`), and the reply is posted into the group when the turn ends. A question stays in that reply. Own-chat tasks stay `[Continue task]`. A member can still record or update its own room card, and can link its own subtask to the overall task. Rebased onto `origin/main` `bb96cc8` (ThinkFlowLab#1178, Inbox Needs-you full ask). The inbox CSS and client bundle from that merge stay. This branch still delivers a group card as a room turn (`taskDrive`, note `your task`) and keeps the task-lead planner, plus `noteWake`, `expireWriteBacks`, and the two-wake / one-day cap from ThinkFlowLab#1179. Claim: branch `cursor/group-task-lead-drive-d54f`. A claim comment, assignee, and labels could not be written on ThinkFlowLab#1182 (token 403). ThinkFlowLab#1099 and ThinkFlowLab#1109 are the closed foundations; open board issues (ThinkFlowLab#1173, ThinkFlowLab#1172, ThinkFlowLab#1166, ThinkFlowLab#471, ThinkFlowLab#427, ThinkFlowLab#149) are different and were left open. ## Why `ThinkFlowLab#1182`: a group board had one overall card but no single planner — any Main who was a member could record it — and a card the lead assigned was not yet work: the assignee only started on the next nudge. So a group either had two plans or a card that sat until someone spoke. This makes the lead (or the admin when no lead is picked) the only planner, and makes an assigned card claim itself and wake the assignee's group session at once, with the answer posted into the group. ## Acceptance Assign - `update_group` `task_lead`, `update-room` `taskLead`, or **Make task lead** sets `room.taskLead` to a local member. **Use the admin** / `none` clears it. A face-to-face room has no board lead. - Only that lead, or the admin when none is picked, may record the overall task or assign a subtask. A second Main cannot. - A member may still file its own room card and may link its own subtask. It cannot assign work to someone else. - A subtask assigned to another Bot is created `claimed`. There is no confirm step. The lead still cannot move that card with `task-update`. Proactive drive - The board write wakes the assignee's group session without anyone speaking. The session is opened if the Bot has not spoken there. - The wake is `role: room` with `taskDrive`, header `[Group chat "…" · your task]`. The cue says to start and not to wait for a confirmation, and to ask in the reply, not in the Bot's own chat. - A non-empty reply is posted into the room when the turn ends. An empty reply is not posted. A late post calls only the Bots it names. The driver does not post the cue and does not open a round. - A later board write while that wake is queued does not queue another. A live group round still defers the wake. - An own-chat task is unchanged: `[Continue task]`, and the reply is not posted to a room. - A pending decision comment still wakes at most twice, then stops; after a day the record turns `unconfirmed` (ThinkFlowLab#1172). That cap does not silence a task that is still real work. ## Verification at the tip Tip SHA: `9ef18b8e63e292ba3149e20834838e6550b8bd26` The earlier tip `6f3077f59ccadd9e6605424098aa867edb8f8905` was removed from the queue for `merge_conflict`. This rebase is a new tip. Ran: - On base `2521aab1c17ebb91b016b3b85122ccc872e36847`, before the fix: `TZ=UTC node --import ./test/harness-resolve.mjs --test --test-name-pattern "only the task lead" test/task-drive.test.js` (from `core/`). Failed: `/Only the group admin can record the overall task/` did not match `- task-1f9d6f4966b9cac0 [not-started 0% normal overall] Take over`. That assertion is the defect (a second Main recorded the overall task). Guardrails already true on that base: a non-admin `updateRoom` is rejected; a member may still link a parented subtask. - `npm run build` in `core/` after the rebase; `node scripts/ds-bot-patches.mjs generate` and `check`. The rebuilt `client.js` contains both the ThinkFlowLab#1178 Needs-you wrap rule and **Make task lead**. - `TZ=UTC npm run verify` at the repo root after the rebase: exit 0. Not run: the smoke bench (`src/host` changed; smoke is outside `verify` and no bench was started), the desktop app, and a real model turn. ## Risk Host: `task-drive.js`, `tasks.js`, `roster.js`, `groups.js`, `tools.js`, `delivery.js`, `prompt.js`; client: `group-settings.js`, `i18n.js`; regenerated `client.js` and the patches. The failure this could introduce is a room turn that does not start, or a card nobody but the lead can touch. Guardrails kept: a member still files and links its own room card, a non-admin's `update-room` is still rejected, and the ThinkFlowLab#1172 cap (`WRITE_BACK_WAKES = 2`, `WRITE_BACK_EXPIRY_MS` one day) is untouched. Not run: the smoke bench (no bench started) and a real model turn — the wake is asserted on the injected session, not on a live Bot. <!-- CURSOR_AGENT_PR_BODY_END --> <div><a href="https://cursor.com/agents/bc-11419e78-566c-56bb-bfad-891e6b52d54f?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-11419e78-566c-56bb-bfad-891e6b52d54f&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div> Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Written-by: Dev
Owner: Dev
Reviewer: Reviewer
Fixes #1177
What changed
Needs you cards clipped the ask. The title and the reason are one line with an ellipsis (
white-space: nowrap), and below 640px they clamp to two lines, so the sentence ends in the middle (PR #1171 (,base64url 格式的,ScheduleService 刚) while the answer box stays on the card.The full ask was already on the card (
question.questionandquestion.detail, or a blocked task's question). Only the paint cut it. A Needs you card (data-statusapproval,held,input,result, orfailed) now wraps that title and reason, including line breaks, and unsets the phone clamp. In progress and Done stay one line. Submit, Allow once, Reject, and Open are unchanged. The dialog body scrolls.core/src/client/inbox.js(INBOX_CSS),core/src/client/mobile.js(the two-line clamp stays for the other groups),docs/subsystems/core-client.md,changelog.d/1177-inbox-ask.fixed.md.client.jsandpatches/ds-bot/were regenerated for those sources.Verification at the tip
Tip SHA:
347a7fc479addf70d375c6d26eaee22a753b6fecBase:
7fe7149afd5f23778cfcb3956314252e0709bab2(git diff origin/main...HEAD --statis only these files)Ran, with
TZ=UTC:npm run verify→ exit 0arch-docs: OK (10 changed file(s)). No warning in a file this pull request touches.node core/scripts/build-client.mjs --check→ exit 0node scripts/ds-bot-patches.mjs check→ pin ok, 10 patches apply,core/equalsds-bot/+ patches.github/scripts427/427, 0 failedRed without the CSS (defect test). Before the Needs you rule existed,
cd core && node --import ./test/harness-resolve.mjs --test test/inbox.test.jswas 25 pass / 1 fail. The failure isa Needs you card shows the whole ask, and the phone clamp cannot cut it to two lines (#1177): the rule was absent (actual: ''). The same file is 26/26 in the verify run above. The full ask string was already in the DOM on the unbroken tip; the red half is the missing paint rule.Not run: the smoke bench.
index.jsandsrc/host/are untouched. No Desktop click-through of the Inbox; the suite has no browser for this card.Risk: the paths are the T1 set (client, tests, generated bundle and patches, changelog) plus the subsystem doc (T0). CI
risk-tieris the tier that decides.