# IFVG Desk 1.0.1 — second review and release verification

> **v1.1.0 and v1.1.1 (2026-09-06)** are display-only passes on top of this verified engine: `tools/visuals.pinefrag` changed, `tools/core.pinefrag` and `tools/strategy.pinefrag` did not. Its own checks are in [display-v1.1.md](display-v1.1.md). The engine evidence below still applies.

Reviewed 6 September 2026. **Use 1.0.1 for handoff; it supersedes 1.0.0.** The second pass found defects missed by the first review, corrected them, and checked the revised source on TradingView. No known delivery-blocking finding from this bounded review remains. This is not a claim that every possible price feed, input combination or market path has been proved correct.

สรุป: แก้ปัญหาช่วงตลาดรวมข้ามวัน ความแม่นยำของจำนวนสัญญา/JSON การแสดงแผนย้อนหลังและตัวเลขบนหน้าจอ รวมถึงเครื่องมือสร้างไฟล์ส่งมอบ ตรวจซ้ำด้วยชุดทดสอบ 74 ข้อ, Pine probe จริง 10 จุด และ Strategy Tester 11 กรณี รายละเอียดและข้อจำกัดอยู่ด้านล่าง

## Findings and corrections

| Area | Finding | Resolution and evidence |
|---|---|---|
| Session range | With custom 09:30–16:00 on an RTH equity chart, adjacent loaded bars on different days were both inside the session. The range could continue across several days. | A session has a dated New York start anchor. It resets at a new session instance and preserves an overnight session across midnight. On actual QQQ 1m, the old retained range was 734.58–702.70; the corrected current-session range was 721.85–716.57. Daily-feed OHLC was 721.86–716.56, a separate aggregation with a one-cent difference; it was not treated as identical intraday data. |
| Quantity threshold | Binary subtraction could turn an exact quantity budget into one fewer unit after floor. | Shared distance/quantity helpers remove only machine-level noise and recheck the budget. Actual Pine reproduced old quantity 9,999 versus corrected 10,000 for a one-cent stop and budget 100. A real budget shortfall still floors to 9,999. |
| Sub-tick feed prices | Blindly rounding all risk distances to integer ticks would distort genuine fractional-tick closes present in the feed. | Preserve real sub-tick distances; normalize only numerical noise. Actual Pine retained the 0.015 distance between 100.11 and 100.125 and returned quantity 6,666. Candidate evaluation and accepted plans use the same plan values. |
| JSON prices | Eight decimal places can collapse distinct tiny prices; formatting every price to mintick would also round a real sub-tick entry. | Entry serialization keeps up to 16 fractional digits and a leading zero. Stop/target use their grid-rounded mintick format; quantity keeps up to eight places. Actual Pine preserved entry 100.125, tiny entry 0.000000009, and quantity 0.00002. |
| Completed plan history | An active plan consumed one place in the requested earlier-plan count. | Completed history has its own count. A real BTC 1m chart showed the active plan plus all three requested completed plans. |
| Small quantity text | Four-place display formatting could show a valid small quantity as zero. | Display up to eight decimal places. This prevents quantities at the minimum supported step from appearing as zero; it is still rounded display text. |
| Target explanation | The Co-Pilot repeated requested R even when outward tick rounding increased actual planned R. | Its active-plan text derives R from the accepted entry, target and initial price risk. |
| Label placement | An unsorted upward collision scan could move a new label into a label already checked. | Sort occupied levels before the upward scan. The explicit `[3, 1.5]` collision fixture now maintains spacing. This addresses that algorithmic collision; it does not promise collision-free text at every chart scale. |
| Off panels | Cleared tables retained small frame/background remnants. | Disabled or unused tables have transparent styles and zero frame width. Actual off-panel captures show no remnants. |
| Seconds labels | A seconds chart could display a minute suffix after its S suffix. | Preserve S alongside D/W/M. This is a formatting correction; seconds-market behavior was not comprehensively replayed. |
| Factor explanation | A tooltip described current context as if frozen at entry. | The tooltip states that factors describe the current closed analysis candle. Entry levels remain fixed while context can change. |
| Scenario metadata | Scenario generation inherited custom declaration costs while reporting fixed costs. | Enforce every declared cost, slippage, margin and capital field. New output goes to `build/scenarios-generated`; historical measured sources remain untouched. |
| Standalone packaging | The product's package command required a sibling website handoff, causing a standalone copy to fail after side effects. | Standalone packaging is self-contained; website handoff is optional when its generator exists. Isolated execution tests cover this path. |
| Delivery integrity | Historical scenario metadata contained local absolute output paths; reruns did not reject stale unlisted files. | Metadata paths are relative. Packaging rejects stale or symbolic assets before writing. ZIP verification checks every entry, including handoff wrapper assets. This hardening does not imply a private-file leak was found in the original ZIP. |
| Complete assembly | A missing renderer could silently produce a placeholder plot instead of the full product. | Visuals are now required. An isolated regression confirms assembly fails before touching either prepared output when that fragment is missing. |

Detailed independent reviews: [engine](review2-engine.md), [renderer](review2-visuals.md), [delivery](review2-delivery.md).

## Verification actually completed

| Evidence | Observed result | Scope |
|---|---|---|
| Final server compiler | Both full product files: 0 errors, 0 warnings. Numeric probe also compiles without errors or warnings. | Real TradingView compiler for the recorded source hashes, not a local language approximation. |
| Preflight and static audit | Both preflights: 0 findings. Strategy static audit: 0 findings. | Additional structural checks only. |
| Local automated suite | 74/74 passed: original 40, plus 16 engine, 10 display and 8 delivery regressions. | Independent specifications, Pine source guards and executable JavaScript delivery-tool tests. These are not 74 Pine execution tests. |
| Actual Pine helper probe | All 10 table checks passed, including the feed precondition. | Exact extracted production helpers executed on QQQ with mintick 0.01 and point value 1. No complete broker or strategy claim follows from this helper probe. |
| Actual session regression | QQQ custom RTH range reset correctly after the source update. | Demonstrated missing-outside-bar case; overnight, calendar and DST cases additionally have independent specification fixtures. |
| Active-plan runtime | BTCUSDT 1m displayed one active plan plus three completed plans and full quantity text. | Session gate off, quantity step 0.000001, daily cap 100 and timeout 5000 to exercise active-state presentation. These are QA overrides, not recommended trading settings. |
| Forming-bar spot check | Three samples over about seven seconds had byte-identical extracted tables while the forming candle's close and volume changed. | Narrow live-tick observation on one minute; not exhaustive repaint or long forward validation. |
| Historical recalculation | Gold 5m → 3m → 5m returned identical complete tables and 17 text/price labels. | Same closed feed, same source/settings. Not an app restart, all historical events or intrabar replay. |
| Invalid configurations | Equal chart/context timeframe refused; HTF gate with all lanes off showed an actionable runtime error. Valid settings recovered normally. | Actual chart checks, in addition to startup source guards. |
| Strategy regression grid | All 11 cases rerun. Date label, capital, net PnL, drawdown, positive/count and profit-factor key-stat text matched the original grid after whitespace normalization. | Same short historical samples and costs. Not held-out validation or a trade-by-trade fill reconciliation. |

Evidence: [current QA record](../tests/qa-evidence.json), [compiler record](review2-compile.json), [actual runtime and probe output](review2-runtime.json), [11 current broker cases and comparisons](review2-broker-measurements.json). The [Pine probe](../tests/pine/review2-probe.pine) is a QA harness, not the product. It is generated from exact canonical helper text by `tools/build-probe.mjs`.

The current ETF measurement source is preserved in [evidence/etf-baseline-v1.0.1.pine](evidence/etf-baseline-v1.0.1.pine), SHA-256 `0fac92b495c6fa9448ddd6e2fd338c1387eb61041d3df7fa0f7c347a3c785b62`. Named factors were changed through input overrides and reset before each case. The factory companion was used for MNQ. Full measurement conditions remain in [measurements.md](measurements.md), whose original results and source snapshots are retained as v1.0.0 history.

## Source identity and handoff

- Indicator: `140addee252f76992056f624f96c9cee8fec63bac3fb0fd8ad2771535e671017`
- Strategy: `f276f006c8a04be038d14c22be6e592fb32bd24389023d5b0888b24b4389f4e8`
- Shared engine: `72d691273314f7165a58b1f3a9634682ab58a7d67c426cb188e5c5274d65b257`

The release commands generated per-file manifests, verified product/handoff copies and the TypeScript source round trip, and read back every ZIP entry. The actual Windows PowerShell 5.1 archive run exposed a missing .NET compression-assembly load that syntax checks did not catch; both required assemblies are now explicitly loaded. The corrected run verified all 77 product ZIP entries and all 88 handoff ZIP entries, including 76 manifested product files. The delivered `dist/archive-integrity.json` records the final archive results. Original v1.0.0 ZIPs remain historical artifacts; use the versioned 1.0.1 downloads.

Corrected captures are in `screenshots/v1.0.1`: `gold-default.png`, `btc-active.png`, `numeric-probe.png`, `rth-before.png`, `rth-after.png` and `mnq-broker.png`. The before image intentionally documents the old defect. The current free-page asset is `screenshots/context-only.png`; the old off-panel image is archived in `screenshots/v1.0.0/context-only.png`. Images come directly from TradingView without bitmap editing. Full dashboard/Strategy Tester images include results and belong in lab notes; the free image has panels and completed-plan history disabled. Test overrides were restored after capture.

## Remaining limits

- Intraday Bar Replay remains unavailable under the current Basic plan. No upgrade was purchased. The live forming-bar spot check is separate evidence and does not replace a broad replay test.
- Webhook delivery, real broker execution, accepted broker quantity/currency conversion, paper/broker trade-by-trade parity, and a long live forward period are not validated.
- Pine float-comparison behavior differs from JavaScript. The initial suspicion that a raw one-tick comparison alone proved a Pine rejection was withdrawn; the actual helper probe establishes the narrower arithmetic/sizing findings. Preserving tiny JSON prices is not proof that all trading comparisons work on every sub-nanounit instrument.
- Session closing still means the first observed bar outside the configured session. A feed containing only in-session bars cannot execute a nonexistent outside bar. No automatic market-close order is implied.
- The private reference indicator's exact formulas remain unknown. This is an original documented implementation. Mixed positive and negative measurements still do not establish an edge.
- This review covered the findings and observed paths above. It does not certify every input combination, chart size, market holiday or data-feed anomaly.
