opencastle 0.10.3 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +30 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/init.test.js +44 -1
- package/dist/cli/init.test.js.map +1 -1
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +12 -4
- package/dist/cli/prompt.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/init.test.ts +53 -1
- package/src/cli/init.ts +30 -0
- package/src/cli/prompt.ts +12 -4
- package/src/dashboard/dist/index.html +2 -2
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/package-lock.json +6 -0
- package/src/dashboard/scripts/generate-seed-data.ts +10 -10
- package/src/dashboard/seed-data/delegations.ndjson +35 -35
- package/src/dashboard/seed-data/panels.ndjson +12 -12
- package/src/dashboard/seed-data/reviews.ndjson +6 -6
- package/src/dashboard/seed-data/sessions.ndjson +50 -50
- package/src/dashboard/src/pages/index.astro +2 -2
- package/src/orchestrator/agents/api-designer.agent.md +1 -0
- package/src/orchestrator/agents/architect.agent.md +2 -1
- package/src/orchestrator/agents/content-engineer.agent.md +1 -0
- package/src/orchestrator/agents/copywriter.agent.md +1 -0
- package/src/orchestrator/agents/data-expert.agent.md +1 -0
- package/src/orchestrator/agents/database-engineer.agent.md +1 -0
- package/src/orchestrator/agents/developer.agent.md +2 -1
- package/src/orchestrator/agents/devops-expert.agent.md +1 -0
- package/src/orchestrator/agents/documentation-writer.agent.md +1 -0
- package/src/orchestrator/agents/performance-expert.agent.md +1 -0
- package/src/orchestrator/agents/release-manager.agent.md +1 -0
- package/src/orchestrator/agents/researcher.agent.md +3 -2
- package/src/orchestrator/agents/reviewer.agent.md +1 -0
- package/src/orchestrator/agents/security-expert.agent.md +2 -1
- package/src/orchestrator/agents/seo-specialist.agent.md +1 -0
- package/src/orchestrator/agents/session-guard.agent.md +3 -2
- package/src/orchestrator/agents/team-lead.agent.md +15 -7
- package/src/orchestrator/agents/testing-expert.agent.md +1 -0
- package/src/orchestrator/agents/ui-ux-expert.agent.md +2 -1
- package/src/orchestrator/customizations/agents/agent-registry.md +9 -9
- package/src/orchestrator/customizations/logs/README.md +11 -11
- package/src/orchestrator/customizations/logs/disputes.ndjson +0 -0
- package/src/orchestrator/customizations/logs/reviews.ndjson +0 -0
- package/src/orchestrator/instructions/general.instructions.md +16 -6
- package/src/orchestrator/skills/agent-hooks/SKILL.md +2 -24
- package/src/orchestrator/skills/fast-review/SKILL.md +2 -1
- package/src/orchestrator/skills/orchestration-protocols/SKILL.md +34 -0
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +3 -3
- package/src/orchestrator/skills/self-improvement/SKILL.md +1 -30
- package/src/orchestrator/skills/session-checkpoints/SKILL.md +0 -86
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +17 -71
package/src/cli/prompt.ts
CHANGED
|
@@ -229,8 +229,11 @@ function selectInteractive(
|
|
|
229
229
|
const marker = active ? '✔' : ' ';
|
|
230
230
|
stdout.write(`${ERASE_LINE}\r ${marker} ${label}\n`);
|
|
231
231
|
}
|
|
232
|
-
// Clear leftover lines
|
|
233
|
-
|
|
232
|
+
// Clear leftover lines only when final render has fewer lines
|
|
233
|
+
const finalLines = end - start;
|
|
234
|
+
if (finalLines < lastRenderedLines) {
|
|
235
|
+
stdout.write(`${CSI}J`);
|
|
236
|
+
}
|
|
234
237
|
stdout.write('\n');
|
|
235
238
|
resolve(options[cursor].value);
|
|
236
239
|
return;
|
|
@@ -246,6 +249,7 @@ function selectInteractive(
|
|
|
246
249
|
|
|
247
250
|
function cleanup(): void {
|
|
248
251
|
stdin.removeListener('data', onData);
|
|
252
|
+
stdin.pause();
|
|
249
253
|
stdin.setRawMode(false);
|
|
250
254
|
stdout.write(SHOW_CURSOR);
|
|
251
255
|
// Resume readline for subsequent confirm() calls
|
|
@@ -434,8 +438,11 @@ function multiselectInteractive(
|
|
|
434
438
|
: `\x1B[2m${options[i].label}${hint}\x1B[0m`;
|
|
435
439
|
stdout.write(`${ERASE_LINE}\r [${checkbox}] ${label}\n`);
|
|
436
440
|
}
|
|
437
|
-
// Clear leftover lines
|
|
438
|
-
|
|
441
|
+
// Clear leftover lines only when final render has fewer lines
|
|
442
|
+
const finalLines = end - start;
|
|
443
|
+
if (finalLines < lastRenderedLines) {
|
|
444
|
+
stdout.write(`${CSI}J`);
|
|
445
|
+
}
|
|
439
446
|
stdout.write('\n');
|
|
440
447
|
resolve(Array.from(selected).sort().map(i => options[i].value));
|
|
441
448
|
return;
|
|
@@ -451,6 +458,7 @@ function multiselectInteractive(
|
|
|
451
458
|
|
|
452
459
|
function cleanup(): void {
|
|
453
460
|
stdin.removeListener('data', onData);
|
|
461
|
+
stdin.pause();
|
|
454
462
|
stdin.setRawMode(false);
|
|
455
463
|
stdout.write(SHOW_CURSOR);
|
|
456
464
|
if (_rl) _rl.resume();
|
|
@@ -913,7 +913,7 @@ Export
|
|
|
913
913
|
(s.retries != null ? s.retries : '\u2014') +
|
|
914
914
|
'</td>' +
|
|
915
915
|
'<td class="td-issue">' +
|
|
916
|
-
(s.
|
|
916
|
+
(s.tracker_issue ? escapeHtml(s.tracker_issue) : '\u2014') +
|
|
917
917
|
'</td>' +
|
|
918
918
|
'</tr>'
|
|
919
919
|
)
|
|
@@ -1049,7 +1049,7 @@ Export
|
|
|
1049
1049
|
'<td class="td-num">' + (r.confidence || '\u2014') + '</td>' +
|
|
1050
1050
|
'<td class="td-num">' + (r.attempt ?? 1) + '</td>' +
|
|
1051
1051
|
'<td class="td-num">' + (r.escalated ? '\u26A0' : '\u2014') + '</td>' +
|
|
1052
|
-
'<td class="td-issue">' + (r.
|
|
1052
|
+
'<td class="td-issue">' + (r.tracker_issue ? escapeHtml(r.tracker_issue) : '\u2014') + '</td>' +
|
|
1053
1053
|
'</tr>'
|
|
1054
1054
|
)
|
|
1055
1055
|
.join('') +
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
2
|
+
"hash": "96d8fe83",
|
|
3
3
|
"configHash": "30f8ea04",
|
|
4
|
-
"lockfileHash": "
|
|
5
|
-
"browserHash": "
|
|
4
|
+
"lockfileHash": "5ea9e438",
|
|
5
|
+
"browserHash": "6c2f45c8",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"astro > cssesc": {
|
|
8
8
|
"src": "../../../../../node_modules/cssesc/cssesc.js",
|
|
9
9
|
"file": "astro___cssesc.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "424459bd",
|
|
11
11
|
"needsInterop": true
|
|
12
12
|
},
|
|
13
13
|
"astro > aria-query": {
|
|
14
14
|
"src": "../../../../../node_modules/aria-query/lib/index.js",
|
|
15
15
|
"file": "astro___aria-query.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "8cd71dbe",
|
|
17
17
|
"needsInterop": true
|
|
18
18
|
},
|
|
19
19
|
"astro > axobject-query": {
|
|
20
20
|
"src": "../../../../../node_modules/axobject-query/lib/index.js",
|
|
21
21
|
"file": "astro___axobject-query.js",
|
|
22
|
-
"fileHash": "
|
|
22
|
+
"fileHash": "6e84e164",
|
|
23
23
|
"needsInterop": true
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -43,7 +43,7 @@ const TIERS: Array<{ name: string; weight: number }> = [
|
|
|
43
43
|
|
|
44
44
|
const _MECHANISMS = ['sub-agent', 'background'];
|
|
45
45
|
|
|
46
|
-
const
|
|
46
|
+
const TRACKER_ISSUES = Array.from({ length: 30 }, (_, i) => `TAS-${i + 30}`);
|
|
47
47
|
|
|
48
48
|
const FILE_PARTITIONS = [
|
|
49
49
|
['libs/ui-kit/'],
|
|
@@ -160,7 +160,7 @@ interface SessionRecord {
|
|
|
160
160
|
agent: string;
|
|
161
161
|
model: string;
|
|
162
162
|
task: string;
|
|
163
|
-
|
|
163
|
+
tracker_issue: string;
|
|
164
164
|
outcome: string;
|
|
165
165
|
duration_min: number;
|
|
166
166
|
files_changed: number;
|
|
@@ -172,7 +172,7 @@ interface SessionRecord {
|
|
|
172
172
|
function generateSessions(count: number): SessionRecord[] {
|
|
173
173
|
const records: SessionRecord[] = [];
|
|
174
174
|
for (let i = 0; i < count; i++) {
|
|
175
|
-
const issue = rng.pick(
|
|
175
|
+
const issue = rng.pick(TRACKER_ISSUES);
|
|
176
176
|
const outcomeRoll = rng.next();
|
|
177
177
|
const outcome = outcomeRoll < 0.7 ? 'success' : outcomeRoll < 0.9 ? 'partial' : 'failed';
|
|
178
178
|
const retries = outcome === 'failed' ? rng.int(1, 3) : outcome === 'partial' ? rng.int(0, 2) : rng.int(0, 1);
|
|
@@ -184,7 +184,7 @@ function generateSessions(count: number): SessionRecord[] {
|
|
|
184
184
|
agent: rng.pick(AGENTS),
|
|
185
185
|
model: rng.pick(MODELS),
|
|
186
186
|
task: `${issue}: ${rng.pick(TASK_DESCRIPTIONS)}`,
|
|
187
|
-
|
|
187
|
+
tracker_issue: issue,
|
|
188
188
|
outcome,
|
|
189
189
|
duration_min: rng.int(5, 45),
|
|
190
190
|
files_changed: rng.int(1, 15),
|
|
@@ -205,7 +205,7 @@ interface DelegationRecord {
|
|
|
205
205
|
model: string;
|
|
206
206
|
tier: string;
|
|
207
207
|
mechanism: string;
|
|
208
|
-
|
|
208
|
+
tracker_issue: string;
|
|
209
209
|
outcome: string;
|
|
210
210
|
retries: number;
|
|
211
211
|
phase: number;
|
|
@@ -215,7 +215,7 @@ interface DelegationRecord {
|
|
|
215
215
|
function generateDelegations(count: number): DelegationRecord[] {
|
|
216
216
|
const records: DelegationRecord[] = [];
|
|
217
217
|
for (let i = 0; i < count; i++) {
|
|
218
|
-
const issue = rng.pick(
|
|
218
|
+
const issue = rng.pick(TRACKER_ISSUES);
|
|
219
219
|
const outcomeRoll = rng.next();
|
|
220
220
|
const outcome = outcomeRoll < 0.75 ? 'success' : outcomeRoll < 0.9 ? 'partial' : 'failed';
|
|
221
221
|
|
|
@@ -226,7 +226,7 @@ function generateDelegations(count: number): DelegationRecord[] {
|
|
|
226
226
|
model: rng.pick(MODELS),
|
|
227
227
|
tier: rng.weighted(TIERS),
|
|
228
228
|
mechanism: rng.next() < 0.6 ? 'sub-agent' : 'background',
|
|
229
|
-
|
|
229
|
+
tracker_issue: issue,
|
|
230
230
|
outcome,
|
|
231
231
|
retries: outcome === 'failed' ? rng.int(1, 2) : rng.int(0, 1),
|
|
232
232
|
phase: rng.int(1, 4),
|
|
@@ -249,7 +249,7 @@ interface PanelRecord {
|
|
|
249
249
|
reviewer_model: string;
|
|
250
250
|
weighted: boolean;
|
|
251
251
|
attempt: number;
|
|
252
|
-
|
|
252
|
+
tracker_issue: string;
|
|
253
253
|
artifacts_count: number;
|
|
254
254
|
report_path: string;
|
|
255
255
|
}
|
|
@@ -261,7 +261,7 @@ function generatePanels(count: number): PanelRecord[] {
|
|
|
261
261
|
const isPass = rng.next() < 0.75;
|
|
262
262
|
const passCount = isPass ? rng.int(2, 3) : rng.int(0, 1);
|
|
263
263
|
const blockCount = 3 - passCount;
|
|
264
|
-
const issue = rng.pick(
|
|
264
|
+
const issue = rng.pick(TRACKER_ISSUES);
|
|
265
265
|
|
|
266
266
|
records.push({
|
|
267
267
|
timestamp: generateTimestamp(i, count, START_DATE, END_DATE),
|
|
@@ -274,7 +274,7 @@ function generatePanels(count: number): PanelRecord[] {
|
|
|
274
274
|
reviewer_model: rng.pick(MODELS),
|
|
275
275
|
weighted: rng.next() > 0.7,
|
|
276
276
|
attempt: isPass ? 1 : rng.int(1, 3),
|
|
277
|
-
|
|
277
|
+
tracker_issue: issue,
|
|
278
278
|
artifacts_count: rng.int(3, 20),
|
|
279
279
|
report_path: `docs/ai-agents/panel/${panelKey}.md`,
|
|
280
280
|
});
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
{"timestamp":"2026-02-20T08:00:00.000Z","session_id":"feat/tas-43","agent":"DevOps Expert","model":"gpt-5-mini","tier":"standard","mechanism":"sub-agent","
|
|
2
|
-
{"timestamp":"2026-02-20T11:38:52.677Z","session_id":"feat/tas-31","agent":"Architect","model":"gpt-5.3-codex","tier":"economy","mechanism":"sub-agent","
|
|
3
|
-
{"timestamp":"2026-02-20T15:37:40.293Z","session_id":"feat/tas-59","agent":"Documentation Writer","model":"gemini-3.1-pro","tier":"standard","mechanism":"background","
|
|
4
|
-
{"timestamp":"2026-02-20T19:36:10.946Z","session_id":"feat/tas-49","agent":"Data Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","
|
|
5
|
-
{"timestamp":"2026-02-20T23:09:18.799Z","session_id":"feat/tas-49","agent":"Supabase DB Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","
|
|
6
|
-
{"timestamp":"2026-02-21T02:23:04.138Z","session_id":"feat/tas-32","agent":"Security Expert","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","
|
|
7
|
-
{"timestamp":"2026-02-21T05:52:23.451Z","session_id":"feat/tas-39","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","
|
|
8
|
-
{"timestamp":"2026-02-21T10:29:16.394Z","session_id":"feat/tas-41","agent":"Testing Expert","model":"claude-opus-4-6","tier":"utility","mechanism":"background","
|
|
9
|
-
{"timestamp":"2026-02-21T14:00:03.752Z","session_id":"feat/tas-50","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","
|
|
10
|
-
{"timestamp":"2026-02-21T17:10:13.592Z","session_id":"feat/tas-41","agent":"UI/UX Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","
|
|
11
|
-
{"timestamp":"2026-02-21T21:26:17.711Z","session_id":"feat/tas-58","agent":"Sanity Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","
|
|
12
|
-
{"timestamp":"2026-02-22T00:51:23.821Z","session_id":"feat/tas-33","agent":"DevOps Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","
|
|
13
|
-
{"timestamp":"2026-02-22T04:53:39.261Z","session_id":"feat/tas-35","agent":"Documentation Writer","model":"gpt-5.3-codex","tier":"utility","mechanism":"background","
|
|
14
|
-
{"timestamp":"2026-02-22T08:20:53.525Z","session_id":"feat/tas-59","agent":"DevOps Expert","model":"claude-opus-4-6","tier":"standard","mechanism":"sub-agent","
|
|
15
|
-
{"timestamp":"2026-02-22T11:43:14.243Z","session_id":"feat/tas-36","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"economy","mechanism":"sub-agent","
|
|
16
|
-
{"timestamp":"2026-02-22T15:29:36.510Z","session_id":"feat/tas-54","agent":"Supabase DB Expert","model":"gpt-5.3-codex","tier":"standard","mechanism":"background","
|
|
17
|
-
{"timestamp":"2026-02-22T19:18:04.518Z","session_id":"feat/tas-41","agent":"DevOps Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"background","
|
|
18
|
-
{"timestamp":"2026-02-22T23:18:07.164Z","session_id":"feat/tas-44","agent":"Next.js Developer","model":"claude-opus-4-6","tier":"premium","mechanism":"sub-agent","
|
|
19
|
-
{"timestamp":"2026-02-23T02:34:46.644Z","session_id":"feat/tas-30","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","
|
|
20
|
-
{"timestamp":"2026-02-23T06:21:11.926Z","session_id":"feat/tas-45","agent":"Performance Expert","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","
|
|
21
|
-
{"timestamp":"2026-02-23T09:50:56.855Z","session_id":"feat/tas-50","agent":"Data Expert","model":"gemini-3.1-pro","tier":"standard","mechanism":"background","
|
|
22
|
-
{"timestamp":"2026-02-23T14:28:33.926Z","session_id":"feat/tas-55","agent":"UI/UX Expert","model":"gpt-5-mini","tier":"economy","mechanism":"background","
|
|
23
|
-
{"timestamp":"2026-02-23T17:21:16.023Z","session_id":"feat/tas-34","agent":"Data Expert","model":"claude-opus-4-6","tier":"utility","mechanism":"sub-agent","
|
|
24
|
-
{"timestamp":"2026-02-23T21:23:59.785Z","session_id":"feat/tas-54","agent":"Supabase DB Expert","model":"claude-opus-4-6","tier":"standard","mechanism":"background","
|
|
25
|
-
{"timestamp":"2026-02-24T01:37:32.832Z","session_id":"feat/tas-45","agent":"UI/UX Expert","model":"gemini-3.1-pro","tier":"economy","mechanism":"background","
|
|
26
|
-
{"timestamp":"2026-02-24T04:36:24.219Z","session_id":"feat/tas-32","agent":"Data Expert","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","
|
|
27
|
-
{"timestamp":"2026-02-24T08:15:17.039Z","session_id":"feat/tas-49","agent":"Data Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","
|
|
28
|
-
{"timestamp":"2026-02-24T12:28:28.251Z","session_id":"feat/tas-31","agent":"DevOps Expert","model":"claude-opus-4-6","tier":"premium","mechanism":"background","
|
|
29
|
-
{"timestamp":"2026-02-24T16:03:58.674Z","session_id":"feat/tas-51","agent":"Data Expert","model":"gpt-5-mini","tier":"standard","mechanism":"sub-agent","
|
|
30
|
-
{"timestamp":"2026-02-24T19:36:47.295Z","session_id":"feat/tas-45","agent":"Security Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","
|
|
31
|
-
{"timestamp":"2026-02-24T23:22:20.331Z","session_id":"feat/tas-54","agent":"Documentation Writer","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","
|
|
32
|
-
{"timestamp":"2026-02-25T03:04:08.793Z","session_id":"feat/tas-42","agent":"Next.js Developer","model":"gpt-5-mini","tier":"premium","mechanism":"sub-agent","
|
|
33
|
-
{"timestamp":"2026-02-25T06:35:46.724Z","session_id":"feat/tas-38","agent":"DevOps Expert","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","
|
|
34
|
-
{"timestamp":"2026-02-25T10:39:46.727Z","session_id":"feat/tas-38","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"standard","mechanism":"sub-agent","
|
|
35
|
-
{"timestamp":"2026-02-25T14:30:07.967Z","session_id":"feat/tas-46","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","
|
|
1
|
+
{"timestamp":"2026-02-20T08:00:00.000Z","session_id":"feat/tas-43","agent":"DevOps Expert","model":"gpt-5-mini","tier":"standard","mechanism":"sub-agent","tracker_issue":"TAS-43","outcome":"success","retries":1,"phase":1,"file_partition":["libs/queries/","libs/server-utils/"]}
|
|
2
|
+
{"timestamp":"2026-02-20T11:38:52.677Z","session_id":"feat/tas-31","agent":"Architect","model":"gpt-5.3-codex","tier":"economy","mechanism":"sub-agent","tracker_issue":"TAS-31","outcome":"success","retries":0,"phase":2,"file_partition":["libs/data-pipeline/"]}
|
|
3
|
+
{"timestamp":"2026-02-20T15:37:40.293Z","session_id":"feat/tas-59","agent":"Documentation Writer","model":"gemini-3.1-pro","tier":"standard","mechanism":"background","tracker_issue":"TAS-59","outcome":"success","retries":0,"phase":2,"file_partition":["libs/data-pipeline/"]}
|
|
4
|
+
{"timestamp":"2026-02-20T19:36:10.946Z","session_id":"feat/tas-49","agent":"Data Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-49","outcome":"partial","retries":0,"phase":3,"file_partition":["libs/queries/","libs/server-utils/"]}
|
|
5
|
+
{"timestamp":"2026-02-20T23:09:18.799Z","session_id":"feat/tas-49","agent":"Supabase DB Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","tracker_issue":"TAS-49","outcome":"failed","retries":1,"phase":3,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
6
|
+
{"timestamp":"2026-02-21T02:23:04.138Z","session_id":"feat/tas-32","agent":"Security Expert","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-32","outcome":"success","retries":0,"phase":1,"file_partition":["apps/tastebeer.eu/app/","apps/tastecoffee.eu/app/"]}
|
|
7
|
+
{"timestamp":"2026-02-21T05:52:23.451Z","session_id":"feat/tas-39","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-39","outcome":"success","retries":0,"phase":4,"file_partition":["apps/cms-studio/"]}
|
|
8
|
+
{"timestamp":"2026-02-21T10:29:16.394Z","session_id":"feat/tas-41","agent":"Testing Expert","model":"claude-opus-4-6","tier":"utility","mechanism":"background","tracker_issue":"TAS-41","outcome":"success","retries":1,"phase":2,"file_partition":["libs/data-pipeline/","libs/queries/"]}
|
|
9
|
+
{"timestamp":"2026-02-21T14:00:03.752Z","session_id":"feat/tas-50","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-50","outcome":"success","retries":0,"phase":1,"file_partition":["libs/supabase-auth/"]}
|
|
10
|
+
{"timestamp":"2026-02-21T17:10:13.592Z","session_id":"feat/tas-41","agent":"UI/UX Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","tracker_issue":"TAS-41","outcome":"success","retries":1,"phase":1,"file_partition":["apps/tastecoffee.eu/app/"]}
|
|
11
|
+
{"timestamp":"2026-02-21T21:26:17.711Z","session_id":"feat/tas-58","agent":"Sanity Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","tracker_issue":"TAS-58","outcome":"success","retries":1,"phase":1,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
12
|
+
{"timestamp":"2026-02-22T00:51:23.821Z","session_id":"feat/tas-33","agent":"DevOps Expert","model":"gpt-5-mini","tier":"utility","mechanism":"background","tracker_issue":"TAS-33","outcome":"failed","retries":2,"phase":1,"file_partition":["apps/tastebeer.eu/app/","apps/tastecoffee.eu/app/"]}
|
|
13
|
+
{"timestamp":"2026-02-22T04:53:39.261Z","session_id":"feat/tas-35","agent":"Documentation Writer","model":"gpt-5.3-codex","tier":"utility","mechanism":"background","tracker_issue":"TAS-35","outcome":"success","retries":1,"phase":1,"file_partition":["libs/server-utils/"]}
|
|
14
|
+
{"timestamp":"2026-02-22T08:20:53.525Z","session_id":"feat/tas-59","agent":"DevOps Expert","model":"claude-opus-4-6","tier":"standard","mechanism":"sub-agent","tracker_issue":"TAS-59","outcome":"success","retries":0,"phase":4,"file_partition":["libs/queries/"]}
|
|
15
|
+
{"timestamp":"2026-02-22T11:43:14.243Z","session_id":"feat/tas-36","agent":"Next.js Developer","model":"gpt-5.3-codex","tier":"economy","mechanism":"sub-agent","tracker_issue":"TAS-36","outcome":"success","retries":0,"phase":1,"file_partition":["libs/server-utils/"]}
|
|
16
|
+
{"timestamp":"2026-02-22T15:29:36.510Z","session_id":"feat/tas-54","agent":"Supabase DB Expert","model":"gpt-5.3-codex","tier":"standard","mechanism":"background","tracker_issue":"TAS-54","outcome":"success","retries":0,"phase":4,"file_partition":["apps/cms-studio/"]}
|
|
17
|
+
{"timestamp":"2026-02-22T19:18:04.518Z","session_id":"feat/tas-41","agent":"DevOps Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"background","tracker_issue":"TAS-41","outcome":"success","retries":1,"phase":3,"file_partition":["libs/server-utils/"]}
|
|
18
|
+
{"timestamp":"2026-02-22T23:18:07.164Z","session_id":"feat/tas-44","agent":"Next.js Developer","model":"claude-opus-4-6","tier":"premium","mechanism":"sub-agent","tracker_issue":"TAS-44","outcome":"success","retries":1,"phase":2,"file_partition":["libs/server-utils/"]}
|
|
19
|
+
{"timestamp":"2026-02-23T02:34:46.644Z","session_id":"feat/tas-30","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-30","outcome":"failed","retries":2,"phase":4,"file_partition":["apps/tastebeer.eu/app/","apps/tastecoffee.eu/app/"]}
|
|
20
|
+
{"timestamp":"2026-02-23T06:21:11.926Z","session_id":"feat/tas-45","agent":"Performance Expert","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-45","outcome":"success","retries":1,"phase":4,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
21
|
+
{"timestamp":"2026-02-23T09:50:56.855Z","session_id":"feat/tas-50","agent":"Data Expert","model":"gemini-3.1-pro","tier":"standard","mechanism":"background","tracker_issue":"TAS-50","outcome":"success","retries":1,"phase":2,"file_partition":["libs/supabase-auth/"]}
|
|
22
|
+
{"timestamp":"2026-02-23T14:28:33.926Z","session_id":"feat/tas-55","agent":"UI/UX Expert","model":"gpt-5-mini","tier":"economy","mechanism":"background","tracker_issue":"TAS-55","outcome":"success","retries":1,"phase":3,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
23
|
+
{"timestamp":"2026-02-23T17:21:16.023Z","session_id":"feat/tas-34","agent":"Data Expert","model":"claude-opus-4-6","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-34","outcome":"partial","retries":1,"phase":4,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
24
|
+
{"timestamp":"2026-02-23T21:23:59.785Z","session_id":"feat/tas-54","agent":"Supabase DB Expert","model":"claude-opus-4-6","tier":"standard","mechanism":"background","tracker_issue":"TAS-54","outcome":"success","retries":0,"phase":1,"file_partition":["apps/tastebeer.eu/app/"]}
|
|
25
|
+
{"timestamp":"2026-02-24T01:37:32.832Z","session_id":"feat/tas-45","agent":"UI/UX Expert","model":"gemini-3.1-pro","tier":"economy","mechanism":"background","tracker_issue":"TAS-45","outcome":"success","retries":1,"phase":1,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
26
|
+
{"timestamp":"2026-02-24T04:36:24.219Z","session_id":"feat/tas-32","agent":"Data Expert","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-32","outcome":"success","retries":1,"phase":4,"file_partition":["libs/data-pipeline/","libs/queries/"]}
|
|
27
|
+
{"timestamp":"2026-02-24T08:15:17.039Z","session_id":"feat/tas-49","agent":"Data Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","tracker_issue":"TAS-49","outcome":"success","retries":1,"phase":3,"file_partition":["libs/data-pipeline/"]}
|
|
28
|
+
{"timestamp":"2026-02-24T12:28:28.251Z","session_id":"feat/tas-31","agent":"DevOps Expert","model":"claude-opus-4-6","tier":"premium","mechanism":"background","tracker_issue":"TAS-31","outcome":"partial","retries":0,"phase":4,"file_partition":["libs/ui-kit/","apps/tastebeer.eu/app/"]}
|
|
29
|
+
{"timestamp":"2026-02-24T16:03:58.674Z","session_id":"feat/tas-51","agent":"Data Expert","model":"gpt-5-mini","tier":"standard","mechanism":"sub-agent","tracker_issue":"TAS-51","outcome":"success","retries":0,"phase":2,"file_partition":["libs/queries/"]}
|
|
30
|
+
{"timestamp":"2026-02-24T19:36:47.295Z","session_id":"feat/tas-45","agent":"Security Expert","model":"gpt-5.3-codex","tier":"premium","mechanism":"sub-agent","tracker_issue":"TAS-45","outcome":"success","retries":0,"phase":1,"file_partition":["apps/tastecoffee.eu/app/"]}
|
|
31
|
+
{"timestamp":"2026-02-24T23:22:20.331Z","session_id":"feat/tas-54","agent":"Documentation Writer","model":"gpt-5-mini","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-54","outcome":"success","retries":0,"phase":1,"file_partition":["apps/tastebeer.eu/app/","apps/tastecoffee.eu/app/"]}
|
|
32
|
+
{"timestamp":"2026-02-25T03:04:08.793Z","session_id":"feat/tas-42","agent":"Next.js Developer","model":"gpt-5-mini","tier":"premium","mechanism":"sub-agent","tracker_issue":"TAS-42","outcome":"success","retries":1,"phase":4,"file_partition":["apps/cms-studio/"]}
|
|
33
|
+
{"timestamp":"2026-02-25T06:35:46.724Z","session_id":"feat/tas-38","agent":"DevOps Expert","model":"gpt-5.3-codex","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-38","outcome":"success","retries":1,"phase":4,"file_partition":["libs/server-utils/"]}
|
|
34
|
+
{"timestamp":"2026-02-25T10:39:46.727Z","session_id":"feat/tas-38","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"standard","mechanism":"sub-agent","tracker_issue":"TAS-38","outcome":"success","retries":0,"phase":3,"file_partition":["libs/ui-kit/"]}
|
|
35
|
+
{"timestamp":"2026-02-25T14:30:07.967Z","session_id":"feat/tas-46","agent":"Sanity Expert","model":"gemini-3.1-pro","tier":"utility","mechanism":"sub-agent","tracker_issue":"TAS-46","outcome":"success","retries":1,"phase":4,"file_partition":["apps/tastebeer.eu/app/","apps/tastecoffee.eu/app/"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
{"timestamp":"2026-02-20T08:00:00.000Z","panel_key":"auth-review","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":6,"reviewer_model":"gpt-5.3-codex","weighted":false,"attempt":1,"
|
|
2
|
-
{"timestamp":"2026-02-20T19:09:32.117Z","panel_key":"security-audit","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":5,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":1,"
|
|
3
|
-
{"timestamp":"2026-02-21T06:02:55.882Z","panel_key":"perf-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":1,"
|
|
4
|
-
{"timestamp":"2026-02-21T16:32:56.551Z","panel_key":"a11y-audit","verdict":"block","pass_count":0,"block_count":3,"must_fix":4,"should_fix":3,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":2,"
|
|
5
|
-
{"timestamp":"2026-02-22T03:35:46.612Z","panel_key":"schema-review","verdict":"block","pass_count":0,"block_count":3,"must_fix":5,"should_fix":2,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":2,"
|
|
6
|
-
{"timestamp":"2026-02-22T14:02:10.154Z","panel_key":"api-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gpt-5.3-codex","weighted":true,"attempt":1,"
|
|
7
|
-
{"timestamp":"2026-02-23T01:09:17.203Z","panel_key":"ui-review","verdict":"block","pass_count":1,"block_count":2,"must_fix":5,"should_fix":6,"reviewer_model":"claude-opus-4-6","weighted":true,"attempt":2,"
|
|
8
|
-
{"timestamp":"2026-02-23T11:41:37.464Z","panel_key":"test-coverage","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":3,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":1,"
|
|
9
|
-
{"timestamp":"2026-02-23T22:16:10.866Z","panel_key":"csp-headers","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":3,"reviewer_model":"gemini-3.1-pro","weighted":false,"attempt":1,"
|
|
10
|
-
{"timestamp":"2026-02-24T09:55:09.030Z","panel_key":"migration-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":5,"reviewer_model":"gemini-3.1-pro","weighted":false,"attempt":1,"
|
|
11
|
-
{"timestamp":"2026-02-24T20:15:45.425Z","panel_key":"query-optimization","verdict":"block","pass_count":0,"block_count":3,"must_fix":5,"should_fix":5,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":3,"
|
|
12
|
-
{"timestamp":"2026-02-25T07:07:18.806Z","panel_key":"deployment-checklist","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gemini-3.1-pro","weighted":true,"attempt":1,"
|
|
1
|
+
{"timestamp":"2026-02-20T08:00:00.000Z","panel_key":"auth-review","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":6,"reviewer_model":"gpt-5.3-codex","weighted":false,"attempt":1,"tracker_issue":"TAS-43","artifacts_count":7,"report_path":"docs/ai-agents/panel/auth-review.md"}
|
|
2
|
+
{"timestamp":"2026-02-20T19:09:32.117Z","panel_key":"security-audit","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":5,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":1,"tracker_issue":"TAS-48","artifacts_count":9,"report_path":"docs/ai-agents/panel/security-audit.md"}
|
|
3
|
+
{"timestamp":"2026-02-21T06:02:55.882Z","panel_key":"perf-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":1,"tracker_issue":"TAS-37","artifacts_count":16,"report_path":"docs/ai-agents/panel/perf-review.md"}
|
|
4
|
+
{"timestamp":"2026-02-21T16:32:56.551Z","panel_key":"a11y-audit","verdict":"block","pass_count":0,"block_count":3,"must_fix":4,"should_fix":3,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":2,"tracker_issue":"TAS-39","artifacts_count":16,"report_path":"docs/ai-agents/panel/a11y-audit.md"}
|
|
5
|
+
{"timestamp":"2026-02-22T03:35:46.612Z","panel_key":"schema-review","verdict":"block","pass_count":0,"block_count":3,"must_fix":5,"should_fix":2,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":2,"tracker_issue":"TAS-54","artifacts_count":20,"report_path":"docs/ai-agents/panel/schema-review.md"}
|
|
6
|
+
{"timestamp":"2026-02-22T14:02:10.154Z","panel_key":"api-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gpt-5.3-codex","weighted":true,"attempt":1,"tracker_issue":"TAS-50","artifacts_count":17,"report_path":"docs/ai-agents/panel/api-review.md"}
|
|
7
|
+
{"timestamp":"2026-02-23T01:09:17.203Z","panel_key":"ui-review","verdict":"block","pass_count":1,"block_count":2,"must_fix":5,"should_fix":6,"reviewer_model":"claude-opus-4-6","weighted":true,"attempt":2,"tracker_issue":"TAS-55","artifacts_count":15,"report_path":"docs/ai-agents/panel/ui-review.md"}
|
|
8
|
+
{"timestamp":"2026-02-23T11:41:37.464Z","panel_key":"test-coverage","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":3,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":1,"tracker_issue":"TAS-31","artifacts_count":18,"report_path":"docs/ai-agents/panel/test-coverage.md"}
|
|
9
|
+
{"timestamp":"2026-02-23T22:16:10.866Z","panel_key":"csp-headers","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":3,"reviewer_model":"gemini-3.1-pro","weighted":false,"attempt":1,"tracker_issue":"TAS-40","artifacts_count":6,"report_path":"docs/ai-agents/panel/csp-headers.md"}
|
|
10
|
+
{"timestamp":"2026-02-24T09:55:09.030Z","panel_key":"migration-review","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":5,"reviewer_model":"gemini-3.1-pro","weighted":false,"attempt":1,"tracker_issue":"TAS-53","artifacts_count":6,"report_path":"docs/ai-agents/panel/migration-review.md"}
|
|
11
|
+
{"timestamp":"2026-02-24T20:15:45.425Z","panel_key":"query-optimization","verdict":"block","pass_count":0,"block_count":3,"must_fix":5,"should_fix":5,"reviewer_model":"gpt-5-mini","weighted":false,"attempt":3,"tracker_issue":"TAS-42","artifacts_count":15,"report_path":"docs/ai-agents/panel/query-optimization.md"}
|
|
12
|
+
{"timestamp":"2026-02-25T07:07:18.806Z","panel_key":"deployment-checklist","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":8,"reviewer_model":"gemini-3.1-pro","weighted":true,"attempt":1,"tracker_issue":"TAS-33","artifacts_count":6,"report_path":"docs/ai-agents/panel/deployment-checklist.md"}
|
|
13
13
|
{"timestamp":"2026-02-25T10:00:00Z","panel_key":"instruction-refactoring","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":5,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":1,"artifacts_count":14,"report_path":"docs/ai-agents/panel/instruction-refactoring.md"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
{"timestamp":"2026-02-28T10:30:00Z","
|
|
2
|
-
{"timestamp":"2026-02-28T14:15:00Z","
|
|
3
|
-
{"timestamp":"2026-03-01T09:00:00Z","
|
|
4
|
-
{"timestamp":"2026-03-01T09:20:00Z","
|
|
5
|
-
{"timestamp":"2026-03-01T11:45:00Z","
|
|
6
|
-
{"timestamp":"2026-03-01T16:30:00Z","
|
|
1
|
+
{"timestamp":"2026-02-28T10:30:00Z","tracker_issue":"TAS-12","agent":"Developer","reviewer_model":"gpt-5-mini","verdict":"pass","attempt":1,"issues_critical":0,"issues_major":0,"issues_minor":1,"confidence":"high","escalated":false,"duration_sec":38}
|
|
2
|
+
{"timestamp":"2026-02-28T14:15:00Z","tracker_issue":"TAS-14","agent":"UI-UX Expert","reviewer_model":"gpt-5-mini","verdict":"pass","attempt":1,"issues_critical":0,"issues_major":1,"issues_minor":2,"confidence":"medium","escalated":false,"duration_sec":52}
|
|
3
|
+
{"timestamp":"2026-03-01T09:00:00Z","tracker_issue":"TAS-18","agent":"Developer","reviewer_model":"gpt-5-mini","verdict":"fail","attempt":1,"issues_critical":1,"issues_major":0,"issues_minor":0,"confidence":"high","escalated":true,"duration_sec":41}
|
|
4
|
+
{"timestamp":"2026-03-01T09:20:00Z","tracker_issue":"TAS-18","agent":"Developer","reviewer_model":"gpt-5-mini","verdict":"pass","attempt":2,"issues_critical":0,"issues_major":0,"issues_minor":1,"confidence":"high","escalated":false,"duration_sec":35}
|
|
5
|
+
{"timestamp":"2026-03-01T11:45:00Z","tracker_issue":"TAS-20","agent":"Database Engineer","reviewer_model":"gpt-5-mini","verdict":"pass","attempt":1,"issues_critical":0,"issues_major":0,"issues_minor":0,"confidence":"high","escalated":false,"duration_sec":28}
|
|
6
|
+
{"timestamp":"2026-03-01T16:30:00Z","tracker_issue":"TAS-22","agent":"Security Expert","reviewer_model":"claude-opus-4-6","verdict":"fail","attempt":1,"issues_critical":2,"issues_major":1,"issues_minor":0,"confidence":"high","escalated":true,"duration_sec":65}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
{"timestamp":"2026-02-20T08:00:34.359Z","agent":"Architect","model":"claude-opus-4-6","task":"TAS-46: Fix CORS headers","
|
|
2
|
-
{"timestamp":"2026-02-20T11:05:05.028Z","agent":"Supabase DB Expert","model":"gpt-5-mini","task":"TAS-56: Fix redirect loop","
|
|
3
|
-
{"timestamp":"2026-02-20T13:16:10.762Z","agent":"Sanity Expert","model":"gpt-5-mini","task":"TAS-51: Fix redirect loop","
|
|
4
|
-
{"timestamp":"2026-02-20T15:42:21.649Z","agent":"Architect","model":"gpt-5.3-codex","task":"TAS-48: Add venue suggestions","
|
|
5
|
-
{"timestamp":"2026-02-20T18:33:39.948Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-45: Add image optimization","
|
|
6
|
-
{"timestamp":"2026-02-20T20:50:56.727Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-49: Fix redirect loop","
|
|
7
|
-
{"timestamp":"2026-02-21T00:05:00.537Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-58: Fix mobile layout","
|
|
8
|
-
{"timestamp":"2026-02-21T01:56:41.910Z","agent":"Supabase DB Expert","model":"gpt-5.3-codex","task":"TAS-42: Optimize bundle size","
|
|
9
|
-
{"timestamp":"2026-02-21T05:11:42.700Z","agent":"Security Expert","model":"gpt-5.3-codex","task":"TAS-51: Add image optimization","
|
|
10
|
-
{"timestamp":"2026-02-21T07:24:02.899Z","agent":"Next.js Developer","model":"gpt-5.3-codex","task":"TAS-42: Update scraper logic","
|
|
11
|
-
{"timestamp":"2026-02-21T10:15:19.797Z","agent":"DevOps Expert","model":"gemini-3.1-pro","task":"TAS-53: Update SEO metadata","
|
|
12
|
-
{"timestamp":"2026-02-21T12:33:24.255Z","agent":"Testing Expert","model":"gemini-3.1-pro","task":"TAS-50: Refactor auth flow","
|
|
13
|
-
{"timestamp":"2026-02-21T14:54:49.349Z","agent":"Data Expert","model":"gpt-5-mini","task":"TAS-47: Fix slug generation","
|
|
14
|
-
{"timestamp":"2026-02-21T18:06:15.985Z","agent":"Sanity Expert","model":"gemini-3.1-pro","task":"TAS-44: Update moderation UI","
|
|
15
|
-
{"timestamp":"2026-02-21T20:51:57.384Z","agent":"Performance Expert","model":"claude-opus-4-6","task":"TAS-47: Add geolocation","
|
|
16
|
-
{"timestamp":"2026-02-21T22:37:25.143Z","agent":"Sanity Expert","model":"gpt-5.3-codex","task":"TAS-38: Fix header navigation","
|
|
17
|
-
{"timestamp":"2026-02-22T02:04:09.220Z","agent":"Data Expert","model":"gpt-5-mini","task":"TAS-40: Update CMS schema","
|
|
18
|
-
{"timestamp":"2026-02-22T04:18:52.718Z","agent":"Supabase DB Expert","model":"gemini-3.1-pro","task":"TAS-38: Update scraper logic","
|
|
19
|
-
{"timestamp":"2026-02-22T06:31:31.565Z","agent":"Architect","model":"gemini-3.1-pro","task":"TAS-41: Add unit tests","
|
|
20
|
-
{"timestamp":"2026-02-22T09:44:33.779Z","agent":"Security Expert","model":"gemini-3.1-pro","task":"TAS-51: Update RLS policies","
|
|
21
|
-
{"timestamp":"2026-02-22T12:20:59.680Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-32: Add venue suggestions","
|
|
22
|
-
{"timestamp":"2026-02-22T14:18:43.678Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-55: Update search API","
|
|
23
|
-
{"timestamp":"2026-02-22T17:34:33.606Z","agent":"Documentation Writer","model":"claude-opus-4-6","task":"TAS-55: Update venue detail","
|
|
24
|
-
{"timestamp":"2026-02-22T20:17:44.211Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-36: Add price filter","
|
|
25
|
-
{"timestamp":"2026-02-22T22:32:33.601Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-37: Fix pagination","
|
|
26
|
-
{"timestamp":"2026-02-23T01:26:57.546Z","agent":"Sanity Expert","model":"gpt-5-mini","task":"TAS-52: Add social links","
|
|
27
|
-
{"timestamp":"2026-02-23T03:16:41.486Z","agent":"Architect","model":"gpt-5.3-codex","task":"TAS-31: Add sort options","
|
|
28
|
-
{"timestamp":"2026-02-23T06:22:53.878Z","agent":"Sanity Expert","model":"gemini-3.1-pro","task":"TAS-47: Add price filter","
|
|
29
|
-
{"timestamp":"2026-02-23T09:04:20.943Z","agent":"UI/UX Expert","model":"gpt-5-mini","task":"TAS-34: Add geolocation","
|
|
30
|
-
{"timestamp":"2026-02-23T11:28:05.523Z","agent":"Data Expert","model":"claude-opus-4-6","task":"TAS-36: Update CMS schema","
|
|
31
|
-
{"timestamp":"2026-02-23T14:15:53.224Z","agent":"Data Expert","model":"gpt-5.3-codex","task":"TAS-31: Fix redirect loop","
|
|
32
|
-
{"timestamp":"2026-02-23T16:28:00.114Z","agent":"UI/UX Expert","model":"gpt-5-mini","task":"TAS-35: Add cache headers","
|
|
33
|
-
{"timestamp":"2026-02-23T18:44:29.480Z","agent":"Architect","model":"gemini-3.1-pro","task":"TAS-56: Add cache headers","
|
|
34
|
-
{"timestamp":"2026-02-23T22:10:16.183Z","agent":"Performance Expert","model":"gpt-5.3-codex","task":"TAS-33: Add price filter","
|
|
35
|
-
{"timestamp":"2026-02-24T00:09:22.013Z","agent":"Security Expert","model":"gpt-5.3-codex","task":"TAS-48: Update search API","
|
|
36
|
-
{"timestamp":"2026-02-24T03:00:42.606Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-39: Fix cookie consent","
|
|
37
|
-
{"timestamp":"2026-02-24T05:18:53.042Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-37: Update contact form","
|
|
38
|
-
{"timestamp":"2026-02-24T08:11:14.714Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-30: Add unit tests","
|
|
39
|
-
{"timestamp":"2026-02-24T10:24:49.892Z","agent":"Performance Expert","model":"claude-opus-4-6","task":"TAS-33: Fix cookie consent","
|
|
40
|
-
{"timestamp":"2026-02-24T12:54:27.158Z","agent":"Data Expert","model":"claude-opus-4-6","task":"TAS-35: Add filter component","
|
|
41
|
-
{"timestamp":"2026-02-24T15:47:57.543Z","agent":"Performance Expert","model":"gpt-5.3-codex","task":"TAS-59: Fix CSP violations","
|
|
42
|
-
{"timestamp":"2026-02-24T18:21:34.626Z","agent":"Testing Expert","model":"claude-opus-4-6","task":"TAS-47: Add image optimization","
|
|
43
|
-
{"timestamp":"2026-02-24T20:46:38.816Z","agent":"DevOps Expert","model":"gemini-3.1-pro","task":"TAS-36: Add geolocation","
|
|
44
|
-
{"timestamp":"2026-02-24T23:50:07.144Z","agent":"Next.js Developer","model":"claude-opus-4-6","task":"TAS-32: Add price filter","
|
|
45
|
-
{"timestamp":"2026-02-25T02:48:10.908Z","agent":"Sanity Expert","model":"claude-opus-4-6","task":"TAS-32: Add cache headers","
|
|
46
|
-
{"timestamp":"2026-02-25T05:22:40.043Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-31: Update contact form","
|
|
47
|
-
{"timestamp":"2026-02-25T07:56:19.927Z","agent":"Architect","model":"claude-opus-4-6","task":"TAS-57: Fix cookie consent","
|
|
48
|
-
{"timestamp":"2026-02-25T10:34:21.652Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-33: Update search API","
|
|
49
|
-
{"timestamp":"2026-02-25T13:00:16.014Z","agent":"DevOps Expert","model":"gpt-5-mini","task":"TAS-44: Add geolocation","
|
|
50
|
-
{"timestamp":"2026-02-25T15:48:46.235Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-38: Optimize bundle size","
|
|
1
|
+
{"timestamp":"2026-02-20T08:00:34.359Z","agent":"Architect","model":"claude-opus-4-6","task":"TAS-46: Fix CORS headers","tracker_issue":"TAS-46","outcome":"success","duration_min":20,"files_changed":9,"retries":1,"lessons_added":["LES-002"],"discoveries":[]}
|
|
2
|
+
{"timestamp":"2026-02-20T11:05:05.028Z","agent":"Supabase DB Expert","model":"gpt-5-mini","task":"TAS-56: Fix redirect loop","tracker_issue":"TAS-56","outcome":"partial","duration_min":32,"files_changed":5,"retries":2,"lessons_added":[],"discoveries":[]}
|
|
3
|
+
{"timestamp":"2026-02-20T13:16:10.762Z","agent":"Sanity Expert","model":"gpt-5-mini","task":"TAS-51: Fix redirect loop","tracker_issue":"TAS-51","outcome":"success","duration_min":33,"files_changed":11,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
4
|
+
{"timestamp":"2026-02-20T15:42:21.649Z","agent":"Architect","model":"gpt-5.3-codex","task":"TAS-48: Add venue suggestions","tracker_issue":"TAS-48","outcome":"success","duration_min":42,"files_changed":6,"retries":1,"lessons_added":["LES-005"],"discoveries":[]}
|
|
5
|
+
{"timestamp":"2026-02-20T18:33:39.948Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-45: Add image optimization","tracker_issue":"TAS-45","outcome":"success","duration_min":17,"files_changed":6,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
6
|
+
{"timestamp":"2026-02-20T20:50:56.727Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-49: Fix redirect loop","tracker_issue":"TAS-49","outcome":"success","duration_min":29,"files_changed":13,"retries":1,"lessons_added":["LES-002"],"discoveries":[]}
|
|
7
|
+
{"timestamp":"2026-02-21T00:05:00.537Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-58: Fix mobile layout","tracker_issue":"TAS-58","outcome":"partial","duration_min":36,"files_changed":5,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
8
|
+
{"timestamp":"2026-02-21T01:56:41.910Z","agent":"Supabase DB Expert","model":"gpt-5.3-codex","task":"TAS-42: Optimize bundle size","tracker_issue":"TAS-42","outcome":"partial","duration_min":25,"files_changed":15,"retries":2,"lessons_added":[],"discoveries":[]}
|
|
9
|
+
{"timestamp":"2026-02-21T05:11:42.700Z","agent":"Security Expert","model":"gpt-5.3-codex","task":"TAS-51: Add image optimization","tracker_issue":"TAS-51","outcome":"success","duration_min":11,"files_changed":5,"retries":1,"lessons_added":["LES-002"],"discoveries":["Refactor auth flow"]}
|
|
10
|
+
{"timestamp":"2026-02-21T07:24:02.899Z","agent":"Next.js Developer","model":"gpt-5.3-codex","task":"TAS-42: Update scraper logic","tracker_issue":"TAS-42","outcome":"success","duration_min":24,"files_changed":9,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
11
|
+
{"timestamp":"2026-02-21T10:15:19.797Z","agent":"DevOps Expert","model":"gemini-3.1-pro","task":"TAS-53: Update SEO metadata","tracker_issue":"TAS-53","outcome":"success","duration_min":29,"files_changed":11,"retries":0,"lessons_added":[],"discoveries":["Update venue detail"]}
|
|
12
|
+
{"timestamp":"2026-02-21T12:33:24.255Z","agent":"Testing Expert","model":"gemini-3.1-pro","task":"TAS-50: Refactor auth flow","tracker_issue":"TAS-50","outcome":"success","duration_min":29,"files_changed":11,"retries":0,"lessons_added":[],"discoveries":["Add social links"]}
|
|
13
|
+
{"timestamp":"2026-02-21T14:54:49.349Z","agent":"Data Expert","model":"gpt-5-mini","task":"TAS-47: Fix slug generation","tracker_issue":"TAS-47","outcome":"partial","duration_min":25,"files_changed":3,"retries":2,"lessons_added":[],"discoveries":[]}
|
|
14
|
+
{"timestamp":"2026-02-21T18:06:15.985Z","agent":"Sanity Expert","model":"gemini-3.1-pro","task":"TAS-44: Update moderation UI","tracker_issue":"TAS-44","outcome":"success","duration_min":18,"files_changed":4,"retries":1,"lessons_added":["LES-010"],"discoveries":["Fix pagination"]}
|
|
15
|
+
{"timestamp":"2026-02-21T20:51:57.384Z","agent":"Performance Expert","model":"claude-opus-4-6","task":"TAS-47: Add geolocation","tracker_issue":"TAS-47","outcome":"partial","duration_min":22,"files_changed":3,"retries":1,"lessons_added":["LES-006"],"discoveries":[]}
|
|
16
|
+
{"timestamp":"2026-02-21T22:37:25.143Z","agent":"Sanity Expert","model":"gpt-5.3-codex","task":"TAS-38: Fix header navigation","tracker_issue":"TAS-38","outcome":"success","duration_min":38,"files_changed":3,"retries":0,"lessons_added":[],"discoveries":["Add cache headers"]}
|
|
17
|
+
{"timestamp":"2026-02-22T02:04:09.220Z","agent":"Data Expert","model":"gpt-5-mini","task":"TAS-40: Update CMS schema","tracker_issue":"TAS-40","outcome":"failed","duration_min":29,"files_changed":1,"retries":3,"lessons_added":["LES-003"],"discoveries":["Add social links"]}
|
|
18
|
+
{"timestamp":"2026-02-22T04:18:52.718Z","agent":"Supabase DB Expert","model":"gemini-3.1-pro","task":"TAS-38: Update scraper logic","tracker_issue":"TAS-38","outcome":"success","duration_min":32,"files_changed":1,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
19
|
+
{"timestamp":"2026-02-22T06:31:31.565Z","agent":"Architect","model":"gemini-3.1-pro","task":"TAS-41: Add unit tests","tracker_issue":"TAS-41","outcome":"success","duration_min":13,"files_changed":14,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
20
|
+
{"timestamp":"2026-02-22T09:44:33.779Z","agent":"Security Expert","model":"gemini-3.1-pro","task":"TAS-51: Update RLS policies","tracker_issue":"TAS-51","outcome":"failed","duration_min":8,"files_changed":10,"retries":3,"lessons_added":["LES-004"],"discoveries":["Update scraper logic"]}
|
|
21
|
+
{"timestamp":"2026-02-22T12:20:59.680Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-32: Add venue suggestions","tracker_issue":"TAS-32","outcome":"failed","duration_min":21,"files_changed":12,"retries":3,"lessons_added":["LES-001"],"discoveries":["Fix CORS headers"]}
|
|
22
|
+
{"timestamp":"2026-02-22T14:18:43.678Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-55: Update search API","tracker_issue":"TAS-55","outcome":"success","duration_min":33,"files_changed":12,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
23
|
+
{"timestamp":"2026-02-22T17:34:33.606Z","agent":"Documentation Writer","model":"claude-opus-4-6","task":"TAS-55: Update venue detail","tracker_issue":"TAS-55","outcome":"success","duration_min":6,"files_changed":6,"retries":1,"lessons_added":[],"discoveries":["Add cache headers"]}
|
|
24
|
+
{"timestamp":"2026-02-22T20:17:44.211Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-36: Add price filter","tracker_issue":"TAS-36","outcome":"success","duration_min":19,"files_changed":4,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
25
|
+
{"timestamp":"2026-02-22T22:32:33.601Z","agent":"Supabase DB Expert","model":"claude-opus-4-6","task":"TAS-37: Fix pagination","tracker_issue":"TAS-37","outcome":"partial","duration_min":44,"files_changed":2,"retries":1,"lessons_added":[],"discoveries":["Add venue suggestions"]}
|
|
26
|
+
{"timestamp":"2026-02-23T01:26:57.546Z","agent":"Sanity Expert","model":"gpt-5-mini","task":"TAS-52: Add social links","tracker_issue":"TAS-52","outcome":"partial","duration_min":13,"files_changed":3,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
27
|
+
{"timestamp":"2026-02-23T03:16:41.486Z","agent":"Architect","model":"gpt-5.3-codex","task":"TAS-31: Add sort options","tracker_issue":"TAS-31","outcome":"success","duration_min":31,"files_changed":8,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
28
|
+
{"timestamp":"2026-02-23T06:22:53.878Z","agent":"Sanity Expert","model":"gemini-3.1-pro","task":"TAS-47: Add price filter","tracker_issue":"TAS-47","outcome":"success","duration_min":19,"files_changed":4,"retries":1,"lessons_added":[],"discoveries":["Fix pagination"]}
|
|
29
|
+
{"timestamp":"2026-02-23T09:04:20.943Z","agent":"UI/UX Expert","model":"gpt-5-mini","task":"TAS-34: Add geolocation","tracker_issue":"TAS-34","outcome":"success","duration_min":35,"files_changed":1,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
30
|
+
{"timestamp":"2026-02-23T11:28:05.523Z","agent":"Data Expert","model":"claude-opus-4-6","task":"TAS-36: Update CMS schema","tracker_issue":"TAS-36","outcome":"success","duration_min":15,"files_changed":9,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
31
|
+
{"timestamp":"2026-02-23T14:15:53.224Z","agent":"Data Expert","model":"gpt-5.3-codex","task":"TAS-31: Fix redirect loop","tracker_issue":"TAS-31","outcome":"success","duration_min":43,"files_changed":8,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
32
|
+
{"timestamp":"2026-02-23T16:28:00.114Z","agent":"UI/UX Expert","model":"gpt-5-mini","task":"TAS-35: Add cache headers","tracker_issue":"TAS-35","outcome":"success","duration_min":37,"files_changed":14,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
33
|
+
{"timestamp":"2026-02-23T18:44:29.480Z","agent":"Architect","model":"gemini-3.1-pro","task":"TAS-56: Add cache headers","tracker_issue":"TAS-56","outcome":"failed","duration_min":39,"files_changed":12,"retries":2,"lessons_added":[],"discoveries":["Fix SSR hydration"]}
|
|
34
|
+
{"timestamp":"2026-02-23T22:10:16.183Z","agent":"Performance Expert","model":"gpt-5.3-codex","task":"TAS-33: Add price filter","tracker_issue":"TAS-33","outcome":"success","duration_min":37,"files_changed":13,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
35
|
+
{"timestamp":"2026-02-24T00:09:22.013Z","agent":"Security Expert","model":"gpt-5.3-codex","task":"TAS-48: Update search API","tracker_issue":"TAS-48","outcome":"success","duration_min":15,"files_changed":8,"retries":1,"lessons_added":[],"discoveries":["Update CMS schema"]}
|
|
36
|
+
{"timestamp":"2026-02-24T03:00:42.606Z","agent":"Testing Expert","model":"gpt-5-mini","task":"TAS-39: Fix cookie consent","tracker_issue":"TAS-39","outcome":"success","duration_min":42,"files_changed":10,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
37
|
+
{"timestamp":"2026-02-24T05:18:53.042Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-37: Update contact form","tracker_issue":"TAS-37","outcome":"failed","duration_min":20,"files_changed":11,"retries":2,"lessons_added":[],"discoveries":["Add geolocation"]}
|
|
38
|
+
{"timestamp":"2026-02-24T08:11:14.714Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-30: Add unit tests","tracker_issue":"TAS-30","outcome":"partial","duration_min":32,"files_changed":6,"retries":2,"lessons_added":["LES-009"],"discoveries":["Fix SSR hydration"]}
|
|
39
|
+
{"timestamp":"2026-02-24T10:24:49.892Z","agent":"Performance Expert","model":"claude-opus-4-6","task":"TAS-33: Fix cookie consent","tracker_issue":"TAS-33","outcome":"failed","duration_min":39,"files_changed":2,"retries":2,"lessons_added":[],"discoveries":[]}
|
|
40
|
+
{"timestamp":"2026-02-24T12:54:27.158Z","agent":"Data Expert","model":"claude-opus-4-6","task":"TAS-35: Add filter component","tracker_issue":"TAS-35","outcome":"success","duration_min":13,"files_changed":7,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
41
|
+
{"timestamp":"2026-02-24T15:47:57.543Z","agent":"Performance Expert","model":"gpt-5.3-codex","task":"TAS-59: Fix CSP violations","tracker_issue":"TAS-59","outcome":"success","duration_min":25,"files_changed":7,"retries":1,"lessons_added":[],"discoveries":["Add venue suggestions"]}
|
|
42
|
+
{"timestamp":"2026-02-24T18:21:34.626Z","agent":"Testing Expert","model":"claude-opus-4-6","task":"TAS-47: Add image optimization","tracker_issue":"TAS-47","outcome":"success","duration_min":45,"files_changed":1,"retries":1,"lessons_added":["LES-005"],"discoveries":[]}
|
|
43
|
+
{"timestamp":"2026-02-24T20:46:38.816Z","agent":"DevOps Expert","model":"gemini-3.1-pro","task":"TAS-36: Add geolocation","tracker_issue":"TAS-36","outcome":"success","duration_min":22,"files_changed":9,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
44
|
+
{"timestamp":"2026-02-24T23:50:07.144Z","agent":"Next.js Developer","model":"claude-opus-4-6","task":"TAS-32: Add price filter","tracker_issue":"TAS-32","outcome":"success","duration_min":15,"files_changed":11,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
45
|
+
{"timestamp":"2026-02-25T02:48:10.908Z","agent":"Sanity Expert","model":"claude-opus-4-6","task":"TAS-32: Add cache headers","tracker_issue":"TAS-32","outcome":"failed","duration_min":38,"files_changed":8,"retries":1,"lessons_added":["LES-008"],"discoveries":[]}
|
|
46
|
+
{"timestamp":"2026-02-25T05:22:40.043Z","agent":"Next.js Developer","model":"gemini-3.1-pro","task":"TAS-31: Update contact form","tracker_issue":"TAS-31","outcome":"success","duration_min":8,"files_changed":7,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
47
|
+
{"timestamp":"2026-02-25T07:56:19.927Z","agent":"Architect","model":"claude-opus-4-6","task":"TAS-57: Fix cookie consent","tracker_issue":"TAS-57","outcome":"success","duration_min":22,"files_changed":9,"retries":0,"lessons_added":[],"discoveries":[]}
|
|
48
|
+
{"timestamp":"2026-02-25T10:34:21.652Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-33: Update search API","tracker_issue":"TAS-33","outcome":"failed","duration_min":41,"files_changed":11,"retries":1,"lessons_added":[],"discoveries":[]}
|
|
49
|
+
{"timestamp":"2026-02-25T13:00:16.014Z","agent":"DevOps Expert","model":"gpt-5-mini","task":"TAS-44: Add geolocation","tracker_issue":"TAS-44","outcome":"failed","duration_min":12,"files_changed":12,"retries":3,"lessons_added":[],"discoveries":["Update venue detail"]}
|
|
50
|
+
{"timestamp":"2026-02-25T15:48:46.235Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"TAS-38: Optimize bundle size","tracker_issue":"TAS-38","outcome":"failed","duration_min":5,"files_changed":12,"retries":3,"lessons_added":[],"discoveries":[]}
|
|
@@ -1139,7 +1139,7 @@ const base = import.meta.env.BASE_URL;
|
|
|
1139
1139
|
(s.retries != null ? s.retries : '\u2014') +
|
|
1140
1140
|
'</td>' +
|
|
1141
1141
|
'<td class="td-issue">' +
|
|
1142
|
-
(s.
|
|
1142
|
+
(s.tracker_issue ? escapeHtml(s.tracker_issue) : '\u2014') +
|
|
1143
1143
|
'</td>' +
|
|
1144
1144
|
'</tr>'
|
|
1145
1145
|
)
|
|
@@ -1275,7 +1275,7 @@ const base = import.meta.env.BASE_URL;
|
|
|
1275
1275
|
'<td class="td-num">' + (r.confidence || '\u2014') + '</td>' +
|
|
1276
1276
|
'<td class="td-num">' + (r.attempt ?? 1) + '</td>' +
|
|
1277
1277
|
'<td class="td-num">' + (r.escalated ? '\u26A0' : '\u2014') + '</td>' +
|
|
1278
|
-
'<td class="td-issue">' + (r.
|
|
1278
|
+
'<td class="td-issue">' + (r.tracker_issue ? escapeHtml(r.tracker_issue) : '\u2014') + '</td>' +
|
|
1279
1279
|
'</tr>'
|
|
1280
1280
|
)
|
|
1281
1281
|
.join('') +
|