rescan: count affordances, and say what a rescan cannot do
the header's rescan walks ITEM_TYPES, and affordances are not one — no directory per item, no canonical file — so they were invisible to it. write a new affordance, press the button, and nothing in the response mentions it. counted by LOADING them rather than counting .md files, so the number means "affordances the agent will actually receive" and not "markdown files present": one with no body is skipped by the loader and should not be reported as though it were working. counting is as far as this can honestly go, and the toast now says so. affordanceBlock() is read when a chat session is CREATED, so a new affordance is already live without a server restart — for the NEXT session. nothing can retrofit one into a conversation already running, because its system prompt was assembled when it started. the button's value here is "the file is on disk and the platform can see it", which was the part genuinely unknowable from the UI. also creates the affordances directory, so it is discoverable on a machine that has never had one, the same way the item dirs already are.
This commit is contained in:
@@ -33,7 +33,14 @@ export function RescanButton() {
|
||||
await Promise.all(ITEM_QUERY_KEYS.map((key) => qc.invalidateQueries({ queryKey: [key], refetchType: 'all' })));
|
||||
const c = res.counts ?? {};
|
||||
toast.success(
|
||||
`Rescanned items — ${c.tasks ?? 0} tasks, ${c.agents ?? 0} agents, ${c.tools ?? 0} tools, ${c.skills ?? 0} skills, ${c.processes ?? 0} processes`,
|
||||
`Rescanned items — ${c.tasks ?? 0} tasks, ${c.agents ?? 0} agents, ${c.tools ?? 0} tools, ${c.skills ?? 0} skills, ${c.processes ?? 0} processes, ${c.affordances ?? 0} affordances`,
|
||||
{
|
||||
// Said here rather than left to be discovered: a rescan cannot reach a chat that is already
|
||||
// open, because its system prompt was assembled when it started.
|
||||
description: c.affordances
|
||||
? 'Affordances apply to new chats — an open one keeps the set it started with.'
|
||||
: undefined,
|
||||
},
|
||||
);
|
||||
} catch {
|
||||
toast.error('Failed to rescan items');
|
||||
|
||||
Reference in New Issue
Block a user