Skip to content

fix(ui,host): stable tool mask, one Main Bot term, own Bots only as Main Bot, short typed-line header, display name in People with access - #292

Merged
Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix-276-polish
Oct 18, 2026
Merged

Birfy merged 1 commit into
ThinkFlowLab:mainfrom
Birfy:fix-276-polish

Conversation

@Birfy

@Birfy Birfy commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

Part of #276 (items 1–3) and part of #275 (header and People with access). Both issues stay open for the rest (see below).

#276

  1. Tool added / Tool removed every turn: hidePluginTools computed the known tools from ctx.tools.schemas(agent), which lists only what the Agent sees, so a tool its own mask hid dropped out and the next resolve lifted the mask (Tool added), the one after set it again (Tool removed). Tools the current mask hides now count as known; the mask is set once.
  2. One term: the Main Bot prompt section is headed You are the Main Bot (was "(Chief of Staff)") and says to use that term, the one the UI shows.
  3. Main Bot candidates: Settings → Bots offers only the user's own Bots in both Main Bot selects; a friend's Bot (also named Chief) is no longer offered.

#275

  • A friend's typed line shows the person, plus via <Bot> only when this home knows the carrying Bot (its plain name). The model-facing sender label (X (typed via @…, Bot Social)) and the handle-derived · owner's Bot no longer reach the header.
  • People with access keeps the friend's display name: grantPersonView no longer treats its own Name (@home) label as a handle when the grant is synced again (the existing test that expected bob (@bob.home) now expects Bob (@bob.home)).

Left open: #276 item 4 (gear on own Bot rows, a UI addition) and #275's sticky NEW divider (needs a live repro).

Ran at tip: TZ=UTC ARCH_DOCS_BASE=upstream/main npm run verify (green). New tests fail without the fixes (tool mask). Docs: plugin-runtime.md, core-client.md, core-host.md, social.md. Changelog fragment added. Nothing deployed.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T06:42:36.104296Z 2689bc1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Birfy
Birfy added this pull request to the merge queue Oct 18, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 18, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2689bc1ae0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

className: 'bt-select', 'aria-label': t('Main Bot'), value: first?.id ?? '',
onChange: event => run(actions.setMain(event.target.value, true, first ? { replace: first.id } : {})),
}, first ? null : h('option', { value: '' }, t('Choose a Bot…')), roster.bots.map(bot => h('option', { key: bot.id, value: bot.id }, bot.name)))),
}, first ? null : h('option', { value: '' }, t('Choose a Bot…')), own.map(bot => h('option', { key: bot.id, value: bot.id }, bot.name)))),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reconcile existing remote Main Bots before filtering options

For an upgraded team that selected a friend's Bot as the first Main Bot through the old unfiltered select, the persisted remote ID still becomes first (the store migration only drops nonexistent Bots), but this option list no longer contains first.id. The controlled select therefore cannot show the actual first Main Bot while that remote record remains in mainBotIds with Main privileges; reconcile persisted remote Main entries, or at least render and allow removal of the selected one, before filtering the list.

AGENTS.md reference: AGENTS.md:L58-L58

Useful? React with 👍 / 👎.

Comment thread core/src/client/cells.js
return { bot, member, name, handle, carrier, chatId: chat ? currentPart(chat) : undefined }
}

const cleanCarrier = value => (typeof value === 'string' && value.trim() && !/[@()]/.test(value) ? value.trim() : '')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve punctuation in known carrier Bot names

When a known friend's Bot has a valid customized name containing parentheses, such as Research (EU), this predicate returns '' even though chat or member matched. Parentheses are allowed by the Bot-name validation and survive remote publication, so every attested owner-typed line from that Bot loses the intended via <Bot> attribution; distinguish the model-generated decoration by source or pattern instead of rejecting punctuation in a known name.

AGENTS.md reference: AGENTS.md:L61-L61

Useful? React with 👍 / 👎.

@Birfy

Birfy commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator Author

Maintainer review (2026-10-18 maintenance): Design OK — stable tool mask, one Main Bot term, own Bots only as Main Bot candidates, short typed-line header, display name in People with access. Leaves #276 item 4 and #275 sticky NEW open as noted. Will rebase onto latest main and squash-merge after #286.

@Birfy
Birfy enabled auto-merge October 18, 2026 08:09
@Birfy
Birfy disabled auto-merge October 18, 2026 08:12
…own Bots only as Main Bot, short typed-line header, display name in People with access (ThinkFlowLab#276 ThinkFlowLab#275)
@Birfy
Birfy added this pull request to the merge queue Oct 18, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 18, 2026
@Birfy
Birfy added this pull request to the merge queue Oct 18, 2026
Merged via the queue into ThinkFlowLab:main with commit a003044 Oct 18, 2026
8 checks passed
@Birfy
Birfy deleted the fix-276-polish branch October 18, 2026 08:20
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