Repository navigation
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
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| Friend-DM polish: a hidden plugin tool no longer flips between "Tool added" and "Tool removed" on every turn; Bots call the Main Bot by one name; a friend's Bot is no longer offered as a Main Bot ([#276](https://github.com/ThinkFlowLab/FlyBot/issues/276)); a friend's typed line has one short header (the person, and "via <Bot>" only when that Bot is known), and People with access keeps the friend's display name instead of the lowercase handle ([#275](https://github.com/ThinkFlowLab/FlyBot/issues/275)). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -72,7 +72,9 @@ function GeneralPage({ roster, actions, run }) { | |
| function MainBotsSection({ roster, actions, run }) { | ||
| const mains = (roster.mainBotIds ?? []).map(id => roster.byId[id]).filter(Boolean) | ||
| const [first, ...others] = mains | ||
| const candidates = roster.bots.filter(bot => !isMainOf(roster, bot.id)) | ||
| // Only the user's own Bots can hold the role; a friend's Bot is never offered (#276). | ||
| const own = roster.bots.filter(bot => !bot.remote) | ||
| const candidates = own.filter(bot => !isMainOf(roster, bot.id)) | ||
| return h(SetSection, { title: t('Main Bot') }, | ||
| h(SetRow, { | ||
| label: t('Main Bot'), | ||
|
|
@@ -81,7 +83,7 @@ function MainBotsSection({ roster, actions, run }) { | |
| h('select', { | ||
| 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)))), | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
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 AGENTS.md reference: AGENTS.md:L58-L58 Useful? React with 👍 / 👎. |
||
| others.map(bot => h(SetRow, { key: bot.id, label: bot.name, hint: t('Also a Main Bot.') }, | ||
| h('button', { type: 'button', className: 'bt-soft bt-soft-sm', onClick: () => run(actions.setMain(bot.id, true, { primary: true })) }, t('Move to first')), | ||
| h('button', { type: 'button', className: 'bt-soft bt-soft-sm', onClick: () => run(actions.setMain(bot.id, false)) }, t('Remove Main Bot role')))), | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a known friend's Bot has a valid customized name containing parentheses, such as
Research (EU), this predicate returns''even thoughchatormembermatched. Parentheses are allowed by the Bot-name validation and survive remote publication, so every attested owner-typed line from that Bot loses the intendedvia <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 👍 / 👎.