henry
|
2f1fe5b39a
|
Add settings page redesign implementation plan
|
2026-05-16 20:40:04 +02:00 |
|
henry
|
14cee9c16a
|
Add settings page redesign spec
|
2026-05-16 20:35:33 +02:00 |
|
henry
|
d370412c51
|
feat(settings): register admin settings API routes\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:26:49 +02:00 |
|
henry
|
699c4eae26
|
test(e2e): fix duplicate base const in job-history spec
|
2026-05-16 20:25:06 +02:00 |
|
henry
|
9aefcc04b8
|
test(e2e): robust navigate to stock detail via absolute URL to avoid SPA races\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:24:48 +02:00 |
|
henry
|
18173f9905
|
test(e2e): make alpaca bars tolerant and click symbol link to avoid aborted navigation\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:23:25 +02:00 |
|
henry
|
8cb7132fe0
|
Task 6: finalize tests and CI notes for settings feature
|
2026-05-16 20:21:43 +02:00 |
|
henry
|
7fdef49b8c
|
feat(settings): wire ANALYSIS_BACKGROUND into landing loader and add CI notes
|
2026-05-16 20:20:36 +02:00 |
|
henry
|
eb999444d7
|
fix(.gitignore): add playwrite-out to ignored files
Run Tests / test (push) Successful in 38s
|
2026-05-16 20:20:03 +02:00 |
|
henry
|
0ee89cf052
|
feat(settings): add settings route and API updates\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:19:35 +02:00 |
|
henry
|
9b63d981b0
|
fix(settings): store JSON as string in DB and parse on read\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:18:32 +02:00 |
|
henry
|
dba81832c1
|
feat(settings): add SettingsService with cache and emitter\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:11:02 +02:00 |
|
henry
|
9b8afa2605
|
feat(settings): add admin settings API routes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:10:46 +02:00 |
|
henry
|
078dc25b87
|
feat(settings): add admin settings UI and Navbar link
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:10:41 +02:00 |
|
henry
|
364b1cd7e0
|
chore(db): add AppSetting model
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:10:40 +02:00 |
|
henry
|
d25a7e9ff5
|
docs: add settings page design (app-wide DB-backed)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 20:05:22 +02:00 |
|
henry
|
74ebf0b6e3
|
Feat(api): support fetching bars from paper or live Alpaca (default paper) via alpacaClient.fetchBars\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 18:08:15 +02:00 |
|
henry
|
e88deac193
|
Add API route for price-stream
|
2026-05-16 18:01:48 +02:00 |
|
henry
|
91659e997a
|
Build: make server-only imports dynamic in analyze route to avoid client bundling errors\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 17:58:25 +02:00 |
|
henry
|
b2e0568bfd
|
Fix(types): LLM types, execution LLM call safety, analyze defaults; skip tests in tsconfig for dev typecheck\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 17:57:53 +02:00 |
|
henry
|
c4873daf3b
|
Dev: disable SSR to avoid jsx-dev-runtime mismatch during local dev (temporary)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 17:51:20 +02:00 |
|
henry
|
5358ee6f97
|
Fix: use ReadableStream cancel() to cleanup interval (avoid controller.signal TS error)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 17:44:03 +02:00 |
|
henry
|
93056b7ecd
|
Fix JSX syntax: close conditional expression in analyze.ticker.tsx (add missing })
|
2026-05-16 15:31:00 +02:00 |
|
henry
|
0e8339d614
|
UI: surface buying/selling suggestion and execution plan in portfolio and stock detail (show last saved suggestion)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 15:27:41 +02:00 |
|
henry
|
329b83a17c
|
UI: ensure dark text on job detail and job history cards (avoid white-on-light backgrounds)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 15:13:38 +02:00 |
|
henry
|
3ed894015a
|
UI: ensure dark text on job detail and job history cards (avoid white-on-light backgrounds)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 15:13:19 +02:00 |
|
henry
|
fc17b8cb51
|
UI: avoid disabling Add Stock button to prevent flaky E2E clicks (addStock still guards empty input)
|
2026-05-16 15:06:46 +02:00 |
|
henry
|
c900fd8b77
|
Routes: add api/jobs/:jobId/cancel mapping
|
2026-05-16 15:05:09 +02:00 |
|
henry
|
2643c472dd
|
Routes: add jobs/:jobId UI route mapping
|
2026-05-16 15:04:27 +02:00 |
|
henry
|
6c92a6d95a
|
UI: make JobHistory Details an anchor to avoid flaky click in Playwright
|
2026-05-16 15:03:47 +02:00 |
|
henry
|
e7cbb56328
|
Routes: add api/jobs endpoints and /stocks/:ticker route mapping
|
2026-05-16 15:02:52 +02:00 |
|
henry
|
eac93a6b82
|
Routing: add /stocks/:ticker alias to analyze.ticker for compatibility with tests\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 15:02:08 +02:00 |
|
henry
|
e4fb4bca41
|
Fix routing: move job loader into index and keep cancel as nested action (avoid duplicate file/folder)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 15:00:01 +02:00 |
|
henry
|
c8e4c181d0
|
Fix cancel route import path to queue module\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:58:18 +02:00 |
|
henry
|
f7df607a06
|
tests: add Playwright E2E for JobHistory and job detail navigation + cancel endpoint check\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:56:34 +02:00 |
|
henry
|
1ae60635d3
|
UI: job badges, skeletons, cancel support + API route to cancel jobs\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:56:22 +02:00 |
|
henry
|
424a2fc6d5
|
UI: add job details page and auto-refresh in JobHistory\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:52:51 +02:00 |
|
henry
|
2585734f6a
|
UI: add JobHistory component and render on stock detail page\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:48:58 +02:00 |
|
henry
|
669b792045
|
Jobs API: expose getJob and listRecentJobs; use unified queue module for job status and history; UI can query /api/jobs?ticker=...\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-16 14:47:23 +02:00 |
|
henry
|
9771f48028
|
Queue: unify exports; support BullMQ when REDIS_URL set, otherwise in-process fallback
|
2026-05-16 14:43:52 +02:00 |
|
henry
|
9167bd8912
|
Queue: support REDIS_URL BullMQ mode; fallback to in-process queue for dev/tests
|
2026-05-16 14:42:33 +02:00 |
|
henry
|
5f5a48067c
|
Remove QueueScheduler usage (avoid SSR runtime error)
|
2026-05-16 14:41:06 +02:00 |
|
henry
|
1b31a4a131
|
Typings: annotate job param as any in queue worker
|
2026-05-16 14:39:33 +02:00 |
|
henry
|
ceb664f56c
|
Fix TS errors: relax bullmq import typing, adjust job loader, and cast chart mock as any
|
2026-05-16 14:39:00 +02:00 |
|
henry
|
31503624f6
|
Fix bullmq import for ESM SSR compatibility (use default import)
|
2026-05-16 14:36:45 +02:00 |
|
henry
|
528045c25e
|
Fix duplicate stockRecord declaration in stock detail loader
|
2026-05-16 14:35:43 +02:00 |
|
henry
|
f2b7fad379
|
Add prisma migration folder for lastJobId
|
2026-05-16 14:31:30 +02:00 |
|
henry
|
a835986842
|
StockDetail: include stockRecord in loader return for job status link
|
2026-05-16 14:30:47 +02:00 |
|
henry
|
3234a09096
|
Add job status endpoint, persist lastJobId; replace in-process queue with BullMQ-based queue and worker; link job status in UI
|
2026-05-16 14:28:34 +02:00 |
|
henry
|
d9f9150d68
|
Add job queue for background analyze, enqueue from API, update MostActiveStocks form POST, add Playwright E2E for Save button
|
2026-05-16 14:22:13 +02:00 |
|