Skip to content

tui3: make a team from this chat — + New from this session, then /helpers - #1881

Merged
ZeroPoint95 merged 14 commits into
devfrom
zeropoint95/bring-in-helpers
Oct 20, 2026
Merged

ZeroPoint95 merged 14 commits into
devfrom
zeropoint95/bring-in-helpers

Conversation

@ZeroPoint95

@ZeroPoint95 ZeroPoint95 commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Makes a team from the conversation you're in, with that conversation as manager: + New from this session in Teams ▾, then /helpers to bring in helpers.

  • + New from this session (last row of Teams ▾, only with no team selected) makes a top-level team at once, this chat as manager, and selects it — the strip and column change on the click
  • The box is prefilled with /helpers Suggest two or three helpers for this work, and I'll say yes, change them, or cancel.
  • The team is named after the chat: folder name on the click, then 1–2 words from the naming model (renamed only if you haven't renamed it; Teams.Name gains an optional words limit)
  • /helpers [words] asks the team this chat manages for helpers and sends exactly your words; it makes no team, and elsewhere says to use the row
  • Teams ▾ shows with no teams yet; its up/down/enter/esc footer is gone
  • New team_dissolve: the manager can take back a team that never held anyone but itself; the tool leaves at the next boundary once anyone joins or Traffic is written, including rotated Traffic. Disband on Teams also works
  • Helpers the manager starts open as tabs in that team's overlay
  • Fix: members started with team_start wake on an ordinary launch despite the engine's stamped joined_at. The membership records its admitted Traffic start ID, so only its own brief crosses that join boundary; reused handles, former memberships, and unrelated pre-join starts or directives do not replay old assignments. Remote edits preserve that identity.
  • 💡 tip, and a one-time note (after the 4th message, chats in no team) letting the model suggest bringing in helpers once
  • Same rules as every team: fresh name, one conversation manages one team, store refusals roll the window back
  • Manual: team manager page, tips, commands, Teams dropdown; retrieval probes added

How to test:

  1. make pr-ready
  2. make build, then scripts/clean-run.sh in a scratch folder
  3. Talk a little, then Teams ▾ → + New from this session — the team appears at once and is renamed within a few seconds
  4. Press enter, reply "Yes, go." — helpers open as tabs and start working
  5. In a chat that manages no team, /helpers says to use the row and changes nothing

Validation at 23e4f4576b8d1f11afee834d3bfea60d08163f47:

  • BASE=1a5c885a45d35a303a03a6110b9f617d729dcfd9 make pr-ready SHARDS=4 passed; every selected suite passed on its first run, including full command, session, and UI suites.
  • Focused session and UI race tests, full teams and remote race suites, make build, and the Windows cross-build passed.
  • Regressions cover public Submit after handle reuse and same-conversation rejoin, a replacement's own start, unrelated pre-join brief/directive exclusion, once-only delivery, remote identity preservation, and dissolve withdrawal for current/rotated Traffic. The locked store refusal still protects history.
  • PR gate run 39507426845 passed all eight jobs on this head; all four touched-package legs passed on their first runs.
  • Live-provider and tagged end-to-end evaluation were not run.

🤖 Generated with Claude Code

ZeroPoint95 and others added 8 commits October 19, 2026 09:34
…it for helpers

A person deep in a piece of work can now turn it into a team effort with
the conversation that knows the work in charge. `/helpers` (or `+ Make
team` beside Tasks in the right-hand column of a chat in no team) makes a
new top-level team with the conversation in front as its manager in one
store edit, narrows the strip to it, and once the store has taken the
edit sends the conversation one turn: propose two or three helpers, ask,
start nobody until the person agrees.

The person answers in words. Yes is team_start under the usual approval
posture; no is the new team_dissolve, which forgets a team that has never
held anyone but its manager (no member, former member, subteam or
Traffic). It is on the belt only while that is true, for every team
however it was made, and the store checks again under its lock.

Every rule a team made on the Teams page meets is met here: a fresh name,
the next colour, one conversation managing one team and its subteams, and
the store's refusal taking the window back. The manual's team manager
page has the command, when it is not offered, and cancelling.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The column button beside Tasks is gone. The Teams dropdown's last row,
under a rule, is now always `+ New from this session`: it puts `/helpers`
and a default ask in the message box, in place of what was there (kept
on the drafts ring), and sends nothing until the person presses enter.
Because the row is always there, the `Teams ▾` chip shows with no teams
yet; only over --host to an engine without teams is it absent. The
dropdown no longer prints an up/down, enter, esc footer.

Nothing hidden is sent any more. /helpers sends exactly the words after
it, and a bare /helpers sends the default ask and shows it in full in the
transcript. The ask is in the person's words and names no tool; the
model knows it manages the team from the role note every manager gets.

A helper the manager starts opens as a tab on that team's strip: when
the manager is in front, the strip is set to the team's overlay, without
moving focus or the draft.

The cursor no longer lands on the new row when no team is shown, and
the long-list window follows the cursor's line, now that a rule sits
between the teams and the last row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With a team's overlay on the strip, the Teams dropdown no longer offers
`+ New from this session`, and /helpers refuses with
`/helpers works with no team selected · clear <team> with × first, or use
+ Add subteam on Teams for a team inside it`. The team /helpers makes is
always top-level, and making it from inside another team's overlay read
as nesting. Nesting keeps its own doors: + Add subteam on Teams, and a
manager's sub-team start.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`/helpers makes this conversation the manager of a new team` joins the
tips, after /task's. It is armed only where /helpers would act: after the
first exchange, with no team selected, in a conversation that manages
none, never on home. It retires the first time /helpers is typed or the
Teams dropdown's `+ New from this session` is chosen. The table is
twenty-five tips now, and the hints page says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After the person's fourth message, an interactive conversation in no
team is told once, in a note of its own, that it may end a reply with
one sentence suggesting a team when the work is long and has parts a
few helpers could take on at once: "Want to bring in some helpers? Type
/helpers and I'll suggest who." Only the person can make the team; the
note says so, and says never for small work, never instead of the work,
and never again once suggested or declined.

It is a note and not a paragraph of prompts/system.md because the page
is the fixed prefix every request pays for, held under a budget that
only shrinks, and the suggestion only fits a conversation that has gone
on. Tasks' workers, automation runs, home's ask here and conversations
already in a team are never told. The team manager page says why the
chat suggested it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On an ordinary launch every team edit goes through the engine's teams
door, which stamps a new member's join time. A member started by
team_start always joins after the start that made it was written, and
the join bound in the Traffic delivery dropped that start: nothing was
addressed to the member, the start watch never woke it, and helpers sat
idle while the manager reported them running. The unit test missed it
because it added the member with no join time.

A member's own start, addressed to its handle within the start grace,
is now exempt from the bound; every other line from before the join is
still withheld, which the new test also holds.

The default /helpers ask no longer says "Don't start anyone until I
agree", which the memory that notices rules kept as a standing project
rule. It now says what happens next in this exchange: "I'll answer yes,
ask for changes, or cancel."

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ZeroPoint95
ZeroPoint95 marked this pull request as ready for review October 19, 2026 18:59
ZeroPoint95 and others added 4 commits October 20, 2026 13:45
Choosing the Teams dropdown's row used to fill the message box and
nothing else, and the change below was easy to miss. The row now makes
the team the moment it is chosen: this conversation becomes its manager,
the strip narrows to it and the column turns to its Traffic on the same
frame, and the box is given `/helpers` and the ask for the next step.

/helpers now asks the team the conversation in front manages for
helpers, and makes no team. In a conversation that manages none it
changes nothing and says to use + New from this session. A /helpers sent
before the store has the row's team is held until it does, so the
manager's first step already knows it is one. A refused save empties the
box again.

The default ask is one sentence: "Suggest two or three helpers for this
work, and I'll say yes, change them, or cancel." The tip, the one-time
suggestion note, the command rows, the manual and the change entry say
where the team is made now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rsation

The click still makes the team at once, under its folder's name, so the
strip changes on the frame. Beside the line, the naming role is asked
once (five seconds at most, on the cheap naming model) for one or two
words naming the work, from the conversation's title or opening words,
and the team takes the answer.

The rename is a teams-store edit applied only while the team still has
the name it was made with and no other team has the new one, so a name
the person chose here or in another window is never replaced, and a
team that is gone stays gone. A failure, a timeout or an answer that is
not a name leaves the folder's name. The receipt says the final name
once; a name that arrives after it is said on its own line.

session's NameTeamWords asks the short question and cuts to the limit;
NameTeam is the group's three. Teams.Name carries an optional words
field; an engine without it answers the group's question and the
surface cuts the answer to two words.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elpers

# Conflicts:
#	internal/manual/chat_test.go
@ZeroPoint95 ZeroPoint95 changed the title tui3: /helpers makes this conversation a new team's manager tui3: make a team from this chat — + New from this session, then /helpers Oct 20, 2026
@ZeroPoint95
ZeroPoint95 merged commit 428baa6 into dev Oct 20, 2026
8 checks passed
@ZeroPoint95
ZeroPoint95 deleted the zeropoint95/bring-in-helpers branch October 20, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant