diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index aa74dd2..c61c799 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -52,6 +52,7 @@ {"_type":"issue","id":"islandflow-zs0","title":"Migrate terminal UI to smart-money profiles","description":"Migrate apps/web terminal rendering to consume SmartMoneyEvent directly: primary profile, probability ladder, reason codes, and suppression/abstention state, while preserving legacy alert/classifier displays during the bridge.","status":"closed","priority":2,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-05-04T21:35:23Z","created_by":"dirtydishes","updated_at":"2026-05-05T05:39:58Z","closed_at":"2026-05-05T05:39:58Z","close_reason":"Completed terminal smart-money profile migration","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"islandflow-igk","title":"Add plan mode","description":"Implement a user-facing plan mode in the application so users can switch into planning before taking action. Scope to be clarified from existing app patterns.","status":"closed","priority":2,"issue_type":"feature","owner":"dishes@dpdrm.com","created_at":"2026-05-04T04:22:37Z","created_by":"dirtydishes","updated_at":"2026-05-04T04:26:18Z","started_at":"2026-05-04T04:22:40Z","closed_at":"2026-05-04T04:26:18Z","close_reason":"Implemented as a global pi extension toggled with Shift+P","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"islandflow-biq","title":"Finish raw live options delivery and filter/backpressure observability","description":"The smart-money signal path and Tape filters are in place, but the next firehose pass should finish server-side selective raw live delivery for options subscriptions and add explicit filtered-out/backpressure observability for API/web counters. This was discovered while landing islandflow-e4r.\n","status":"in_progress","priority":2,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-04-28T20:28:58Z","created_by":"dirtydishes","updated_at":"2026-04-29T03:54:12Z","started_at":"2026-04-29T03:54:12Z","dependencies":[{"issue_id":"islandflow-biq","depends_on_id":"islandflow-e4r","type":"discovered-from","created_at":"2026-04-28T16:28:58Z","created_by":"auto-import","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"islandflow-2df","title":"Publish 2026-05-18 git standup summary","description":"Why: the daily automation needs a grounded standup summary for May 18, 2026. What: review commits from 2026-05-18, create a scannable HTML summary in docs/daily-git, and capture only commit/file-backed statements.","status":"closed","priority":3,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-19T18:41:07Z","created_by":"dirtydishes","updated_at":"2026-05-19T18:42:42Z","started_at":"2026-05-19T18:41:10Z","closed_at":"2026-05-19T18:42:42Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"islandflow-x70","title":"Create 2026-05-17 git standup summary","description":"Why this issue exists and what needs to be done:\\n- Produce the daily automation summary for 2026-05-17 git activity.\\n- Ground statements in commits, PRs, and touched files only.\\n- Create a user-readable HTML document in docs/general and update automation memory.\\n- Complete the Beads sync and git push workflow after documenting the run.","status":"closed","priority":3,"issue_type":"task","assignee":"dirtydishes","owner":"dishes@dpdrm.com","created_at":"2026-05-18T13:01:43Z","created_by":"dirtydishes","updated_at":"2026-05-18T13:05:37Z","started_at":"2026-05-18T13:01:53Z","closed_at":"2026-05-18T13:05:37Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"islandflow-zsy","title":"Expose Forgejo SSH on a direct DNS hostname","description":"git.deltaisland.io currently resolves through Cloudflare's proxy, so SSH on port 2222 does not complete even though the Forgejo container is listening on the host. If SSH-based git/beads workflows are desired, add a DNS-only hostname (or adjust the existing record) that points directly at the server for Forgejo SSH.","status":"open","priority":3,"issue_type":"task","created_at":"2026-05-17T10:34:06Z","created_by":"delta","updated_at":"2026-05-17T10:34:06Z","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"islandflow-38p","title":"Add native deployment unit templates and rollback helpers","description":"The deploy helper now supports --runtime native, but the repo still relies on operator-managed systemd units and manual rollback. Add checked-in native deployment templates or provisioning guidance for the expected units, and consider lightweight rollback/smoke-test helpers once the host-native path is exercised on the real VPS.","status":"open","priority":3,"issue_type":"task","owner":"dishes@dpdrm.com","created_at":"2026-05-15T23:46:42Z","created_by":"dirtydishes","updated_at":"2026-05-15T23:46:42Z","dependency_count":0,"dependent_count":0,"comment_count":0} diff --git a/docs/daily-git/2026-05-19-standup-summary-2026-05-18.html b/docs/daily-git/2026-05-19-standup-summary-2026-05-18.html new file mode 100644 index 0000000..5a33e66 --- /dev/null +++ b/docs/daily-git/2026-05-19-standup-summary-2026-05-18.html @@ -0,0 +1,566 @@ + + + + + + Daily Git Summary for 2026-05-18 + + + +
+
+ Daily Git Summary +

Standup summary for Monday, May 18, 2026

+

+ Git history for May 18 shows four commits. One feature commit introduced an Alpaca-backed news wire across ingest, + storage, API, and web surfaces; the other three commits updated workflow docs, beads state, and the previous + standup summary. +

+
+
+ Commits +
4
+
+
+ Files Touched +
35
+
+
+ Insertions +
1963
+
+
+ Deletions +
52
+
+
+
+ +
+

Summary

+
+
+ Primary Delivery +

+ Commit 906fe411 added a new services/ingest-news service, news persistence in + packages/storage, API endpoints in services/api, and a live news view in + apps/web/app/terminal.tsx plus apps/web/app/news/page.tsx. +

+
+
+ Docs And Workflow +

+ Commits 62aae708, 687a2170, and 04baeceb updated the previous standup + report, beads state, deployment/docker/workspace-root/package.json, and the repo-level + AGENTS.md instructions. +

+
+
+ Standup Framing +

+ Yesterday’s visible product work centered on making live Alpaca news available end to end. The remaining + activity was project hygiene and documentation. +

+
+
+
+ +
+

Changes Made

+
+
+
+ update beads + 687a2170 + 2026-05-18 03:15 -0400 + 1 file +
+

+ Added one line to deployment/docker/workspace-root/package.json. The local git history does not + show more context beyond the file touch and commit subject. +

+
+ +
+
+ docs(general): add 2026-05-17 standup summary + 62aae708 + 2026-05-18 09:05 -0400 + 2 files +
+

+ Added the prior day’s report at docs/general/2026-05-18-standup-summary-2026-05-17.html and + updated .beads/issues.jsonl. +

+
+ docs/general/2026-05-18-standup-summary-2026-05-17.html + .beads/issues.jsonl +
+
+ +
+
+ add alpaca news wire across ingest api and web + 906fe411 + 2026-05-18 16:55 -0400 + 31 files + +1407 / -50 +
+
    +
  • + Added a new ingest service in services/ingest-news/src/index.ts that backfills Alpaca news, + subscribes to the Alpaca news websocket, resolves symbols, and publishes NewsStory payloads to + NATS. +
  • +
  • + Extended shared contracts in packages/types/src/events.ts and + packages/types/src/live.ts, plus new storage support in + packages/storage/src/news.ts and packages/storage/src/clickhouse.ts. +
  • +
  • + Wired the API to store, fan out, and expose news via /news and /history/news in + services/api/src/index.ts and live-session updates in services/api/src/live.ts. +
  • +
  • + Added a web route in apps/web/app/news/page.tsx, a news pane and drawer in + apps/web/app/terminal.tsx, and related styling in apps/web/app/globals.css. +
  • +
  • + Updated runtime packaging and local/dev deployment surfaces, including + deployment/docker/docker-compose.yml, Dockerfiles, scripts/dev.ts, and + scripts/deploy.ts. +
  • +
  • + Added tests in packages/storage/tests/news.test.ts, + services/ingest-news/tests/symbols.test.ts, and adjusted + apps/web/app/terminal.test.ts plus packages/types/tests/live.test.ts. +
  • +
+
+ services/ingest-news/src/index.ts + packages/storage/src/news.ts + services/api/src/index.ts + apps/web/app/terminal.tsx + apps/web/app/news/page.tsx + apps/web/app/globals.css +
+
+ +
+
+ update turn docs and beads workflow + 04baeceb + 2026-05-18 21:32 -0400 + 1 file +
+

+ Edited AGENTS.md to update turn-document and beads workflow guidance. +

+
+
+
+ +
+

Context

+

+ This summary is based on local git history between 2026-05-18 00:00 -0400 and + 2026-05-19 00:00 -0400. The repository uses Bun, TypeScript, NATS/JetStream, ClickHouse, and a Next.js + web app, so the main feature commit spans service ingestion, shared types, persistence, API delivery, and the UI. +

+
+ +
+

Important Implementation Details

+
+
+

News ingestion was introduced as a first-class service

+

+ services/ingest-news/src/index.ts authenticates against Alpaca, backfills recent news, subscribes + to live updates, resolves symbols, validates payloads with NewsStorySchema, and publishes them onto + the repo’s bus layer. +

+
const backfill = await fetchBackfill();
+for (const item of backfill.reverse()) {
+  await publishStory(item);
+}
+
+if (msg === "authenticated") {
+  ws.send(JSON.stringify({ action: "subscribe", news: ["*"] }));
+}
+
+ +
+

API and live session support were expanded for news

+

+ services/api/src/index.ts now ensures the news table exists, subscribes to a news consumer, fans + out live updates, and exposes both recent and paginated history endpoints. +

+
if (req.method === "GET" && url.pathname === "/news") {
+  const limit = parseLimit(url.searchParams.get("limit") ?? "100");
+  const data = await fetchRecentNews(clickhouse, limit);
+  return jsonResponse({ data });
+}
+
+ +
+

The web terminal gained a dedicated news surface

+

+ apps/web/app/terminal.tsx added a live-only news pane, a per-story drawer, history loading, and a + new /news route entry point via apps/web/app/news/page.tsx. +

+
if (features.news) {
+  subscriptions.push({ channel: "news", snapshot_limit: LIVE_OPTIONS_HEAD_LIMIT });
+}
+
+export function NewsRoute() {
+  const state = useTerminal();
+  return (
+    <PageFrame title="News">
+      <div className="page-grid page-grid-news">
+        <NewsPane state={state} className="news-pane-full" />
+      </div>
+    </PageFrame>
+  );
+}
+
+
+
+ +
+

Expected Impact for End-Users

+
+
+ Live Terminal +

+ Users now have a dedicated news wire surface in the web terminal, including summary rows, story details, and + a direct link to the source article. +

+
+
+ Coverage +

+ News is now available alongside the repo’s existing live feeds, with shared symbol resolution and storage that + make the data retrievable through API history endpoints. +

+
+
+ Current Boundary +

+ The UI copy in the news pane explicitly marks news as live-only in v1, so replay users should not expect the + same behavior there yet. +

+
+
+
+ +
+

Validation

+ +
+ +
+

Issues, Limitations, and Mitigations

+ +
+ +
+

Follow-up Work

+ +
+
+ +