beads_rust 0.1.14

Agent-first issue tracker (SQLite + JSONL)
Documentation
SQLite format 3@  �M0��.���C������}L(
�	F
�=	�
���"�E�ggCW1indexsqlite_autoindex_message_recipients_1message_recipients�Q�Kindexidx_msg_project_importance_createdmessagesCREATE INDEX idx_msg_project_importance_created ON messages(project_id, importance, created_ts)q9�indexidx_msg_thread_createdmessagesCREATE INDEX idx_msg_thread_created ON messages(thread_id, created_ts)h;�indexidx_messages_created_tsmessagesCREATE INDEX idx_messages_created_ts ON messages(created_ts)h;�indexidx_messages_importancemessagesCREATE INDEX idx_messages_importance ON messages(importance)e9�indexidx_messages_thread_idmessagesCREATE INDEX idx_messages_thread_id ON messages(thread_id)�S�Kindexidx_messages_project_sender_createdmessagesCREATE INDEX idx_messages_project_sender_created ON messages(project_id, sender_id, created_ts)~E�'indexidx_messages_project_createdmessagesCREATE INDEX idx_messages_project_created ON messages(project_id, created_ts)�A�UtablemessagesmessagesCREATE TABLE messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_id INTEGER NOT NULL REFERENCES projects(id),
    sender_id INTEGER NOT NULL REFERENCES agents(id),
    thread_id TEXT,
    subject TEXT NOT NULL,
    body_md TEXT NOT NULL,
    importance TEXT NOT NULL DEFAULT 'normal',
    ack_required INTEGER NOT NULL DEFAULT 0,
    created_ts INTEGER NOT NULL,
    attachments TEXT NOT NULL DEFAULT '[]'
)j;�
indexidx_agents_project_nameagentsCREATE INDEX idx_agents_project_name ON agents(project_id, name)�Y�
tableagentsagentsCREATE TABLE agents (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_id INTEGER NOT NULL REFERENCES projects(id),
    name TEXT NOT NULL,
    program TEXT NOT NULL,
    model TEXT NOT NULL,
    task_description TEXT NOT NULL DEFAULT '',
    inception_ts INTEGER NOT NULL,
    last_active_ts INTEGER NOT NULL,
    attachments_policy TEXT NOT NULL DEFAULT 'auto',
    contact_policy TEXT NOT NULL DEFAULT 'auto',
    UNIQUE(project_id, name)
)+?indexsqlite_autoindex_agents_1agents�=
77�tableproduct_project_linksproduct_project_linksCREATE TABLE product_project_links (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    product_id INTEGER NOT NULL REFERENCES products(id),
    project_id INTEGER NOT NULL REFERENCES projects(id),
    created_at INTEGER NOT NULL,
    UNIQUE(product_id, project_id)
)I]7indexsqlite_autoindex_product_project_links_1product_project_linksU/mindexidx_products_nameproducts
CREATE INDEX idx_products_name ON products(name)Z-yindexidx_products_uidproductsCREATE INDEX idx_products_uid ON products(product_uid)�E�]tableproductsproducts	CREATE TABLE products (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    product_uid TEXT NOT NULL UNIQUE,
    name TEXT NOT NULL UNIQUE,
    created_at INTEGER NOT NULL
)/
Cindexsqlite_autoindex_products_2products/	Cindexsqlite_autoindex_products_1products
e9�indexidx_projects_human_keyprojectsCREATE INDEX idx_projects_human_key ON projects(human_key)U/mindexidx_projects_slugprojectsCREATE INDEX idx_projects_slug ON projects(slug)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)�<�KtableprojectsprojectsCREATE TABLE projects (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    slug TEXT NOT NULL UNIQUE,
    human_key TEXT NOT NULL,
    created_at INTEGER NOT NULL
)/Cindexsqlite_autoindex_projects_1projects�t??�wtablemcp_agent_mail_migrationsmcp_agent_mail_migrationsCREATE TABLE mcp_agent_mail_migrations (
            id TEXT PRIMARY KEY ON CONFLICT IGNORE,
            description TEXT NOT NULL,
            applied_at INTEGER NOT NULL
        )Qe?indexsqlite_autoindex_mcp_agent_mail_migrations_1mcp_agent_mailCS4K2�6���f
�
�
V��7��:
�
�
%	�	o	&� �|#�w&�x)��Z��+�W�m��a.3�v4_idx_mr_agent_ackcomposite index on message_recipients(agent_id, ack_ts) for ack viewsi��H�-e�+v3_fix_product_project_links_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in product_project_linksi��Hj,K�v3_fix_products_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in productsi��H|+]�#v3_fix_file_reservations_text_timestampsconvert legacy TEXT timestamps to INTEGER microseconds in file_reservationsi��Hj*K�v3_fix_messages_text_timestampsconvert legacy TEXT created_ts to INTEGER microseconds in messagesi��Hf)G�
v3_fix_agents_text_timestampsconvert legacy TEXT timestamps to INTEGER microseconds in agentsi��Hj(K�v3_fix_projects_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in projectsi��H?'GAv1_create_trigger_messages_aucreate trigger messages_aui��H?&GAv1_create_trigger_messages_adcreate trigger messages_adi��H?%GAv1_create_trigger_messages_aicreate trigger messages_aii��HC$GIv2_drop_legacy_fts_trigger_audrop legacy fts update triggeri��HC#GIv2_drop_legacy_fts_trigger_addrop legacy fts delete triggeri��HC"GIv2_drop_legacy_fts_trigger_aidrop legacy fts insert triggeri��HM!UOv1_create_virtual_table_fts_messagescreate virtual table fts_messagesi��H[ c]v1_create_table_project_sibling_suggestionscreate table project_sibling_suggestionsi��HOWQv1_create_index_idx_al_b_agent_statuscreate index idx_al_b_agent_statusi��GOWQv1_create_index_idx_al_a_agent_statuscreate index idx_al_a_agent_statusi��GQYSv1_create_index_idx_agent_links_statuscreate index idx_agent_links_statusi��GW_Yv1_create_index_idx_agent_links_b_projectcreate index idx_agent_links_b_projecti��GW_Yv1_create_index_idx_agent_links_a_projectcreate index idx_agent_links_a_projecti��G;C=v1_create_table_agent_linkscreate table agent_linksi��Gemgv1_create_index_idx_file_reservations_expires_tscreate index idx_file_reservations_expires_tsi��G~�v1_create_index_idx_file_reservations_project_agent_releasedcreate index idx_file_reservations_project_agent_releasedi��G��	�v1_create_index_idx_file_reservations_project_released_expirescreate index idx_file_reservations_project_released_expiresi��GGOIv1_create_table_file_reservationscreate table file_reservationsi��GEMGv1_create_index_idx_mr_agent_ackcreate index idx_mr_agent_acki��Gmuov1_create_index_idx_message_recipients_agent_messagecreate index idx_message_recipients_agent_messagei��G]e_v1_create_index_idx_message_recipients_agentcreate index idx_message_recipients_agenti��GIQKv1_create_table_message_recipientscreate table message_recipientsi��Giqkv1_create_index_idx_msg_project_importance_createdcreate index idx_msg_project_importance_createdi��GQYSv1_create_index_idx_msg_thread_createdcreate index idx_msg_thread_createdi��GS[Uv1_create_index_idx_messages_created_tscreate index idx_messages_created_tsi��GS[Uv1_create_index_idx_messages_importancecreate index idx_messages_importancei��GQ
YSv1_create_index_idx_messages_thread_idcreate index idx_messages_thread_idi��Gksmv1_create_index_idx_messages_project_sender_createdcreate index idx_messages_project_sender_createdi��G]e_v1_create_index_idx_messages_project_createdcreate index idx_messages_project_createdi��G5
=7v1_create_table_messagescreate table messagesi��GS	[Uv1_create_index_idx_agents_project_namecreate index idx_agents_project_namei��G193v1_create_table_agentscreate table agentsi��GOWQv1_create_table_product_project_linkscreate table product_project_linksi��GGOIv1_create_index_idx_products_namecreate index idx_products_namei��GEMGv1_create_index_idx_products_uidcreate index idx_products_uidi��G5=7v1_create_table_productscreate table productsi��GQYSv1_create_index_idx_projects_human_keycreate index idx_projects_human_keyi��GGOIv1_create_index_idx_projects_slugcreate index idx_projects_slugi��G5=7v1_create_table_projectscreate table project5.
Z"��� "��a�@c�Bj<�
�
���/��
�
�l4	�
O
�+Q����s
(�v
��	�	�	�
d
 
B	�	R		.��	t�/�Lv���|"^=�����{=\���pK�!Cv11_drop_fts_projects_tableZ Ev11_drop_trigger_projects_auY Ev11_drop_trigger_projects_adX Ev11_drop_trigger_projects_aiW?v11_drop_fts_agents_tableVAv11_drop_trigger_agents_auUAv11_drop_trigger_agents_adTAv11_drop_trigger_agents_aiSCv11_drop_fts_messages_tableR Ev11_drop_trigger_messages_auQ Ev11_drop_trigger_messages_adP Ev11_drop_trigger_messages_aiO'Sv10b_idx_agents_project_name_nocaseN&Qv10a_dedup_agents_case_insensitiveM.av9_idx_tool_metrics_snapshots_collected_tsL)Wv9_idx_tool_metrics_snapshots_tool_tsK$Mv9_create_tool_metrics_snapshotsJ Ev8_idx_search_recipes_pinnedI;v8_idx_query_history_tsH;v8_create_query_historyG=v8_create_search_recipesF=v7_backfill_fts_projectsE9v7_backfill_fts_agentsDAv7_trg_fts_projects_updateCAv7_trg_fts_projects_deleteBAv7_trg_fts_projects_insertA=v7_trg_fts_agents_update@=v7_trg_fts_agents_delete?=v7_trg_fts_agents_insert>9v7_create_fts_projects=5v7_create_fts_agents<;v6_backfill_inbox_stats;9v6_trg_inbox_stats_ack: Ev6_trg_inbox_stats_mark_read9?v6_trg_inbox_stats_insert87v6_create_inbox_stats79v5_rebuild_fts_content6?v5_create_fts_with_porter5%Ov5_drop_fts_for_tokenizer_rebuild4=v4_analyze_after_indexes3=v4_idx_al_b_agent_status2=v4_idx_al_a_agent_status1)Wv4_idx_msg_project_importance_created0?v4_idx_msg_thread_created/3v4_idx_mr_agent_ack.0ev3_fix_product_project_links_text_timestamps-#Kv3_fix_products_text_timestamps,,]v3_fix_file_reservations_text_timestamps+#Kv3_fix_messages_text_timestamps*!Gv3_fix_agents_text_timestamps)#Kv3_fix_projects_text_timestamps(!Gv1_create_trigger_messages_au'!Gv1_create_trigger_messages_ad&!Gv1_create_trigger_messages_ai%!Gv2_drop_legacy_fts_trigger_au$!Gv2_drop_legacy_fts_trigger_ad#!Gv2_drop_legacy_fts_trigger_ai"(Uv1_create_virtual_table_fts_messages!/cv1_create_table_project_sibling_suggestions )Wv1_create_index_idx_al_b_agent_status)Wv1_create_index_idx_al_a_agent_status*Yv1_create_index_idx_agent_links_status-_v1_create_index_idx_agent_links_b_project-_v1_create_index_idx_agent_links_a_projectCv1_create_table_agent_links4mv1_create_index_idx_file_reservations_expires_tsA�v1_create_index_idx_file_reservations_project_agent_releasedC�	v1_create_index_idx_file_reservations_project_released_expires%Ov1_create_table_file_reservations$Mv1_create_index_idx_mr_agent_ack8uv1_create_index_idx_message_recipients_agent_message0ev1_create_index_idx_message_recipients_agent&Qv1_create_table_message_recipients6qv1_create_index_idx_msg_project_importance_created*Yv1_create_index_idx_msg_thread_created+[v1_create_index_idx_messages_created_ts+[v1_create_index_idx_messages_importance*Yv1_create_index_idx_messages_thread_id
7sv1_create_index_idx_messages_project_sender_created0ev1_create_index_idx_messages_project_created=v1_create_table_messages
+[v1_create_index_idx_agents_project_name	9v1_create_table_agents)Wv1_create_table_product_project_links%Ov1_create_index_idx_products_name$Mv1_create_index_idx_products_uid=v1_create_table_products*Yv1_create_index_idx_projects_human_key%Ov1_create_index_idx_projects_slug=	v1_create_table_projects
��>=?data-projects-beads-rust/data/projects/beads_rustKF��r�
��=	data-projects-beads-rust
���		agents	projects
��=	data-projects-beads-rust
��?	/data/projects/beads_rust







!�!c	##MRusticBirchclaude-codeopus-4.6Working on beads_rust open tasksK_��K_��autoautox	)#uLavenderSummitclaude-codeopus-4.6Fix clippy errors and advance beads_rust developmentKF���7KF���7autoauto
��	)	LavenderSummit
���	#RusticBirch	)	LavenderSummit
���$		M�_
RusticBirch online - checking inHi LavenderSummit, I'm RusticBirch (claude-code/opus-4.6), just came online on beads_rust. All 549 beads are closed. I'll check for any new work to do - please let me know if there are tasks you need help with or coordination needed.normalK_���
��		K_���
��		K_���
��	
��		normal
��	K_���
��	K_���
��		normalK_���
��		to

����
�}
l
��}L(
�	F
�=	�
���"�E�sg�611�tablemessage_recipientsmessage_recipientsCREATE TABLE message_recipients (
    message_id INTEGER NOT NULL REFERENCES messages(id),
    agent_id INTEGER NOT NULL REFERENCES agents(id),
    kind TEXT NOT NULL DEFAULT 'to',
    read_ts INTEGER,
    ack_ts INTEGER,
    PRIMARY KEY(message_id, agent_id)
)�Q�Kindexidx_msg_project_importance_createdmessagesCREATE INDEX idx_msg_project_importance_created ON messages(project_id, importance, created_ts)q9�indexidx_msg_thread_createdmessagesCREATE INDEX idx_msg_thread_created ON messages(thread_id, created_ts)h;�indexidx_messages_created_tsmessagesCREATE INDEX idx_messages_created_ts ON messages(created_ts)h;�indexidx_messages_importancemessagesCREATE INDEX idx_messages_importance ON messages(importance)e9�indexidx_messages_thread_idmessagesCREATE INDEX idx_messages_thread_id ON messages(thread_id)�S�Kindexidx_messages_project_sender_createdmessagesCREATE INDEX idx_messages_project_sender_created ON messages(project_id, sender_id, created_ts)~E�'indexidx_messages_project_createdmessagesCREATE INDEX idx_messages_project_created ON messages(project_id, created_ts)�A�UtablemessagesmessagesCREATE TABLE messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_id INTEGER NOT NULL REFERENCES projects(id),
    sender_id INTEGER NOT NULL REFERENCES agents(id),
    thread_id TEXT,
    subject TEXT NOT NULL,
    body_md TEXT NOT NULL,
    importance TEXT NOT NULL DEFAULT 'normal',
    ack_required INTEGER NOT NULL DEFAULT 0,
    created_ts INTEGER NOT NULL,
    attachments TEXT NOT NULL DEFAULT '[]'
)j;�
indexidx_agents_project_nameagentsCREATE INDEX idx_agents_project_name ON agents(project_id, name)�Y�
tableagentsagentsCREATE TABLE agents (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_id INTEGER NOT NULL REFERENCES projects(id),
    name TEXT NOT NULL,
    program TEXT NOT NULL,
    model TEXT NOT NULL,
    task_description TEXT NOT NULL DEFAULT '',
    inception_ts INTEGER NOT NULL,
    last_active_ts INTEGER NOT NULL,
    attachments_policy TEXT NOT NULL DEFAULT 'auto',
    contact_policy TEXT NOT NULL DEFAULT 'auto',
    UNIQUE(project_id, name)
)+?indexsqlite_autoindex_agents_1agents�=
77�tableproduct_project_linksproduct_project_linksCREATE TABLE product_project_links (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    product_id INTEGER NOT NULL REFERENCES products(id),
    project_id INTEGER NOT NULL REFERENCES projects(id),
    created_at INTEGER NOT NULL,
    UNIQUE(product_id, project_id)
)I]7indexsqlite_autoindex_product_project_links_1product_project_linksU/mindexidx_products_nameproducts
CREATE INDEX idx_products_name ON products(name)Z-yindexidx_products_uidproductsCREATE INDEX idx_products_uid ON products(product_uid)�E�]tableproductsproducts	CREATE TABLE products (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    product_uid TEXT NOT NULL UNIQUE,
    name TEXT NOT NULL UNIQUE,
    created_at INTEGER NOT NULL
)/
Cindexsqlite_autoindex_products_2products/	Cindexsqlite_autoindex_products_1products
e9�indexidx_projects_human_keyprojectsCREATE INDEX idx_projects_human_key ON projects(human_key)U/mindexidx_projects_slugprojectsCREATE INDEX idx_projects_slug ON projects(slug)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)�<�KtableprojectsprojectsCREATE TABLE projects (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    slug TEXT NOT NULL UNIQUE,
    human_key TEXT NOT NULL,
    created_at INTEGER NOT NULL
)/Cindexsqlite_autoindex_projects_1projects�t??�wtablemcp_agent_mail_migrationsmcp_agent_mail_migrationsCREATE TABLE mcp_agent_mail_migrations (
            id TEXT PRIMARY KEY ON CONFLICT IGNORE,
            description TEXT NOT NULL,
            applied_at INTEGER NOT NULL
        )Qe?indexsqlite_autoindex_mcp_agent_mail_migrations_1mcp_agent_mail_migrations
�/�4�f�
�
U�n���h�wcLD1y055�tablefts_messaK5%%[tablesqlite_�3#�wtriggermessages_admessagesCREATE TRIGGER messages_ad AFTER DELETE ON messages BEGIN
    DELETE FROM fts_messages WHERE message_id = OLD.id;
END�E2#�Utriggermessages_aimessagesCREATE TRIGGER messages_ai AFTER INSERT ON messages BEGIN
    INSERT INTO fts_messages(message_id, subject, body)
    VALUES (NEW.id, NEW.subject, NEW.body_md);
ENDU+iCindexsqlite_autoindex_project_sibling_suggestions_1project_sibling_suggestions.�611�tablemessage_recipientsmessage_recipientsCREATE TABLE message_recipients (
    message_id INTEGER NOT NULL REFERENCES messages(id),
    agent_id INTEGER NOT NULL REFERENCES agents(id),
    kind TEXT NOT NULL DEFAULT 'to',
    read_ts INTEGER,
    ack_ts INTEGER,
    PRIMARY KEY(message_id, agent_id)
)�*CC�Atableproject_sibling_suggestionsproject_sibling_suggestions-CREATE TABLE project_sibling_suggestions (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_a_id INTEGER NOT NULL REFERENCES projects(id),
    project_b_id INTEGER NOT NULL REFERENCES projects(id),
    score REAL NOT NULL,
    status TEXT NOT NULL DEFAULT 'suggested',
    rationale TEXT NOT NULL DEFAULT '',
    created_ts INTEGER NOT NULL,
    evaluated_ts INTEGER NOT NULL,
    confirmed_ts INTEGER,
    dismissed_ts INTEGER,
    UNIQUE(project_a_id, project_b_id)
)�)7#�3indexidx_al_b_agent_statusagent_links,CREATE INDEX idx_al_b_agent_status ON agent_links(b_project_id, b_agent_id, status)�(7#�3indexidx_al_a_agent_statusagent_links+CREATE INDEX idx_al_a_agent_status ON agent_links(a_project_id, a_agent_id, status)h'9#�indexidx_agent_links_statusagent_links*CREATE INDEX idx_agent_links_status ON agent_links(status)t&?#�indexidx_agent_links_b_projectagent_links)CREATE INDEX idx_agent_links_b_project ON agent_links(b_project_id)t%?#�indexidx_agent_links_a_projectagent_links(CREATE INDEX idx_agent_links_a_project ON agent_links(a_project_id)5$I#indexsqlite_autoindex_agent_links_1agent_links'�7###�5tableagent_linksagent_links&CREATE TABLE agent_links (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    a_project_id INTEGER NOT NULL REFERENCES projects(id),
    a_agent_id INTEGER NOT NULL REFERENCES agents(id),
    b_project_id INTEGER NOT NULL REFERENCES projects(id),
    b_agent_id INTEGER NOT NULL REFERENCES agents(id),
    status TEXT NOT NULL DEFAULT 'pending',
    reason TEXT NOT NULL DEFAULT '',
    created_ts INTEGER NOT NULL,
    updated_ts INTEGER NOT NULL,
    expires_ts INTEGER,
    UNIQUE(a_project_id, a_agent_id, b_project_id, b_agent_id)
)�"M/�)indexidx_file_reservations_expires_tsfile_reservations%CREATE INDEX idx_file_reservations_expires_ts ON file_reservations(expires_ts)�;!e/�oindexidx_file_reservations_project_agent_releasedfile_reservations$CREATE INDEX idx_file_reservations_project_agent_released ON file_reservations(project_id, agent_id, released_ts)�A i/�windexidx_file_reservations_project_released_expiresfile_reservations#CREATE INDEX idx_file_reservations_project_released_expires ON file_reservations(project_id, released_ts, expires_ts)�2//�tablefile_reservationsfile_reservations"CREATE TABLE file_reservations (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    project_id INTEGER NOT NULL REFERENCES projects(id),
    agent_id INTEGER NOT NULL REFERENCES agents(id),
    path_pattern TEXT NOT NULL,
    exclusive INTEGER NOT NULL DEFAULT 1,
    reason TEXT NOT NULL DEFAULT '',
    created_ts INTEGER NOT NULL,
    expires_ts INTEGER NOT NULL,
    released_ts INTEGER
)t-1�indexidx_mr_agent_ackmessage_recipients!CREATE INDEX idx_mr_agent_ack ON message_recipients(agent_id, ack_ts)� U1�Gindexidx_message_recipients_agent_messagemessage_recipients CREATE INDEX idx_message_recipients_agent_message ON message_recipients(agent_id, message_id)�E1�indexidx_message_recipients_agentmessage_recipientsCREATE INDEX idx_message_recipients_agent ON message_recipients(agent_id)CW1indexsqlite_autoindex_message_recipients_1message_recipients
��		
��			
��		













BA@D?M>=<12;:3A


��




1��W
&����___��������a�3sH//�tablefts_projects_datafts_projects_data?CREATE TABLE 'fts_projects_data'(id INTEGER PRIMARY KEY, block BLOB)�6G%%�1tablefts_projectsfts_projectsCREATE VIRTUAL TABLE fts_projects USING fts5(project_id UNINDEXED, slug, human_key, tokenize='porter unicode61 remove_diacritics 2', prefix='2,3')oF//�
tablefts_agents_configfts_agents_config>CREATE TABLE 'fts_agents_config'(k PRIMARY KEY, v) WITHOUT ROWIDsE11�tablefts_agents_docsizefts_agents_docsize=CREATE TABLE 'fts_agents_docsize'(id INTEGER P�3#�wtriggermessages_admessagesCREATE TRIGGER messages_ad AFTER DELETE ON messages BEGIN
    DELETE FROM fts_messages WHERE message_id = OLD.id;
END�C))�=tablefts_agents_idxfts_agents_idx;CREATE TABLE 'fts_agents_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID1a++�tablefts_agents_datafts_agents_data:CREATE TABLE 'fts_agents_data'(id INTEGER PRIMARY KEY, block BLOB)1�!!�+tablefts_agentsfts_agentsCREATE VIRTUAL TABLE fts_agents USING fts5(agent_id UNINDEXED, project_id UNINDEXED, name, task_description, program UNINDEXED, model UNINDEXED, tokenize='porter unicode61 remove_diacritics 2', prefix='2,3')�'@31�utriggertrg_inbox_stats_ackmessage_recipientsCREATE TRIGGER trg_inbox_stats_ack AFTER UPDATE OF ack_ts ON message_recipients WHEN OLD.ack_ts IS NULL AND NEW.ack_ts IS NOT NULL BEGIN UPDATE inbox_stats SET ack_pending_count = MAX(0, ack_pending_count - 1) WHERE agent_id = NEW.agent_id; END�,??1�striggertrg_inbox_stats_mark_readmessage_recipientsCREATE TRIGGER trg_inbox_stats_mark_read AFTER UPDATE OF read_ts ON message_recipients WHEN OLD.read_ts IS NULL AND NEW.read_ts IS NOT NULL BEGIN UPDATE inbox_stats SET unread_count = MAX(0, unread_count - 1) WHERE agent_id = NEW.agent_id; END�>91�Striggertrg_inbox_stats_insertmessage_recipientsCREATE TRIGGER trg_inbox_stats_insert AFTER INSERT ON message_recipients BEGIN INSERT INTO inbox_stats (agent_id, total_count, unread_count, ack_pending_count, last_message_ts) VALUES ( NEW.agent_id, 1, 1, (SELECT CASE WHEN m.ack_required = 1 THEN 1 ELSE 0 END FROM messages m WHERE m.id = NEW.message_id), (SELECT m.created_ts FROM messages m WHERE m.id = NEW.message_id) ) ON CONFLICT(agent_id) DO UPDATE SET total_count = total_count + 1, unread_count = unread_count + 1, ack_pending_count = ack_pending_count + (SELECT CASE WHEN m.ack_required = 1 THEN 1 ELSE 0 END FROM messages m WHERE m.id = NEW.message_id), last_message_ts = MAX(COALESCE(last_message_ts, 0), (SELECT m.created_ts FROM messages m WHERE m.id = NEW.message_id)); END�=##�Wtableinbox_statsinbox_stats9CREATE TABLE inbox_stats (agent_id INTEGER PRIMARY KEY REFERENCES agents(id), total_count INTEGER NOT NULL DEFAULT 0, unread_count INTEGER NOT NULL DEFAULT 0, ack_pending_count INTEGER NOT NULL DEFAULT 0, last_message_ts INTEGER)&33�tablefts_messages_configfts_messages_config/CREATE TABLE 'fts_messages_config'(k PRIMARY KEY, v) WITHOUT ROWIDy;55�tablefts_messages_docsizefts_messages_docsize3CREATE TABLE 'fts_messages_docsize'(id INTEGER PRIMARY KEY, sz BLOB)|:55�tablefts_messages_contentfts_messages_content2CREATyK55�tablefts_projects_docsizefts_projects_docsizeBCREATE TABLE 'fts_projects_docsize'(id INTEGER PRIMARY KEY, sz BLOB)|J55�tablefts_projects_contentfts_projects_contentACREATE TABLE 'fts_projects_content'(id INTEGER PRIMARY KEY, c0, c1, c2)�--�Atablefts_projects_idxfts_projects_idx@CREATE TABLE 'fts_projects_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWIDu//�tablefts_projects_datafts_projects_data?CREATE TABLE 'fts_projects_data'(id INTEGER PRIMARY KEY, block BLOB)Z6%%ytablesqlite_stat4sqlite_stat48CREATE TABLE sqlite_stat4(tbl,idx,neq,nlt,ndlt,sample)K5%%[tablesqlite_stat1sqlite_stat17CREATE TABLE sqlite_stat1(tbl,idx,stat)#�Etriggermessages_aumessagesCREATE TRIGGER messages_au AFTER UPDATE ON messages BEGIN
    DELETE FROM fts_messages WHERE message_id = OLD.id;
    INSERT INTO fts_messages(message_id, subject, body)
    VALUES (NEW.id, NEW.subject, NEW.body_md);
END
.���-��f
�
�
V��7��:
�
�
%	�	o	&� �|#�w&�x)��Z��+�W�m��a.3�v4_idx_mr_agent_ackcomposite index on message_recipients(agent_id, ack_ts) for ack viewsi��H�-e�+v3_fix_product_project_links_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in product_project_linksi��Hj,K�v3_fix_products_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in productsi��H|+]�#v3_fix_file_reservations_text_timestampsconvert legacy TEXT timestamps to INTEGER microseconds in file_reservationsi��Hj*K�v3_fix_messages_text_timestampsconvert legacy TEXT created_ts to INTEGER microseconds in messagesi��Hf)G�
v3_fix_agents_text_timestampsconvert legacy TEXT timestamps to INTEGER microseconds in agentsi��Hj(K�v3_fix_projects_text_timestampsconvert legacy TEXT created_at to INTEGER microseconds in projectsi��H?'GAv1_create_trigger_messages_aucreate trigger messages_aui��H?&GAv1_create_trigger_messages_adcreate trigger messages_adi��H?%GAv1_create_trigger_messages_aicreate trigger messages_aii��HC$GIv2_drop_legacy_fts_trigger_audrop legacy fts update triggeri��HC#GIv2_drop_legacy_fts_trigger_addrop legacy fts delete triggeri��HC"GIv2_drop_legacy_fts_trigger_aidrop legacy fts insert triggeri��HM!UOv1_create_virtual_table_fts_messagescreate virtual table fts_messagesi��H[ c]v1_create_table_project_sibling_suggestionscreate table project_sibling_suggestionsi��HOWQv1_create_index_idx_al_b_agent_statuscreate index idx_al_b_agent_statusi��GOWQv1_create_index_idx_al_a_agent_statuscreate index idx_al_a_agent_statusi��GQYSv1_create_index_idx_agent_links_statuscreate index idx_agent_links_statusi��GW_Yv1_create_index_idx_agent_links_b_projectcreate index idx_agent_links_b_projecti��GW_Yv1_create_index_idx_agent_links_a_projectcreate index idx_agent_links_a_projecti��G;C=v1_create_table_agent_linkscreate table agent_linksi��Gemgv1_create_index_idx_file_reservations_expires_tscreate index idx_file_reservations_expires_tsi��G~�v1_create_index_idx_file_reservations_project_agent_releasedcreate index idx_file_reservations_project_agent_releasedi��G��	�v1_create_index_idx_file_reservations_project_released_expirescreate index idx_file_reservations_project_released_expiresi��GGOIv1_create_table_file_reservationscreate table file_reservationsi��GEMGv1_create_index_idx_mr_agent_ackcreate index idx_mr_agent_acki��Gmuov1_create_index_idx_message_recipients_agent_messagecreate index idx_message_recipients_agent_messagei��G]e_v1_create_index_idx_message_recipients_agentcreate index idx_message_recipients_agenti��GIQKv1_create_table_message_recipientscreate table message_recipientsi��Giqkv1_create_index_idx_msg_project_importance_createdcreate index idx_msg_project_importance_createdi��GQYSv1_create_index_idx_msg_thread_createdcreate index idx_msg_thread_createdi��GS[Uv1_create_index_idx_messages_created_tscreate index idx_messages_created_tsi��GS[Uv1_create_index_idx_messages_importancecreate index idx_messages_importancei��GQ
YSv1_create_index_idx_messages_thread_idcreate index idx_messages_thread_idi��Gksmv1_create_index_idx_messages_project_sender_createdcreate index idx_messages_project_sender_createdi��G]e_v1_create_index_idx_messages_project_createdcreate index idx_messages_project_createdi��G5
=7v1_create_table_messagescreate table messagesi��GS	[Uv1_create_index_idx_agents_project_namecreate index idx_agents_project_namei��G193v1_create_table_agentscreate table agentsi��GOWQv1_create_table_product_project_linkscreate table product_project_linksi��GGOIv1_create_index_idx_products_namecreate index idx_products_namei��GEMGv1_create_index_idx_products_uidcreate index idx_products_uidi��G5=7v1_create_table_productscreate table productsi��GQYSv1_create_index_idx_projects_human_keycreate index idx_projects_human_keyi��GGOIv1_create_index_idx_projects_slugcreate index idx_projects_slugi��G5=7v1_create_table_projectscreate table projectsi��G
-���!
�
l
�G��)
�
�
5	�	�	;��/��M��>�w�)��T��F�w0��g[K�v12_drop_trg_inbox_stats_insertdrop inbox_stats insert trigger before compatibility recreationi�SYCZCMv11_drop_fts_projects_tabledrop FTS5 projects virtual tablei��IEYEOv11_drop_trigger_projects_audrop FTS5 projects update triggeri��IEXEOv11_drop_trigger_projects_addrop FTS5 projects delete triggeri��IEWEOv11_drop_trigger_projects_aidrop FTS5 projects insert triggeri��I?V?Iv11_drop_fts_agents_tabledrop FTS5 agents virtual tablei��IAUAKv11_drop_trigger_agents_audrop FTS5 agents update triggeri��IATAKv11_drop_trigger_agents_addrop FTS5 agents delete triggeri��IASAKv11_drop_trigger_agents_aidrop FTS5 agents insert triggeri��ICRCMv11_drop_fts_messages_tabledrop FTS5 messages virtual tablei��IEQEOv11_drop_trigger_messages_audrop FTS5 messages update triggeri��IEPEOv11_drop_trigger_messages_addrop FTS5 messages delete triggeri��IEOEOv11_drop_trigger_messages_aidrop FTS5 messages insert triggeri��IjNS�	v10b_idx_agents_project_name_nocasecreate unique index on agents(project_id, name COLLATE NOCASE)i��HiMQ�	v10a_dedup_agents_case_insensitivededuplicate case-duplicate agents before creating unique indexi��HuLa�v9_idx_tool_metrics_snapshots_collected_tsindex tool_metrics_snapshots by collected_ts for retention pruningi��HkKW�v9_idx_tool_metrics_snapshots_tool_tsindex tool_metrics_snapshots by tool_name + collected_ts desci��HXJMmv9_create_tool_metrics_snapshotscreate persisted per-tool metrics snapshot tablei��H\IE}v8_idx_search_recipes_pinnedindex search_recipes by pinned + name for sorted listingi��H^H;�	v8_idx_query_history_tsindex query_history by execution time for recent-first listingi��HOG;mv8_create_query_historycreate query_history table for recent search logi��H\F=�v8_create_search_recipescreate search_recipes table for saved search configurationsi��HCE=Sv7_backfill_fts_projectsbackfill fts_projects from projectsi��H=D9Kv7_backfill_fts_agentsbackfill fts_agents from agentsi��HdCA�v7_trg_fts_projects_updatetrigger to update fts_projects when indexed project fields changei��HRBAmv7_trg_fts_projects_deletetrigger to delete fts_projects on project deletei��HPAAiv7_trg_fts_projects_inserttrigger to insert fts_projects on new projectsi��H^@=�v7_trg_fts_agents_updatetrigger to update fts_agents when indexed agent fields changei��HL?=ev7_trg_fts_agents_deletetrigger to delete fts_agents on agent deletei��HJ>=av7_trg_fts_agents_inserttrigger to insert fts_agents on new agentsi��HM=9kv7_create_fts_projectscreate fts_projects for project identity searchi��HG<5cv7_create_fts_agentscreate fts_agents for agent identity searchi��HZ;;�v6_backfill_inbox_statsbackfill inbox_stats from existing message_recipients datai��H_:9�
v6_trg_inbox_stats_acktrigger to decrement ack_pending_count when message acknowledgedi��H_9E�v6_trg_inbox_stats_mark_readtrigger to decrement unread_count when message marked readi��HZ8?v6_trg_inbox_stats_inserttrigger to increment inbox_stats on new message recipienti��HZ77�v6_create_inbox_statscreate inbox_stats table for materialized aggregate countersi��H_69�
v5_rebuild_fts_contentrebuild FTS5 content from messages table after tokenizer upgradei��Hf5?�v5_create_fts_with_portercreate FTS5 table with porter stemmer, unicode61, and prefix indexesi��HR4O_v5_drop_fts_for_tokenizer_rebuilddrop old FTS5 table for tokenizer rebuildi��H_3=�	v4_analyze_after_indexesrun ANALYZE to update query planner statistics for new indexesi��H}2=�Ev4_idx_al_b_agent_statuscomposite index on agent_links(b_project_id, b_agent_id, status) for reverse contact queriesi��Hu1=�5v4_idx_al_a_agent_statuscomposite index on agent_links(a_project_id, a_agent_id, status) for contact queriesi��H~0W�-v4_idx_msg_project_importance_createdcomposite index on messages(project_id, importance, created_ts) for urgent viewsi��Hg/?�v4_idx_msg_thread_createdcomposite index on messages(thread_id, created_ts) for thread queriesi��H
�jjjjM?emcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_150 1G3fts_messages_configfts_messages_config1 1fts_messages_data2
�`@�:
�
7�	�
�
h	�	P�V�^�O�E�I�``p?e:mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 147 4747 473v4_idx_mr_agent_ack.u?eDmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 146 4646 46=v4_idx_al_b_agent_status2|?eRmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 144 4444 44Kv3_fix_projects_text_timestamps(|?eRmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 143 4343 43Kv3_fix_products_text_timestamps,�	?elmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 142 4242 42ev3_fix_product_project_links_text_timestamps-|?eRmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 141 4141 41Kv3_fix_messages_text_timestamps*�?e\mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 135 3535 35Uv1_create_virtual_table_fts_messages!�?ejmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 130 3030 30cv1_create_table_project_sibling_suggestions u?eDmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 129 2929 29=v1_create_table_products?eXmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 126 2626 26Qv1_create_table_message_recipientsx?eJmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 123 2323 23Cv1_create_table_agent_links~?eVmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 122 2222 22Ov1_create_index_idx_projects_slug�
?exmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 117 1717 17qv1_create_index_idx_msg_project_importance_created�?e`mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 115 1515 15Yv1_create_index_idx_messages_thread_id
�?ezmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 114 1414 14sv1_create_index_idx_messages_project_sender_created�
?ebmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 112 1212 12[v1_create_index_idx_messages_importance�	?ebmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 111 1111 11[v1_create_index_idx_messages_created_ts�?e|mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 110 1010 10uv1_create_index_idx_message_recipients_agent_message�?e�mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 17 77 7�v1_create_index_idx_file_reservations_project_agent_released~?e^mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 15 55 5Wv1_create_index_idx_al_b_agent_status�?ebmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 13 33 3[v1_create_index_idx_agents_project_name	?e`mcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 12 22 2Yv1_create_index_idx_agent_links_status�?efmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 11 11 1_v1_create_index_idx_agent_links_b_project�?efmcp_agent_mail_migrationssqlite_autoindex_mcp_agent_mail_migrations_11 10 00 0_v1_create_index_idx_agent_links_a_project;3fts_messages_configfts_messages_config100version
��
			���

�version


�version
��





�
o?�I�	��W�oz���
���&Y[9�Eindexidx_tool_metrics_snapshots_collect�}d#�Etriggermessages_aumessagesCREATE TRIGGER messages_au AFTER UPDATE ON messages BEGIN
    DELETE FROM fts_messages WHERE message_id = OLD.id;
    INSERT INTO fts_messages(message_id, subject, body)
    VALUES (NEW.id, NEW.subject, NEW.body_md);
END�a#�wtriggermessages_admessagesCREATE TRIGGER messages_ad AFTER DELETE ON messages BEGIN
    DELETE FROM fts_messages WHERE message_id = OLD.id;
END��#�Utriggermessages_aimessagesCREATE TRIGGER messages_ai AFTER INSERT ON messages BEGIN
    INSERT INTO fts_messages(message_id, subject, body)
    VALUES (NEW.id, NEW.subject, NEW.body_md);
ENDua33�tablefts_messages_configfts_messages_config;CREATE TABLE 'fts_messages_config'(k PRIMARY KEY, v) WI�M\91�;triggertrg_inbox_stats_insertmessage_recipientsCREATE TRIGGER IF NOT EXISTS trg_inbox_stats_insert AFTER INSERT ON message_recipients BEGIN INSERT OR IGNORE INTO inbox_stats (agent_id, total_count, unread_count, ack_pending_count, last_message_ts) VALUES (NEW.agent_id, 0, 0, 0, (SELECT m.created_ts FROM messages AS m WHERE m.id = NEW.message_id)); UPDATE inbox_stats SET total_count = total_count + 1, unread_count = unread_count + 1, ack_pending_count = ack_pending_count + COALESCE((SELECT m.ack_required FROM messages AS m WHERE m.id = NEW.message_id), 0), last_message_ts = COALESCE((SELECT m.created_ts FROM messages AS m WHERE m.id = NEW.message_id), last_message_ts) WHERE agent_id = NEW.agent_id; END�IS))�Mtablesearch_recipessearch_recipesECREATE TABLE search_recipes ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, description TEXT NOT NULL DEFAULT '', query_text TEXT NOT NULL DEFAULT '', doc_kind TEXT NOT NULL DEFAULT 'messages', scope_mode TEXT NOT NULL DEFAULT 'global', scope_id INTEGER, importance_filter TEXT NOT NULL DEFAULT '', ack_filter TEXT NOT NULL DEFAULT 'any', sort_mode TEXT NOT NULL DEFAULT 'newest', thread_filter TEXT, created_ts INTEGER NOT NULL, updated_ts INTEGER NOT NULL, pinned INTEGER NOT NULL DEFAULT 0, use_count INTEGER NOT NULL DEFAULT 0 )V#�itriggerprojects_auprojectsCREATE TRIGGER projects_au AFTER UPDATE OFa�,XQ9�[indexidx_tool_metrics_snapshots_tool_tstool_metrics_snapshotsJCREATE INDEX idx_tool_metrics_snapshots_tool_ts ON tool_metrics_snapshots(tool_name, collected_ts DESC)�&W99�gtabletool_metrics_snapshotstool_metrics_snapshotsICREATE TABLE tool_metrics_snapshots (id INTEGER PRIMARY KEY AUTOINCREMENT, collected_ts INTEGER NOT NULL, tool_name TEXT NOT NULL, calls INTEGER NOT NULL DEFAULT 0, errors INTEGER NOT NULL DEFAULT 0, cluster TEXT NOT NULL DEFAULT '', capabilities_json TEXT NOT NULL DEFAULT '[]', complexity TEXT NOT NULL DEFAULT 'unknown', latency_avg_ms REAL, latency_min_ms REAL, latency_max_ms REAL, latency_p50_ms REAL, latency_p95_ms REAL, latency_p99_ms REAL, latency_is_slow INTEGER NOT NULL DEFAULT 0)�
VI)�5indexidx_search_recipes_pinned_namesearch_recipesHCREATE INDEX idx_search_recipes_pinned_name ON search_recipes(pinned DESC, name ASC)�UG'�'indexidx_query_history_executed_tsquery_historyGCREATE INDEX idx_query_history_executed_ts ON query_history(executed_ts DESC)�3T''�%tablequery_historyquery_historyFCREATE TABLE query_history ( id INTEGER PRIMARY KEY AUTOINCREMENT, query_text TEXT NOT NULL, doc_kind TEXT NOT NULL DEFAULT 'messages', scope_mode TEXT NOT NULL DEFAULT 'global', scope_id INTEGER, result_count INTEGER NOT NULL DEFAULT 0, executed_ts INTEGER NOT NULL )33�tablefts_pr�)[C#�yindexidx_agent_links_pair_uniqueagent_links/CREATE UNIQUE INDEX idx_agent_links_pair_unique
    ON agent_links(a_project_id, a_agent_id, b_project_id, b_agent_id)�ZI�Gindexidx_agents_project_name_nocaseagentsLCREATE UNIQUE INDEX idx_agents_project_name_nocase ON agents(project_id, name COLLATE NOCASE)�&Y[9�Eindexidx_tool_metrics_snapshots_collected_tstool_metrics_snapshotsKCREATE INDEX idx_tool_metrics_snapshots_collected_ts ON tool_metrics_snapshots(collected_ts)
�version







���	#RusticBirch	)	LavenderSummit
	��C
��
�
2	��ZI�Gindexidx_agents_project_name_nocaseagentsLCREATE UNIQUE INDEX idx_agents_project_name_nocase ON agents(project_id, name COLLATE NOCASE)�&Y[9�Eindexidx_tool_metrics_snapshots_collected_tstool_metrics_snapshotsKCREATE INDEX idx_tool_metrics_snapshots_collected_ts ON tool_metrics_snapshots(collected_ts)�,XQ9�[indexidx_tool_metrics_snapshots_tool_tstool_metrics_snapshotsJCREATE INDEX idx_tool_metrics_snapshots_tool_ts ON tool_metrics_snapshots(tool_name, collected_ts DESC)�&W99�gtabletool_metrics_snapshotstool_metrics_snapshotsICREATE TABLE tool_metrics_snapshots (id INTEGER PRIMARY KEY AUTOINCREMENT, collected_ts INTEGER NOT NULL, tool_name TEXT NOT NULL, calls INTEGER NOT NULL DEFAULT 0, errors INTEGER NOT NULL DEFAULT 0, cluster TEXT NOT NULL DEFAULT '', capabilities_json TEXT NOT NULL DEFAULT '[]', complexity TEXT NOT NULL DEFAULT 'unknown', latency_avg_ms REAL, latency_min_ms REAL, latency_max_ms REAL, latency_p50_ms REAL, latency_p95_ms REAL, latency_p99_ms REAL, latency_is_slow INTEGER NOT NULL DEFAULT 0)�
VI)�5indexidx_search_recipes_pinned_namesearch_recipesHCREATE INDEX idx_search_recipes_pinned_name ON search_recipes(pinned DESC, name ASC)�UG'�'indexidx_query_history_executed_tsquery_historyGCREATE INDEX idx_query_history_executed_ts ON query_history(executed_ts DESC)�3T''�%tablequery_historyquery_historyFCREATE TABLE query_history ( id INTEGER PRIMARY KEY AUTOINCREMENT, query_text TEXT NOT NULL, doc_kind TEXT NOT NULL DEFAULT 'messages', scope_mode TEXT NOT NULL DEFAULT 'global', scope_id INTEGER, result_count INTEGER NOT NULL DEFAULT 0, executed_ts INTEGER NOT NULL )