◆ kanex-ai
Phoebe Apr 22 1:42 AM
Re: AVoIP solution request
AVoIP solution quotation request from i-Control vendor.
vendor
Kelvin Yan Apr 21 11:53 PM
Welcome to Sydnee, Sophie · 欢迎加入 Sydnee
Kelvin Yan: Welcome to Sydnee, Sophie · 欢迎加入 Sydnee
employee high
Sydnee Agent (AI) Apr 21 5:30 PM
Sydnee algo daily — dev $-2,216 · prod $+0 · 6d window
Sydnee Agent (AI): Sydnee algo daily — dev $-2,216 · prod $+0 · 6d window
employee high
Bindu B Apr 21 4:51 PM
Microsoft 365 Data Protection - TrackingID#2604170040009284
Bindu B: Microsoft 365 Data Protection - TrackingID#2604170040009284
vendor
Christina Knudsen Apr 21 1:00 PM
Re: Need PO for Thailand order
Blocked sender: Christina Knudsen
employee high
Mail Delivery System Apr 21 12:55 PM
Mail delivery failed [New KanexPro Portal PO 5109]
Mail delivery failure: PO 5109 to [email protected] bounced (recipient doesn't exist).
vendor
christina.knudsen Apr 21 12:54 PM
New KanexPro PO 5109
Blocked sender: christina.knudsen
employee high
Christina Knudsen Apr 21 12:50 PM
Re: Need PO for Thailand order
Blocked sender: Christina Knudsen
employee high
Aarti Gupta Apr 21 10:46 AM
RE: CBL-AOCUSBC-15M | qty 3 in stock?
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 21 10:27 AM
SP-1X8HD150M 4K60 1×8 HDMI Distribution Amplifier over CAT6 — 150m/492ft
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 21 10:13 AM
document with the project details
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 21 9:57 AM
EXT-AVIPH264RX NetworkAV™ H.264 HDMI Receiver over IP with PoE & RS-232
Blocked sender: Aarti Gupta
employee high
Lauren Mullee Apr 21 9:52 AM
Automatic reply: Irving-Yan case: Meet and Confer letter and proposal for next steps.
Lauren Mullee: Automatic reply: Irving-Yan case: Meet and Confer letter and
legal-divorce urgent
Aarti Gupta Apr 21 9:51 AM
RE: EXT-AVIPH264RX NetworkAV™ H.264 HDMI Receiver over IP with PoE & RS-232
Blocked sender: Aarti Gupta
employee high
David Biswas Apr 21 5:41 AM
RE: EXT-AVIPH264RX NetworkAV™ H.264 HDMI Receiver over IP with PoE & RS-232
David Biswas: RE: EXT-AVIPH264RX NetworkAV™ H.264 HDMI Receiver over IP wi
employee high
Sydnee Agent (AI) Apr 21 4:35 AM
Sydnee nightly — exit_flow audit 2026-04-21 — 0P0 2P1 1R
Sydnee Agent (AI): Sydnee nightly — exit_flow audit 2026-04-21 — 0P0 2P1 1R
employee high
Niki-HDCVT Apr 21 12:45 AM
Re: Need PO for Thailand order
Vendor requesting PO release and shipping instructions for Thailand order.
vendor high
Niki-HDCVT Apr 20 6:19 PM
Re: FW: Kanexpro outstanding payment
HDCVT payment follow-up: $449K+ invoices overdue since Feb–Apr.
vendor high
GitHub Apr 20 4:13 PM
[GitHub] Your personal access token (classic) is about to expire
GitHub: [GitHub] Your personal access token (classic) is about to ex
vendor
Railway Corporation Apr 20 4:01 PM
Your receipt from Railway Corporation #2318-2483
Railway Corporation: Your receipt from Railway Corporation #2318-2483
financial
Teddy Kim Apr 20 3:56 PM
KANEXPRO DROPSHIP PO# LV042026T3
Dropship PO LV042026T3 from LaserVision with FedEx shipping instructions.
vendor high
Rachael Skoug Apr 20 3:13 PM
Homework 04/20
School homework assignment: book club reading, memorize speech, upload costume photo.
family
Railway Apr 20 2:41 PM
Trial Plan Alert
Railway trial plan expiring in 7 days; upgrade required to prevent service pause.
vendor
Fullerton School District Apr 20 2:01 PM
Fullerton School District Celebrates Maple Elementary’s 2026 Green Ribbon Recognition
Maple Elementary School Green Ribbon Recognition announcement from Fullerton School District.
family
Kanex Ai1 Apr 20 1:16 PM
RE: Undeliverable: FW: Cannot add domain sydneeinc.com (and iolocapita... - TrackingID#2604170040009284
Kanex Ai1: RE: Undeliverable: FW: Cannot add domain sydneeinc.com (and
employee high
Denise Heinz Apr 20 12:19 PM
Re: Irving- Yan case: Meet and Confer letter and proposal for next steps.
Denise Heinz: Re: Irving- Yan case: Meet and Confer letter and proposal fo
legal-divorce urgent
TChristina Knudsen Apr 20 12:14 PM
[Teams meeting] Inventory/Shipping Team Weekly
Inventory/shipping team weekly: HDCVT SKUs ready to ship.
employee
Anthony Patino Apr 20 11:58 AM
Re: [KanexPro Store] Order #1208 placed by Jay Carnevale
Anthony Patino: Re: [KanexPro Store] Order #1208 placed by Jay Carnevale
employee high
iCloud Apr 20 11:42 AM
Hide My Email was used with cheaterscanner.com
iCloud: Hide My Email was used with cheaterscanner.com
vendor
Aarti Gupta Apr 20 11:34 AM
RE: Dealer Register Request
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 20 11:33 AM
Inquiry Lance Cain
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 20 11:30 AM
RE: [KanexPro Store] Order #1206 placed by Jose Cabrera
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 20 11:15 AM
RE: [KanexPro Store] Order #1208 placed by Jay Carnevale
Blocked sender: Aarti Gupta
employee high
Aarti Gupta Apr 20 11:14 AM
RE: Payout for Apr 20, 2026 ($2,885.63 USD)
Blocked sender: Aarti Gupta
employee high
Tesla Apr 20 10:24 AM
Tesla Service Appointment Confirmation
Tesla service appointment confirmed for April 28 at 11:30 AM.
personal
[email protected] Apr 20 10:05 AM
Get Ready To Join
Invitation to join Lifestyle Medicine Mastermind speaking event today at 2:30 PM EST.
personal low
Prasad Ramakrishnan Apr 20 10:00 AM
Re: Order #1205 confirmed
Customer inquiry about delivery date for order #1205.
vendor
Uber for Business Apr 20 9:54 AM
Your March travel report for KanexPro is ready
March travel report from Uber for Business ready for review.
vendor low
Aarti Gupta Apr 20 9:30 AM
EXT-AVIPH264RX NetworkAV™ H.264 HDMI Receiver over IP with PoE & RS-232
Blocked sender: Aarti Gupta
employee high
[email protected] Apr 20 8:49 AM
Notice of Invoices that have been approved over past week
B&H Photo approved invoice notification for reconciliation and records.
vendor
TAnthony Patino Apr 20 8:20 AM
[Teams oneOnOne] (Teams DM)
Anthony Patino reports issues with i.kanex infrastructure; needs assistance.
employee high
Network Solutions Apr 20 8:18 AM
Techincal, don’t miss your monthly account review
Spoofed Network Solutions domain impersonating legitimate account review.
newsletter low
Meta for Business Apr 20 8:07 AM
Your ad was approved
Meta ad approval notification for KanexPro business account.
vendor
TAarti Gupta Apr 20 7:47 AM
[Teams oneOnOne] (Teams DM)
Aarti Gupta reports error opening Kanex system, needs technical support.
employee high
Liangbo Li Apr 20 6:58 AM
Re: February Expenses
Liangbo Li: Re: February Expenses
employee high
Liangbo Li Apr 20 6:57 AM
Re: SP-HDPOC1X8
Liangbo Li: Re: SP-HDPOC1X8
employee high
Apeksha Arun Shetvernekar Apr 20 6:35 AM
Cannot add domain sydneeinc.com (and iolocapita... - TrackingID#2604170040009284
Apeksha Arun Shetvernekar: Cannot add domain sydneeinc.com (and iolocapita... - Trackin
vendor
Intuit Developer Group Apr 20 6:07 AM
Intuit Critical Alert: Reminder to migrate to the new webhooks payload
Intuit webhooks migration required by May 15, 2026 deadline.
vendor high
Intuit Developer Group Apr 20 6:06 AM
Intuit Critical Alert: Reminder to migrate to the new webhooks payload
Intuit webhooks migration deadline May 15 — QB Online integration required.
vendor high
Newegg Apr 20 5:30 AM
Announcement: 2nd Notice 🚧 CEC - Certified Model Number Requirement
Newegg marketplace compliance notice on CEC certification requirements for gaming products.
vendor

Sydnee nightly — entry_flow audit 2026-04-20 — 0P0 3P1 2R

Sydnee Agent (AI) <[email protected]>
To: Kelvin Yan <[email protected]>
Monday Apr 20, 2026 · 4:20 AM PT · in [email protected]
AI verdict  employee high · confidence: high · by self-identity
“Sydnee Agent (AI): Sydnee nightly — entry_flow audit 2026-04-20 — 0P0 3P1 2R”
Reasoning: rescued by cleanup_employee_spam — internal sender / protected domain
Sydnee nightly — entry_flow audit — 2026-04-20 P0 findings: 0 P1 findings: 3 Risks: 2 - Area: Entry Flow (Monday theme — signal detection, time gates, RV gate, sizing, pullback path) - Files scanned: `bot.py` (13 211 lines), `docs/strategy_decisions.md`, `CLAUDE.md` - Branch: `dev` (ccf1e9c) - Bugs found (P0 / P1): 0 / 3 - Risks noted: 2 --- Full report (dev branch): https://github.com/kanex1/sydnee.signals/blob/dev/docs/audit_2026-04-20_entry_flow.md Reply FROM [email protected] to [email protected] to request fixes, e.g.: "code_task on sydnee-signals-dev: apply fix for the P0 about RVOL threshold in bot.py" Sydnee Agent will propose + you APPROVE (or plain 'approve') + auto-push to dev. --- Full audit below (first 12 KB) --- # Nightly Audit 2026-04-20 — ENTRY FLOW ## Summary - Area: Entry Flow (Monday theme — signal detection, time gates, RV gate, sizing, pullback path) - Files scanned: `bot.py` (13 211 lines), `docs/strategy_decisions.md`, `CLAUDE.md` - Branch: `dev` (ccf1e9c) - Bugs found (P0 / P1): 0 / 3 - Risks noted: 2 --- ## Findings ### BUG [P1]: Overnight gap gate bypassed by pending pullback **File:** `bot.py:4034–4091` (`_check_pullback`), vs gate at `bot.py:3589–3595` **Evidence:** The overnight-gap gate (00:50–01:00 PT / 3:50–4:00 AM ET) lives exclusively in `_evaluate_symbol` and blocks signal creation: ```python # bot.py:3589-3595 in_overnight_gap = 3 * 60 + 50 <= t_min < 4 * 60 if in_overnight_gap: self._log_activity(sym, "CUTOFF: ... blocked 3:50-4:00 AM ET ...") return ``` `_check_pullback` (called every 1m bar from the bar handler, line 2195–2196) has **no time-gate check**. It fires unconditionally when `ss.pending_pullback` is set. Attack path: 1. `rsi_extreme` signal fires at 00:48 PT — `_evaluate_symbol` gate passes (gap not yet started), `ss.pending_pullback` is set. 2. At 00:50 PT the gap opens. `_evaluate_symbol` now blocks new signals. 3. 1m bar ticks at 00:51 PT → `_check_pullback` fires → RSI / VWAP condition met **or** 3-min `PULLBACK_TIMEOUT_SEC` triggers → deferred to `_deferred_trades` → `_open_trade` (no time gate) → trade opens during the gap. The same bypass applies to the RTH-open 30-min gate (`in_open_30`, 9:30–10:00 AM ET / 06:30–07:00 PT) for any signal that straddles the boundary, though BXt and divergence are already blocked off-hours so only `rsi_extreme` is at risk. **Impact:** `rsi_extreme` entries can open during the IBKR overnight-session closing window — a deliberately thin tape with wide spreads and increased slippage risk. One realistic scenario per night. **Fix:** Add a time-gate at the top of `_check_pullback`: ```python now_et = datetime.now(ET) t_min_pb = now_et.hour * 60 + now_et.minute in_gap = 3 * 60 + 50 <= t_min_pb < 4 * 60 if in_gap: # Don't cancel the pending — let it survive to fire right after gap closes return ``` --- ### BUG [P1]: Stale `midday_bxt` monitor counter — gate never implemented, counter always 0 **File:** `bot.py:9893` and `bot.py:10194` (monitor SQL / regex map) **Evidence:** The monitor API tracks a `midday_bxt` bucket that counts activity-log messages matching `MIDDAY FILTER|MIDDAY BLOCK`: ```python # bot.py:9893 (SQL) WHEN message ~ 'MIDDAY FILTER|MIDDAY BLOCK' THEN 'midday_bxt' # bot.py:10194 (regex fallback) "midday_bxt": r'MIDDAY FILTER|MIDDAY BLOCK', ``` A grep of the entire file for those strings shows **zero matching `_log_activity` calls** — no code path emits `MIDDAY FILTER` or `MIDDAY BLOCK`. `CLAUDE.md` documents a BXt block from 08:30–10:30 PT ("midday low-conviction window"), but `strategy_decisions.md` (the single source of truth) says "BXt/div restricted to 07:00–12:00 PT" — no midday sub-block. The actual time gate in code (bot.py:3589–3604) likewise has no 08:30–10:30 BXt window. The counter was added in anticipation of a gate that was never built. **Impact:** `/api/monitor` `midday_bxt` is permanently 0. Any ops or backtesting tooling that checks this field to confirm BXt midday filtering is working will silently see a false-zero. If the gate is ever needed and added, the SQL pattern is ready — but right now it's dead weight with misleading semantics. **Fix (two options — pick one):** - *Delete* the `midday_bxt` counter entirely (SQL + regex) until the gate is actually implemented. - *Implement* the 08:30–10:30 PT BXt block in the time-gate section (bot.py:3589–3604) and emit the expected log message, resolving the CLAUDE.md/code discrepancy at the same time. --- ### BUG [P1]: RV gate `fail-open` comment contradicts actual fail-closed behavior **File:** `bot.py:3864` (comment) vs `bot.py:3888–3890` and `bot.py:3914–3916` **Evidence:** ```python # bot.py:3864 — comment claims fail-open # POLYGON_API_KEY presence only; fail-open if unavailable. # bot.py:3888-3890 — actual behavior: fail-CLOSED on None rv if rv is None: self._log_activity(sym, f"… RV unavailable …") continue # ← skips entry # bot.py:3914-3916 — fail-CLOSED on exception except Exception as e: logger.warning("RV check failed … — blocking entry (fail-closed)", ...) continue # ← skips entry ``` `strategy_decisions.md` (2026-04-14 RV gate overhaul) explicitly says "fail-closed on `rv is None` for all triggers" — confirming the code behaviour is intentional. The `logger.warning` text even says `fail-closed`. The module-level comment at 3864 was never updated from the original fail-open design. **Impact:** Low probability today — POLYGON_API_KEY is set on dev. Risk is on future maintenance: a developer reading the comment could "fix" the `continue` to a pass (restoring fail-open), allowing zero-RV blowoff trades to leak through and recreating the AVGO/NET post-market losses from 2026-04-14. **Fix:** Change bot.py:3864 comment: ```python # fail-closed when POLYGON_API_KEY is set: rv is None or exception → block entry. # fail-open when key is absent (no Polygon subscription configured). ``` --- ### RISK: CLAUDE.md entry-gate table contradicts strategy_decisions.md on BXt windows **File:** `CLAUDE.md` (Entry Time Blockers table) vs `docs/strategy_decisions.md` (2026-04-14 time gates entry) **Evidence:** `CLAUDE.md` states: ``` | 08:30 – 10:30 | BXt blocked (midday low-conviction window) | BXt only | Net effect: BXt effectively runs 06:30–08:30 and 10:30–12:00 PT. ``` `strategy_decisions.md` states: ``` 07:00-12:00 PT: all triggers allowed BXt/div restricted to 07:00-12:00 PT ``` The code (bot.py:3589–3604) matches `strategy_decisions.md` — BXt is allowed the full 07:00–12:00 PT window; there is no 08:30–10:30 sub-block. **Risk:** Kelvin or a future dev reads CLAUDE.md and expects BXt to be filtered midday. Discrepancy could cause confusion during real-money go-live review (2026-04-29) or when debugging unexpected midday BXt trades. The stale `midday_bxt` counter (P1 above) amplifies this risk — it looks like the gate was wired but just isn't firing. --- ### RISK: `_rsi_ext_pending_dir` and peak-confirm state not persisted across restarts **File:** `bot.py:3468` (`_rsi_ext_pending_dir`), `bot.py:2384–2511` (peak-confirm machine) **Evidence:** Both the 1m BXt bias pending direction and the peak-confirm tracking state (`_peak_tracking_dir`, `_peak_rsi`, `_peak_obv`, `_peak_bar_ts`, etc.) live only in `SymbolState` in-memory attributes. A container restart mid-RTH silently drops all in-flight state: - An armed peak-confirm (RSI reached 75+, tracking for OBV reversal) is lost → next signal requires a fresh cycle, missing the fire window. - A pending RSI extreme direction (`_rsi_ext_pending_dir = 1`) is lost → next signal bar enters at full size instead of the intended 50% micro_scale. **Risk:** The `OBV_BE_STOP` datetime.fromisoformat bug (fixed commit `782e3b6`, noted in strategy_decisions.md) showed that silent no-ops can run undetected for hours. A restart during a live peak-confirm tracking session would leave no trace in logs — no error, no "state reset" message. With real-money go-live on 2026-05-01, container restarts during RTH carry higher consequence. --- ### OK (checked, working or recently fixed): - **`total_scale` applied in `_open_trade`** (bot.py:4517–4519): fix from commit `a6be962` confirmed. All multipliers (sentiment, bias, regime, div, signal-weight, late-session, micro) flow through `total_scale` and are applied via `shares = int(shares * total_scale)`. - **RV gate fail-closed on `rv is None`**: behavior is correct (entry blocked); only the comment is wrong (see P1 above). - **RV blowoff ceiling**: `rv_10m > 5.0` for rsi_extreme at bot.py:3909. Config drift audit (2026-04-19) noted CLAUDE.md still shows 2.0x — not re-filed. - **Off-hours gate** (outside 06:30–13:00 PT): bot.py:3602 correctly blocks BXt/div, allows rsi_extreme. - **RTH opening-30 gate** (06:30–07:00 PT): bot.py:3596 blocks non-rsi_extreme. - **Close-hour gate** (12:00–13:00 PT): bot.py:3599 blocks non-rsi_extreme. - **Overnight gap gate** (00:50–01:00 PT): bot.py:3593 — works for new signals; pullback bypass is the P1 bug above. - **Session-aware RSI thresholds** (`_rsi_os`: 20 RTH / 15 off-hours; `_rsi_ob`: 85): bot.py:3465–3467 ✓. - **1m BXt bias gate** (pending + 50% size on second consecutive adverse bar): bot.py:3531–3552 ✓. - **Size caps**: 0.10× close-hour, 0.25× off-hours: bot.py:3735–3741 ✓. - **Pullback dedup** (skip if pullback already pending): bot.py:3843–3845 ✓. - **OBV_BE_STOP `entry_time` datetime parse fix** (commit `782e3b6`): no recurrence of `'str' object has no attribute 'tzinfo'` expected. - **RSI_TRIM_PROFIT_GUARD**: prevents stop from moving above current price on a losing position: bot.py:2927 ✓. - **`_pending_entries` dedup / enter-strongest-only**: bot.py:3829–3837 ✓. - **FLAT_EXIT, HOLD_CAP_MIN, OBV_LOSS_EXIT**: feature-flagged, checked for env var presence — no issues with flag wiring. - **RV gate exception path logs correctly**: bot.py:3915 emits `fail-closed` in warning — monitoring can grep for it.