{"stats": {"messages_total": 14, "raw_notifications_total": 15, "signals_total": 11, "decisions_accepted": 9, "orders_total": 9, "orders_filled": 9, "decisions_rejected": 2, "orders_today": 0, "open_positions": 6, "outcomes_total": 0}, "activity": {"messages": [{"message_id": "local-notification-25", "author_id": "com.squirrel.Discord.Discord", "channel_id": "windows-notifications", "content": "Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "created_at": "2026-06-20T18:47:55.839448+00:00"}, {"message_id": "codex-parser-reject-1781927380", "author_id": "codex", "channel_id": "codex", "content": "SELL immediately", "created_at": "2026-06-20T03:49:41.154274+00:00"}, {"message_id": "local-notification-23", "author_id": "com.squirrel.Discord.Discord", "channel_id": "windows-notifications", "content": "SELL ZZTOP paper-test controlled toast check", "created_at": "2026-06-20T02:44:35.359454+00:00"}, {"message_id": "codex-reject-1781923366", "author_id": "codex", "channel_id": "codex", "content": "SELL ZZTOP paper-test codex rejection check", "created_at": "2026-06-20T02:42:46.800068+00:00"}, {"message_id": "local-notification-22", "author_id": "com.squirrel.Discord.Discord", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-20T02:17:27.093532+00:00"}, {"message_id": "notify-test-tsla-20260618-195710", "author_id": "notify-test", "channel_id": "local-forwarder", "content": "Adding $TSLA shares @ $250 Stop loss @ $240 Risking 0.5% notify-test", "created_at": "2026-06-19T00:57:11.217048+00:00"}, {"message_id": "notify-test-20260618-195326", "author_id": "notify-test", "channel_id": "local-forwarder", "content": "Adding $AMD shares @ $100 Stop loss @ $95 Risking 0.5% notify-test", "created_at": "2026-06-19T00:53:27.261754+00:00"}, {"message_id": "local-notification-40735", "author_id": "com.squirrel.Discord.Discord", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-19T00:33:56.628643+00:00"}, {"message_id": "local-bridge-test-20260618-1", "author_id": "local-bridge-test", "channel_id": "local-forwarder", "content": "Adding $MSFT shares @ $400 Stop loss @ $390 Risking 0.5% bridge-live-test", "created_at": "2026-06-19T00:10:29.799799+00:00"}, {"message_id": "bridge-test-20260618-1", "author_id": "bridge-test", "channel_id": "local-forwarder", "content": "Adding $AAPL shares @ $200 Stop loss @ $190 Risking 0.5% bridge-test", "created_at": "2026-06-19T00:04:27.770946+00:00"}, {"message_id": "local-notification-19", "author_id": "com.squirrel.Discord.Discord", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T21:47:56.358316+00:00"}, {"message_id": "manual-vps-dm-test-20260618-3", "author_id": "discord-dm-test", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T20:31:05.425901+00:00"}, {"message_id": "manual-vps-dm-test-20260618-2", "author_id": "discord-dm-test", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T20:29:59.007880+00:00"}, {"message_id": "manual-vps-dm-test-20260618-1", "author_id": "discord-dm-test", "channel_id": "windows-notifications", "content": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T20:27:55.680912+00:00"}], "raw_notifications": [{"notification_order": 18, "notification_id": "39", "app_id": "com.squirrel.Discord.Discord", "title": "gram", "body": "gram started a call.", "content": "gram gram started a call.", "raw_text": "gram gram started a call.", "arrival_time": "2026-06-22T00:44:47.828802+00:00", "created_at": "2026-06-22T00:44:48.757729+00:00"}, {"notification_order": 17, "notification_id": "35", "app_id": "com.squirrel.Discord.Discord", "title": "Discord", "body": "Tradebot controlled raw audit after display fix", "content": "Discord Tradebot controlled raw audit after display fix", "raw_text": "Discord Tradebot controlled raw audit after display fix", "arrival_time": "2026-06-20T19:55:30.514366+00:00", "created_at": "2026-06-20T19:57:46.894288+00:00"}, {"notification_order": 16, "notification_id": "33", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-32 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-32 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-32 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:48:06.374658+00:00", "created_at": "2026-06-20T18:48:07.478075+00:00"}, {"notification_order": 15, "notification_id": "32", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-31 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:48:05.048802+00:00", "created_at": "2026-06-20T18:48:06.076293+00:00"}, {"notification_order": 14, "notification_id": "31", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-30 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:48:03.722538+00:00", "created_at": "2026-06-20T18:48:04.750137+00:00"}, {"notification_order": 13, "notification_id": "30", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-29 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:48:02.352626+00:00", "created_at": "2026-06-20T18:48:03.402186+00:00"}, {"notification_order": 12, "notification_id": "29", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-28 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:48:00.897988+00:00", "created_at": "2026-06-20T18:48:02.043559+00:00"}, {"notification_order": 11, "notification_id": "28", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-27 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:47:59.433346+00:00", "created_at": "2026-06-20T18:48:00.476976+00:00"}, {"notification_order": 10, "notification_id": "27", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-26 Alert: Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:47:58.014224+00:00", "created_at": "2026-06-20T18:47:59.094959+00:00"}, {"notification_order": 9, "notification_id": "26", "app_id": "com.squirrel.Discord.Discord", "title": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069)", "body": "Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "\u2068Tradebot\u2069 (\u2068#general\u2069, \u2068Text Channels\u2069) Tradebot order placed Symbol: SHOP Side: buy Status: filled Quantity: 0.142857 Filled: 0.142857 Average fill: 70 Notional cap: 10 Risk: 0.5% Source message: local-notification-25 Alert: Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:47:56.747654+00:00", "created_at": "2026-06-20T18:47:57.717585+00:00"}, {"notification_order": 8, "notification_id": "25", "app_id": "com.squirrel.Discord.Discord", "title": "LIT_PANDA1", "body": "Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "content": "LIT_PANDA1 Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "raw_text": "LIT_PANDA1 Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "arrival_time": "2026-06-20T18:47:55.839448+00:00", "created_at": "2026-06-20T18:47:56.035058+00:00"}, {"notification_order": 7, "notification_id": "24", "app_id": "com.squirrel.Discord.Discord", "title": "Discord", "body": "Tradebot reliability raw audit check", "content": "Discord Tradebot reliability raw audit check", "raw_text": "Discord Tradebot reliability raw audit check", "arrival_time": "2026-06-20T03:49:12.345410+00:00", "created_at": "2026-06-20T03:49:12.761191+00:00"}, {"notification_order": 6, "notification_id": "23", "app_id": "com.squirrel.Discord.Discord", "title": "Discord", "body": "SELL ZZTOP paper-test controlled toast check", "content": "Discord SELL ZZTOP paper-test controlled toast check", "raw_text": "Discord SELL ZZTOP paper-test controlled toast check", "arrival_time": "2026-06-20T02:44:35.359454+00:00", "created_at": "2026-06-20T19:57:46.536100+00:00"}, {"notification_order": 5, "notification_id": "22", "app_id": "com.squirrel.Discord.Discord", "title": "Discord", "body": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "content": "Discord Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "raw_text": "Discord Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "arrival_time": "2026-06-20T02:17:27.093532+00:00", "created_at": "2026-06-20T19:57:46.073574+00:00"}, {"notification_order": 4, "notification_id": "19", "app_id": "com.squirrel.Discord.Discord", "title": "Discord", "body": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "content": "Discord Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "raw_text": "Discord Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "arrival_time": "2026-06-18T21:47:56.358316+00:00", "created_at": "2026-06-20T19:57:45.578361+00:00"}], "signals": [{"message_id": "local-notification-25", "symbol": "SHOP", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 70.0, "stop_loss": 67.0, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $SHOP shares @ $70 Stop loss @ $67 Risking 0.5% paper-test", "created_at": "2026-06-20T18:47:56.109237+00:00"}, {"message_id": "local-notification-23", "symbol": "ZZTOP", "action": "sell", "confidence": 0.78, "quantity": null, "notional": null, "entry_price": null, "stop_loss": null, "take_profit": null, "trim_fraction": null, "risk_fraction": null, "raw_text": "SELL ZZTOP paper-test controlled toast check", "created_at": "2026-06-20T02:44:36.298134+00:00"}, {"message_id": "codex-reject-1781923366", "symbol": "ZZTOP", "action": "sell", "confidence": 0.78, "quantity": null, "notional": null, "entry_price": null, "stop_loss": null, "take_profit": null, "trim_fraction": null, "risk_fraction": null, "raw_text": "SELL ZZTOP paper-test codex rejection check", "created_at": "2026-06-20T02:42:46.818267+00:00"}, {"message_id": "local-notification-22", "symbol": "HUT", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 126.11, "stop_loss": 121.39, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-20T02:17:28.506118+00:00"}, {"message_id": "notify-test-tsla-20260618-195710", "symbol": "TSLA", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 250.0, "stop_loss": 240.0, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $TSLA shares @ $250 Stop loss @ $240 Risking 0.5% notify-test", "created_at": "2026-06-19T00:57:11.231171+00:00"}, {"message_id": "notify-test-20260618-195326", "symbol": "AMD", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 100.0, "stop_loss": 95.0, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $AMD shares @ $100 Stop loss @ $95 Risking 0.5% notify-test", "created_at": "2026-06-19T00:53:27.280550+00:00"}, {"message_id": "local-notification-40735", "symbol": "HUT", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 126.11, "stop_loss": 121.39, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-19T00:33:56.642173+00:00"}, {"message_id": "local-bridge-test-20260618-1", "symbol": "MSFT", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 400.0, "stop_loss": 390.0, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $MSFT shares @ $400 Stop loss @ $390 Risking 0.5% bridge-live-test", "created_at": "2026-06-19T00:10:29.809816+00:00"}, {"message_id": "bridge-test-20260618-1", "symbol": "AAPL", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 200.0, "stop_loss": 190.0, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $AAPL shares @ $200 Stop loss @ $190 Risking 0.5% bridge-test", "created_at": "2026-06-19T00:04:27.796741+00:00"}, {"message_id": "local-notification-19", "symbol": "HUT", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 126.11, "stop_loss": 121.39, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T21:47:56.707585+00:00"}, {"message_id": "manual-vps-dm-test-20260618-3", "symbol": "HUT", "action": "buy", "confidence": 0.8800000000000001, "quantity": null, "notional": null, "entry_price": 126.11, "stop_loss": 121.39, "take_profit": null, "trim_fraction": null, "risk_fraction": 0.005, "raw_text": "Adding $HUT shares @ $126.11 Stop loss @ $121.39 Risking 0.5% paper-test", "created_at": "2026-06-18T20:31:05.436364+00:00"}], "decisions": [{"message_id": "local-notification-25", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.142857, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-20T18:47:56.139730+00:00"}, {"message_id": "local-notification-23", "accepted": 0, "reason": "Sell would open a short position, and short selling is disabled.", "effective_quantity": null, "effective_notional": null, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-20T02:44:36.320393+00:00"}, {"message_id": "codex-reject-1781923366", "accepted": 0, "reason": "Sell would open a short position, and short selling is disabled.", "effective_quantity": null, "effective_notional": null, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-20T02:42:46.829381+00:00"}, {"message_id": "local-notification-22", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.079296, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-20T02:17:28.537765+00:00"}, {"message_id": "notify-test-tsla-20260618-195710", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.04, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-19T00:57:11.267440+00:00"}, {"message_id": "notify-test-20260618-195326", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.1, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-19T00:53:27.294019+00:00"}, {"message_id": "local-notification-40735", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.079296, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-19T00:33:56.665036+00:00"}, {"message_id": "local-bridge-test-20260618-1", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.025, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-19T00:10:29.830293+00:00"}, {"message_id": "bridge-test-20260618-1", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.05, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-19T00:04:27.825437+00:00"}, {"message_id": "local-notification-19", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.079296, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-18T21:47:56.722268+00:00"}, {"message_id": "manual-vps-dm-test-20260618-3", "accepted": 1, "reason": "Accepted.", "effective_quantity": 0.079296, "effective_notional": 10.0, "order_type": "market", "time_in_force": "day", "created_at": "2026-06-18T20:31:05.448322+00:00"}], "orders": [{"broker_order_id": "paper-f67832cb-9ab1-49c3-8c9b-a4083f3791c9", "client_order_id": "discord-d50b39175e8dbfc8", "source_message_id": "local-notification-25", "symbol": "SHOP", "side": "buy", "quantity": 0.142857, "filled_quantity": 0.142857, "average_fill_price": 70.0, "status": "filled", "created_at": "2026-06-20T18:47:56.172864+00:00", "updated_at": "2026-06-20T18:47:56.172881+00:00"}, {"broker_order_id": "paper-7c37f84b-02a0-467c-b2a5-ca0b586c7c97", "client_order_id": "discord-5c694259f98b58b1", "source_message_id": "local-notification-22", "symbol": "HUT", "side": "buy", "quantity": 0.079296, "filled_quantity": 0.079296, "average_fill_price": 126.11, "status": "filled", "created_at": "2026-06-20T02:17:28.564095+00:00", "updated_at": "2026-06-20T02:17:28.564109+00:00"}, {"broker_order_id": "paper-54bd55bc-b64d-48ae-b243-07478561b16d", "client_order_id": "discord-08262ccecb016818", "source_message_id": "notify-test-tsla-20260618-195710", "symbol": "TSLA", "side": "buy", "quantity": 0.04, "filled_quantity": 0.04, "average_fill_price": 250.0, "status": "filled", "created_at": "2026-06-19T00:57:11.274081+00:00", "updated_at": "2026-06-19T00:57:11.274092+00:00"}, {"broker_order_id": "paper-23286cd9-e3e4-4851-8859-c2ed4a426f95", "client_order_id": "discord-2b17bf23e4b17774", "source_message_id": "notify-test-20260618-195326", "symbol": "AMD", "side": "buy", "quantity": 0.1, "filled_quantity": 0.1, "average_fill_price": 100.0, "status": "filled", "created_at": "2026-06-19T00:53:27.300170+00:00", "updated_at": "2026-06-19T00:53:27.300178+00:00"}, {"broker_order_id": "paper-dab470e2-abde-40ce-a791-5f74414542ea", "client_order_id": "discord-2804fd61b957a006", "source_message_id": "local-notification-40735", "symbol": "HUT", "side": "buy", "quantity": 0.079296, "filled_quantity": 0.079296, "average_fill_price": 126.11, "status": "filled", "created_at": "2026-06-19T00:33:56.672217+00:00", "updated_at": "2026-06-19T00:33:56.672224+00:00"}, {"broker_order_id": "paper-61407a2d-5d9d-4c68-b6a9-ac72ce2bc0fe", "client_order_id": "discord-87510cd57490814a", "source_message_id": "local-bridge-test-20260618-1", "symbol": "MSFT", "side": "buy", "quantity": 0.025, "filled_quantity": 0.025, "average_fill_price": 400.0, "status": "filled", "created_at": "2026-06-19T00:10:29.838013+00:00", "updated_at": "2026-06-19T00:10:29.838024+00:00"}, {"broker_order_id": "paper-1d9678a5-0b49-4ef2-b170-4a464d948e26", "client_order_id": "discord-96aaf7c85b71819d", "source_message_id": "bridge-test-20260618-1", "symbol": "AAPL", "side": "buy", "quantity": 0.05, "filled_quantity": 0.05, "average_fill_price": 200.0, "status": "filled", "created_at": "2026-06-19T00:04:27.832643+00:00", "updated_at": "2026-06-19T00:04:27.832651+00:00"}, {"broker_order_id": "paper-f8a1bcea-0e73-474f-ad4f-d3899bce8156", "client_order_id": "discord-4df29b96e6e62187", "source_message_id": "local-notification-19", "symbol": "HUT", "side": "buy", "quantity": 0.079296, "filled_quantity": 0.079296, "average_fill_price": 126.11, "status": "filled", "created_at": "2026-06-18T21:47:56.728681+00:00", "updated_at": "2026-06-18T21:47:56.728691+00:00"}, {"broker_order_id": "paper-8059a3e4-2537-4315-9b75-f205bff5203a", "client_order_id": "discord-c518810cb81193aa", "source_message_id": "manual-vps-dm-test-20260618-3", "symbol": "HUT", "side": "buy", "quantity": 0.079296, "filled_quantity": 0.079296, "average_fill_price": 126.11, "status": "filled", "created_at": "2026-06-18T20:31:05.454089+00:00", "updated_at": "2026-06-18T20:31:05.454098+00:00"}], "positions": [{"symbol": "AAPL", "quantity": 0.05, "average_price": 200.0, "updated_at": "2026-06-19T00:04:27.832651+00:00"}, {"symbol": "AMD", "quantity": 0.1, "average_price": 100.0, "updated_at": "2026-06-19T00:53:27.300178+00:00"}, {"symbol": "HUT", "quantity": 0.317184, "average_price": 126.11, "updated_at": "2026-06-20T02:17:28.564109+00:00"}, {"symbol": "MSFT", "quantity": 0.025, "average_price": 400.0, "updated_at": "2026-06-19T00:10:29.838024+00:00"}, {"symbol": "SHOP", "quantity": 0.142857, "average_price": 70.0, "updated_at": "2026-06-20T18:47:56.172881+00:00"}, {"symbol": "TSLA", "quantity": 0.04, "average_price": 250.0, "updated_at": "2026-06-19T00:57:11.274092+00:00"}], "outcomes": [], "events": [{"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 32] The process cannot access the file because it is being used by another process: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:49:41.498374+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 32] The process cannot access the file because it is being used by another process: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:48:17.908117+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[Errno 13] Permission denied: '.tradebot_health.json.tmp'\"}", "created_at": "2026-06-22T00:47:37.520281+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[Errno 13] Permission denied: '.tradebot_health.json.tmp'\"}", "created_at": "2026-06-22T00:42:04.967379+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 5] Access is denied: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:41:52.658304+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-22T00:39:52.670146+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 32] The process cannot access the file because it is being used by another process: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:34:10.766792+00:00"}, {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 32] The process cannot access the file because it is being used by another process: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:07:45.070119+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-21T22:41:32.002494+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-21T22:13:13.277930+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-21T22:08:42.582557+00:00"}, {"level": "info", "message": "Notification watcher stopped.", "context_json": "{}", "created_at": "2026-06-21T22:08:42.557326+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-21T22:07:59.429818+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T19:58:48.038164+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T19:57:45.522759+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T19:10:33.320652+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T18:51:59.018010+00:00"}, {"level": "info", "message": "Order notification sent.", "context_json": "{\"message_id\": \"local-notification-25\", \"symbol\": \"SHOP\"}", "created_at": "2026-06-20T18:47:56.629935+00:00"}, {"level": "info", "message": "Parser rejection notification sent.", "context_json": "{\"message_id\": \"codex-parser-reject-1781927380\", \"reason\": \"No supported stock trade signal could be parsed.\"}", "created_at": "2026-06-20T03:49:41.527415+00:00"}, {"level": "warning", "message": "Alert candidate rejected by parser.", "context_json": "{\"message_id\": \"codex-parser-reject-1781927380\", \"reason\": \"No supported stock trade signal could be parsed.\", \"content\": \"SELL immediately\"}", "created_at": "2026-06-20T03:49:41.173117+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T03:48:31.302526+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-20T02:41:04.508235+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-19T22:25:15.227770+00:00"}, {"level": "warning", "message": "Order notification failed.", "context_json": "{\"message_id\": \"notify-test-20260618-195326\", \"symbol\": \"AMD\", \"error\": \"Discord webhook returned 403: error code: 1010\"}", "created_at": "2026-06-19T00:53:27.426914+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-18T21:47:27.678628+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-18T20:13:13.670915+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-18T20:09:05.954939+00:00"}, {"level": "info", "message": "Notification watcher started.", "context_json": "{}", "created_at": "2026-06-18T19:07:18.666659+00:00"}]}, "health": {"status": "ok", "notifications_running": true, "broker_ready": true, "recent_error_count": 0, "orders_today": 0, "daily_order_capacity": 10, "last_event": {"level": "warning", "message": "Health file write failed.", "context_json": "{\"path\": \".tradebot_health.json\", \"error\": \"[WinError 32] The process cannot access the file because it is being used by another process: '.tradebot_health.json.tmp' -> '.tradebot_health.json'\"}", "created_at": "2026-06-22T00:49:41.498374+00:00"}, "discord_process_running": true, "wpn_services": [{"Name": "WpnUserService_1eaf96", "Status": 4, "StartType": 2}], "platform_probe_error": null, "last_raw_discord_toast_utc": "2026-06-22T00:44:47.828802+00:00", "last_raw_discord_toast": {"notification_order": 18, "notification_id": "39", "app_id": "com.squirrel.Discord.Discord", "title": "gram", "body": "gram started a call.", "content": "gram gram started a call.", "arrival_time": "2026-06-22T00:44:47.828802+00:00"}, "canary": {"status": "disabled", "pattern": "", "max_age_minutes": 0.0, "last_seen_utc": null}, "last_webhook_status": {"status": "ok", "message": "Order notification sent.", "created_at": "2026-06-20T18:47:56.629935+00:00", "context": "{\"message_id\": \"local-notification-25\", \"symbol\": \"SHOP\"}"}}, "settings": {"broker": "paper", "trading_enabled": true, "live_trading_ack": false, "webull_configured": false, "webull_place_orders": false, "robinhood_configured": false, "robinhood_place_orders": false, "notifications_running": true, "kill_switch": false, "min_parse_confidence": 0.75, "max_notional_per_trade": 10.0, "max_qty_per_trade": 1.0, "max_daily_orders": 10, "default_paper_price": 100.0, "allow_short_selling": false, "database": "tradebot.db", "notification_app_patterns": ["Discord"], "notification_include_patterns": ["paper-test"], "notification_exclude_patterns": ["Tradebot order placed|Tradebot alert rejected"], "discord_notify_configured": true, "dashboard_auto_start_notifications": true, "health_file": ".tradebot_health.json", "notification_canary_pattern": "", "notification_canary_max_age_minutes": 0.0}}