fix: channels missing (workflow_enabled column), DM reactions, sidebar filtering
- Channel queries failed on prod because workflow_enabled column was missing (migration ran before column was added). Fixed prod DB. - Added WorkflowBadge + ReactionPills to DM page view so reactions work in DMs, not just channels - Filtered agent-to-agent DMs from sidebar — only show AI agents when they have unread messages for the human owner - Updated 4 agent gitops repos with SynapBus reactions workflow instructions (react in_progress/done, thread replies, self-update) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
6bb88374ce
commit
d5a831bac4
Vendored
+11
-11
@@ -11,30 +11,30 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
||||
<link href="/_app/immutable/entry/start.BTpC5eSl.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/BDDnoQ_7.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/start.X5wzyl3b.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/CPFJ4jrM.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/BjgrqnN-.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/DFRGYO_X.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/0x2jFCf0.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/C3nS3byM.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/C1Y8Vas-.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/Bs4ZECIt.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/app.CH8Eo5Dd.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/D2RS6Hlp.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/C-40UA0L.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/4Fzv7G3k.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/C0W-VSVk.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/chunks/ChDFVqbV.js" rel="modulepreload">
|
||||
<link href="/_app/immutable/entry/app.DrjvX3b5.js" rel="modulepreload">
|
||||
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">
|
||||
<script>
|
||||
{
|
||||
__sveltekit_vfgq9e = {
|
||||
__sveltekit_fae453 = {
|
||||
base: ""
|
||||
};
|
||||
|
||||
const element = document.currentScript.parentElement;
|
||||
|
||||
Promise.all([
|
||||
import("/_app/immutable/entry/start.BTpC5eSl.js"),
|
||||
import("/_app/immutable/entry/app.CH8Eo5Dd.js")
|
||||
import("/_app/immutable/entry/start.X5wzyl3b.js"),
|
||||
import("/_app/immutable/entry/app.DrjvX3b5.js")
|
||||
]).then(([kit, app]) => {
|
||||
kit.start(app, element);
|
||||
});
|
||||
|
||||
@@ -55,6 +55,16 @@
|
||||
return count > 99 ? '99+' : String(count);
|
||||
}
|
||||
|
||||
// Filter DM list: only show human agents + AI agents with unread DMs.
|
||||
// This hides agent-to-agent internal conversations from the sidebar.
|
||||
let dmAgentList = $derived(
|
||||
agentList.filter(agent => {
|
||||
if (agent.type !== 'ai') return true;
|
||||
const unread = $notifications.dms.get(agent.name) ?? 0;
|
||||
return unread > 0;
|
||||
})
|
||||
);
|
||||
|
||||
const adminLinks = [
|
||||
{ href: '/agents', label: 'Agents' },
|
||||
{ href: '/settings', label: 'Settings' }
|
||||
@@ -207,10 +217,10 @@
|
||||
</button>
|
||||
{#if dmsExpanded}
|
||||
<div class="mt-0.5">
|
||||
{#if agentList.length === 0}
|
||||
{#if dmAgentList.length === 0}
|
||||
<p class="px-3 py-1 text-xs text-text-secondary italic">No agents</p>
|
||||
{:else}
|
||||
{#each agentList as agent}
|
||||
{#each dmAgentList as agent}
|
||||
{@const dmUnread = $notifications.dms.get(agent.name) ?? 0}
|
||||
<a
|
||||
href="/dm/{agent.name}"
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
import { openThread, closeThread } from '$lib/stores/thread';
|
||||
import { notifications } from '$lib/stores/notifications';
|
||||
import MessageBody from '$lib/components/MessageBody.svelte';
|
||||
import WorkflowBadge from '$lib/components/WorkflowBadge.svelte';
|
||||
import ReactionPills from '$lib/components/ReactionPills.svelte';
|
||||
|
||||
let peerAgent = $derived($page.params.name);
|
||||
let peer = $state<any>(null);
|
||||
@@ -246,6 +248,10 @@
|
||||
{/if}
|
||||
</div>
|
||||
<div class="text-sm text-text-primary/90 leading-relaxed"><MessageBody body={msg.body} /></div>
|
||||
{#if msg.workflow_state}
|
||||
<WorkflowBadge state={msg.workflow_state} />
|
||||
{/if}
|
||||
<ReactionPills reactions={msg.reactions ?? []} messageId={msg.id} />
|
||||
{#if msg.reply_count > 0}
|
||||
<button
|
||||
class="mt-1 flex items-center gap-1 text-xs text-accent-blue hover:underline"
|
||||
|
||||
Reference in New Issue
Block a user