1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
SQLite format 3 @ . E .v� � -��
\
'
�
* q $�Y��l�, � l5-�indexidx_diagnostics_toolcode_diagnosticsCREATE INDEX idx_diagnostics_tool ON code_diagnostics(tool)q5-�
indexidx_diagnostics_filecode_diagnosticsCREATE INDEX idx_diagnostics_file ON code_diagnostics(file_path)�o--�tablecode_diagnosticscode_diagnosticsCREATE TABLE code_diagnostics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL,
line_start INTEGER NOT NULL,
severity TEXT NOT NULL, -- e.g. "warning", "error", "note"
diagnostic_type TEXT NOT NULL, -- e.g. "clippy::dead_code"
message TEXT NOT NULL, -- human-readable summary
tool TEXT NOT NULL, -- e.g. "clippy"
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
)�J�stabletaskstasksCREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
goal TEXT NOT NULL,
description TEXT DEFAULT '',
status TEXT NOT NULL DEFAULT 'open', -- open|running|blocked|done|cancelled
priority INTEGER NOT NULL DEFAULT 3, -- 1=highest..5=lowest
parent_id INTEGER REFERENCES tasks(id) ON DELETE CASCADE,
created_at INTEGER NOT NULL, -- epoch seconds
updated_at INTEGER NOT NULL
, task_id TEXT, prd_title TEXT, complexity TEXT, estimated_hours REAL, acceptance_criteria TEXT, files_to_modify TEXT)y=!�!indexidx_tool_calls_tool_timetool_callsCREATE INDEX idx_tool_calls_tool_time ON tool_calls(tool_name, created_at)�S!!�qtabletool_callstool_callsCREATE TABLE tool_calls (
id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id TEXT, -- optional idempotency
tool_name TEXT NOT NULL,
args_json TEXT NOT NULL,
result_json TEXT,
status TEXT NOT NULL, -- ok|error
created_at INTEGER NOT NULL
)`
3!{indexidx_embeddings_taskembeddingsCREATE INDEX idx_embeddings_task ON embeddings(task_id)�!!�ktableembeddingsembeddings
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY, -- equals steps.id or synthetic
task_id INTEGER,
kind TEXT NOT NULL, -- step|note|doc
dim INTEGER NOT NULL,
created_at INTEGER NOT NULL
)K%gindexidx_memory_kmemoryCREATE UNIQUE INDEX idx_memory_k ON memory(k)�6
�GtablememorymemoryCREATE TABLE memory (
id INTEGER PRIMARY KEY AUTOINCREMENT,
k TEXT NOT NULL,
v TEXT NOT NULL,
ts INTEGER NOT NULL
){ ?�-indexidx_steps_task_state_timesteps
CREATE INDEX idx_steps_task_state_time ON steps(task_id, state, created_at DESC)�Y�tablestepssteps CREATE TABLE steps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL,
state TEXT NOT NULL, -- Think|Decide|Act|Observe|Reflect
content TEXT NOT NULL,
meta_json TEXT NOT NULL DEFAULT '{}',
created_at INTEGER NOT NULL
)�!!!�
tabletask_linkstask_linksCREATE TABLE task_links (
src_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
dst_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
kind TEXT NOT NULL, -- depends_on|relates_to
PRIMARY KEY (src_id, dst_id, kind)
)3G! indexsqlite_autoindex_task_links_1task_linksR-oindexidx_tasks_parenttasksCREATE INDEX idx_tasks_parent ON tasks(parent_id)h7�indexidx_tasks_status_priotasksCREATE INDEX idx_tasks_status_prio ON tasks(status, priority, id)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)X3uindexidx_tasks_prd_titletasksCREATE INDEX idx_tasks_prd_title ON tasks(prd_title)R/mindexidx_tasks_task_idtasksCREATE INDEX idx_tasks_task_id ON tasks(task_id)�c;;�]table_syncore_schema_version_syncore_schema_versionCREATE TABLE _syncore_schema_version (
version INTEGER PRIMARY KEY,
applied_at INTEGER NOT NULL,
description TEXT NOT NULL *
�p �d
�
w �iiKJStandardize timestamp fields to INTEGER type: fix code_diagnostics and code_macro_expansions created_at fieldst �ciKJAdd temporal fields to code_entities: created_at, last_modified_at, change_count, author_count (idempotent)W �)iKJAllow NULL values for line_start and line_end in code_entities (File entities)m �UiKJAdd extended memory fields (namespace, summary, importance, created_at, last_accessed, access_count)K �iKJAdd code graph tables (code_entities, code_edges, code_embeddings)N �iKJAdd code_diagnostics table for static analysis results (Clippy, etc.)L �iKJAdd IntelliTask fields (task_id, complexity, estimated_hours, etc.)@ }iKJInitial core schema (tasks, memories, steps, embeddings)
� �� 5-code_diagnostics'code_entities
� �{�
�
d ��jW��$�v, � E �/--�tablecode_diagnosticscode_diagnosticsCREATE TABLE code_diagnostics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL,
line_start INTEGER NOT NULL,
severi�m!!�%tablecode_edgescode_edges CREATE TABLE code_edges (
src_entity_id INTEGER NOT NULL REFERENCES code_entities(id) ON DELETE CASCADE,
dst_entity_id INTEGER NOT NULL REFERENCES code_entities(id) ON DELETE CASCADE,
edge_type TEXT NOT NULL, -- calls|imports|inherits|references|uses|contains
PRIMARY KEY (src_entity_id, dst_entity_id, edge_type)
)X3uindexidx_tasks_prd_titletasksCREATE INDEX idx_tasks_prd_title ON tasks(prd_title)R/mindexidx_tasks_task_idtasksCREATE INDEX idx_tasks_task_id ON tasks(task_id)y=!�!indexidx_tool_calls_tool_timetool_callsCREATE INDEX idx_tool_calls_tool_time ON tool_calls(tool_name, created_at)�S!!�qtabletool_callstool_callsCREATE TABLE tool_calls (
id INTEGER PRIMARY KEY AUTOINCREMENT,
request_id TEXT, -- optional idempotency
tool_name TEXT NOT NULL,
args_json TEXT NOT NULL,
result_json TEXT,
status TEXT NOT NULL, -- ok|error
created_at INTEGER NOT NULL
)`
3!{indexidx_embeddings_taskembeddingsCREATE INDEX idx_embeddings_task ON embeddings(task_id)�!!�ktableembeddingsembeddings
CREATE TABLE embeddings (
id INTEGER PRIMARY KEY, -- equals steps.id or synthetic
task_id INTEGER,
kind TEXT NOT NULL, -- step|note|doc
dim INTEGER NOT NULL,
created_at INTEGER NOT NULL
)K%gindexidx_memory_kmemoryCREATE UNIQUE INDEX idx_memory_k ON memory(k)�Q
�}tablememorymemoryCREATE TABLE memory (
id INTEGER PRIMARY KEY AUTOINCREMENT,
k TEXT NOT NULL,
v TEXT NOT NULL,
ts INTEGER NOT NULL
, namespace TEXT NOT NULL DEFAULT 'default', summary TEXT, importance REAL NOT NULL DEFAULT 0.5, created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now')), last_accessed INTEGER NOT NULL DEFAULT (strftime('%s', 'now')), access_count INTEGER NOT NULL DEFAULT 0, embedding_id INTEGER){ ?�-indexidx_steps_task_state_timesteps
CREATE INDEX idx_steps_task_state_time ON steps(task_id, state, created_at DESC)�Y�tablestepssteps CREATE TABLE steps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id INTEGER REFERENCES tasks(id) ON DELETE SET NULL,
state TEXT NOT NULL, -- Think|Decide|Act|Observe|Reflect
content TEXT NOT NULL,
meta_json TEXT NOT NULL DEFAULT '{}',
created_at INTEGER NOT NULL
)3G! indexsqlite_autoindex_task_links_1task_links�!!!�
tabletask_linkstask_linksCREATE TABLE task_links (
src_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
dst_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
kind TEXT NOT NULL, -- depends_on|relates_to
PRIMARY KEY (src_id, dst_id, kind)
)R-oindexidx_tasks_parenttasksCREATE INDEX idx_tasks_parent ON tasks(parent_id)h7�indexidx_tasks_status_priotasksCREATE INDEX idx_tasks_status_prio ON tasks(status, priority, id)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)�J�stabletaskstasksCREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
goal TEXT NOT NULL,
description TEXT DEFAULT '',
status TEXT NOT NULL DEFAULT 'open', -- open|running|blocked|done|cancelled
priority INTEGER NOT NULL DEFAULT 3, -- 1=highest..5=lowest
parent_id INTEGER REFERENCES tasks(id) ON DELETE CASCADE,
created_at INTEGER NOT NULL, -- epoch seconds
updated_at INTEGER NOT NULL
, task_id TEXT, prd_title TEXT, complexity TEXT, estimated_hours REAL, acceptance_criteria TEXT, files_to_modify TEXT)�c;;�]table_syncore_schema_version_syncore_schema_versionCREATE TABLE _syncore_schema_version (
version INTEGER PRIMARY KEY,
applied_at INTEGER NOT NULL,
description TEXT NOT NULL
)
l �6�l�o�
�
T �Q��f�[ � �� 4 {3?-�indexidx_file_index_state_pathfile_index_state+CREATE INDEX idx_file_index_state_path ON file_index_state(file_path)?2S- indexsqlite_autoindex_file_index_state_1file_index_state*�1--�Otablefile_index_statefile_index_stateCREATE TABLE file_index_state (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL UNIQUE,
sha256 TEXT NOT NULL,
mtime INTEGER NOT NULL,
last_indexed_at INTEGER NOT NULL,
status TEXT NOT NULL DEFAULT 'ok'
)x0=-�indexidx_diagnostics_severitycode_diagnosticsCREATE INDEX idx_diagnostics_severity ON code_diagnostics(severity)w/5-�indexidx_diagnostics_typecode_diagnosticsCREATE INDEX idx_diagnostics_type ON code_diagnostics(diagnostic_type)l.5-�indexidx_diagnostics_toolcode_diagnosticsCREATE INDEX idx_diagnostics_tool ON code_diagnostics(tool)q-5-�
indexidx_diagnostics_f�m!!�%tablecode_edgescode_edges CREATE TABLE code_edges (
src_entity_id INTEGER NOT NULL REFERENCES code_entities(id) ON DELETE CASCADE,
dst_entity_id INTEGER NOT NULL REFERENCES code_entities(id) ON DELETE CASCADE,
edge_type TEXT NOT NULL, -- calls|imports|inherits|references|uses|contains
PRIMARY KEY (src_entity_id, dst_entity_id, edge_type)
)X3uindexidx_tasks_prd_titletasksCREATE INDEX idx_tasks_prd_title ON tasks(prd_title)R/mindexidx_tasks_task_idtasksCREATE INDEX idx_tasks_task_id ON tasks(task_id)y=!�!indexidx_tool_calls_tool_timetool_callsCREATE INDEX idx_tool_calls_tool_time ON tool_calls(tool_name, created_at)|*E'�indexidx_code_entities_created_atcode_entitiesCREATE INDEX idx_code_entities_created_at ON code_entities(created_at)c)/'indexidx_entities_langcode_entitiesCREATE INDEX idx_entities_lang ON code_entities(language)g(/'�indexidx_entities_typecode_entitiesCREATE INDEX idx_entities_type ON code_entities(entity_type)e'/'�indexidx_entities_filecode_entitiesCREATE INDEX idx_entities_file ON code_entities(file_path)_&/'windexidx_entities_namecode_entitiesCREATE INDEX idx_entities_name ON code_entities(name)9%M' indexsqlite_autoindex_code_entities_1code_entities(�0$''�tablecode_entitiescode_entities'CREATE TABLE "code_entities" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL,
entity_type TEXT NOT NULL, -- function|class|method|import|struct|enum|trait|file
name TEXT NOT NULL,
signature TEXT, -- Full signature/declaration
line_start INTEGER, -- Allow NULL for File entities
line_end INTEGER, -- Allow NULL for File entities
docstring TEXT, -- Documentation/comments
language TEXT NOT NULL, -- rust|javascript|python|json|toml|bash
indexed_at INTEGER NOT NULL, -- Epoch seconds
body_snippet TEXT, created_at INTEGER NOT NULL DEFAULT 0, last_modified_at INTEGER NOT NULL DEFAULT 0, change_count INTEGER NOT NULL DEFAULT 0, author_count INTEGER NOT NULL DEFAULT 0, -- APEX v1.7: First N lines of function body for semantic search
UNIQUE(file_path, entity_type, name, line_start)
){#A+�indexidx_code_embeddings_vectorcode_embeddings&CREATE INDEX idx_code_embeddings_vector ON code_embeddings(vector_id)�2"++�tablecode_embeddingscode_embeddings%CREATE TABLE code_embeddings (
entity_id INTEGER PRIMARY KEY REFERENCES code_entities(id) ON DELETE CASCADE,
vector_id INTEGER NOT NULL, -- References embeddings table
model_version TEXT NOT NULL, -- all-MiniLM-L6-v2
created_at INTEGER NOT NULL
)X!)!uindexidx_edges_typecode_edges$CREATE INDEX idx_edges_type ON code_edges(edge_type)Z '!{indexidx_edges_dstcode_edges#CREATE INDEX idx_edges_dst ON code_edges(dst_entity_id)Z'!{indexidx_edges_srccode_edges"CREATE INDEX idx_edges_src ON code_edges(src_entity_id)3G! indexsqlite_autoindex_code_edges_1code_edges!
* o
�
H�a�
V
��* �5?7�!indexidx_macro_expansions_filecode_macro_expansions.CREATE INDEX idx_macro_expansions_file ON code_macro_expansions(file_path)�c477�etablecode_macro_expansionscode_macro_expansions,CREATE TABLE code_macro_expansions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL,
macro_name TEXT NOT NULL,
span_start INTEGER NOT NULL,
span_end INTEGER NOT NULL,
original_code TEXT,
expanded_code TEXT,
expansion_type TEXT NOT NULL
){3?-�indexidx_file_index_state_pathfile_index_state+CREATE INDEX idx_file_index_state_path ON file_index_state(file_path)?2S- indexsqlite_autoindex_file_index_state_1file_index_state*�1--�Otablefile_index_statefile_index_stateCREATE TABLE file_index_state (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL UNIQUE,
sha256 TEXT NOT NULL,
mtime INTEGER NOT NULL,
last_indexed_at INTEGER NOT NULL,
status TEXT NOT NULL DEFAULT 'ok'
)x0=-�indexidx_diagnostics_severitycode_diagnosticsCREATE INDEX idx_diagnostics_severity ON code_diagnostics(severity)w/5-�indexidx_diagnostics_typecode_diagnosticsCREATE INDEX idx_diagnostics_type ON code_diagnostics(diagnostic_type)l.5-�indexidx_diagnostics_toolcode_diagnosticsCREATE INDEX idx_diagnostics_tool ON code_diagnostics(tool)q-5-�
indexidx_diagnostics_filecode_diagnosticsCREATE INDEX idx_diagnostics_file ON code_diagnostics(file_path)�1,--�tablecode_diagnosticscode_diagnostics)CREATE TABLE "code_diagnostics" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL,
line_start INTEGER NOT NULL,
severity TEXT NOT NULL,
diagnostic_type TEXT NOT NULL,
message TEXT NOT NULL,
tool TEXT NOT NULL,
created_at INTEGER NOT NULL DEFAULT (strftime('%s','now'))
)�+Q'�1indexidx_code_entities_last_modified_atcode_entitiesCREATE INDEX idx_code_entities_last_modified_at ON code_entities(last_modified_at)