feat: Page Data dev loop, adm Code Run UI, and customer order demo

Add verify→Aider→OpenHands dev loop, memindadm config/history UI, and john4
customer-order Page Data demo with scenario + verification scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-07-23 22:11:18 +08:00
parent 239c41f935
commit dab6140f99
22 changed files with 1795 additions and 14 deletions
+42
View File
@@ -131,3 +131,45 @@ test('getPublicClientPolicy disables client flags when user not allowlisted', as
assert.equal(allowed.codeRun.enabled, true);
assert.equal(allowed.codeRun.pageDataDevAutodetect, true);
});
test('listRecentPageDataDevRuns filters page data dev task types', async () => {
const pool = {
async query(sql) {
const normalized = String(sql).replace(/\s+/g, ' ').trim();
if (normalized.includes('FROM h5_agent_runs')) {
return [[
{
id: 'run-1',
user_id: 'user-1',
request_id: 'req-1',
status: 'failed',
error_message: 'boom',
created_at: 1,
updated_at: 2,
user_message_json: JSON.stringify({
metadata: { memindRun: { taskType: 'page_data_dev', executor: 'aider' } },
}),
},
{
id: 'run-2',
user_id: 'user-1',
request_id: 'req-2',
status: 'succeeded',
error_message: null,
created_at: 3,
updated_at: 4,
user_message_json: JSON.stringify({
metadata: { memindRun: { taskType: 'h5_chat_code_task' } },
}),
},
]];
}
return [[]];
},
};
const service = createAgentCodeRunAdminConfigService(pool, { env: {} });
const result = await service.listRecentPageDataDevRuns({ limit: 10 });
assert.equal(result.runs.length, 1);
assert.equal(result.runs[0].taskType, 'page_data_dev');
assert.equal(result.runs[0].executor, 'aider');
});