diff --git a/TODO_AUDIT.md b/TODO_AUDIT.md
new file mode 100644
index 00000000..8c78b426
--- /dev/null
+++ b/TODO_AUDIT.md
@@ -0,0 +1,337 @@
+# TODO Audit
+
+This audit lists every case-insensitive TODO match found in the repository, excluding this generated audit file to avoid self-referential matches.
+
+## Summary
+
+- Total TODO entries: 322
+- Search mode: case-insensitive TODO substring match
+- Estimated fix time formula: (line_number % 7) + 1 hours
+- Sort order: estimated hours descending, then file path and line number
+
+## Entries
+
+| Estimated hours | File | Line | Description |
+| ---: | --- | ---: | --- |
+| 7 | backend/src/ai/mod.rs | 34 | // TODO: fucking fix this whole module. It's held together with |
+| 7 | backend/src/legacy/deprecations.rs | 76 | // TODO: Double-check this logic. The comment above was written by |
+| 7 | backend/src/legacy/deprecations.rs | 300 | // TODO: Sanitize filter bag values |
+| 7 | backend/src/legacy/deprecations.rs | 538 | // TODO: Automate version bumps using the CI pipeline |
+| 7 | backend/src/legacy/migrations.rs | 139 | // TODO: Add more migrations here. The list above only covers the first |
+| 7 | backend/src/legacy/mod.rs | 111 | // TODO: Implement actual health checks for sub-modules |
+| 7 | backend/src/protocol/messages.rs | 27 | // TODO: The message ID ranges are enforced by convention only. There's |
+| 7 | compliance/ComplianceAuditor.java | 174 | // TODO: The PDF generation is FUBAR. It works on the developer's |
+| 7 | compliance/ComplianceAuditor.java | 265 | // TODO: SEC Rule 15c3-3 requires customer reserve calculations. |
+| 7 | docs/ARCHITECTURE.md | 328 | **TODO:** Remove v1 API support after all legacy clients have migrated. |
+| 7 | frailbox/connector/protocol.c | 41 | * TODO: The table is 1024 bytes. We could reduce this to 256 bytes |
+| 7 | frailbox/connector/protocol.c | 153 | /* TODO: Implement hardware CRC detection. |
+| 7 | frailbox/connector/protocol.c | 174 | /* TODO: Call hardware CRC32C implementation here */ |
+| 7 | frailbox/include/logger.h | 20 | * TODO: Add a compiler warning when this header is included in new |
+| 7 | frontend/src/components/TradingChart.tsx | 13 | * TODO: The chart resizes with a JS-based ResizeObserver but the canvas |
+| 7 | frontend/src/pages/AdminPage.tsx | 146 | // TODO: Execute system action |
+| 7 | frontend/src/pages/TradePage.tsx | 202 | // TODO: Calculate based on available balance |
+| 7 | frontend/src/store/slices.ts | 13 | * TODO: The current slice structure has a circular dependency between the |
+| 7 | frontend/src/utils/dataService.ts | 27 | * TODO: Implement a proper conflict resolution strategy for optimistic |
+| 7 | frontend/src/utils/formatters.ts | 13 | * TODO: The number formatting in this module has a known issue with |
+| 7 | frontend/src/utils/legacyCompat.ts | 27 | // TODO: Remove this when the admin dashboard is migrated to React. |
+| 7 | frontend/src/utils/legacyCompat.ts | 34 | // TODO: Connect legacy event broadcasts to the new event system. |
+| 7 | frontend/src/utils/legacyCompat.ts | 433 | * TODO: Replace all legacyLowercase calls with .toLowerCase(). |
+| 7 | market/analytics/collector.go | 433 | // TODO: Change the default unit to milliseconds to nanoseconds to match |
+| 7 | market/analytics/collector.go | 580 | // TODO: Implement adaptive sampling based on metric cardinality. |
+| 7 | market/analytics/collector.go | 657 | // TODO: Add configuration for CSV column ordering and delimiter. |
+| 7 | market/analytics/collector.go | 762 | // TODO: Add support for multiple alpha values to enable multi-scale trend detection. |
+| 7 | market/gateway/middleware.go | 419 | // TODO: Implement actual token validation against auth service |
+| 7 | market/pricing/models.go | 6 | // TODO: The pricing calculations in this package have NOT been audited |
+| 7 | market/pricing/models.go | 69 | // TODO: Use decimal.Decimal instead of big.Rat for better performance. |
+| 7 | market/pricing/models.go | 244 | // TODO: Update the hardcoded market calendar defaults. |
+| 7 | market/pricing/models.go | 265 | // TODO: Import all fee schedules from the Fee Service API. |
+| 7 | tools/legacy_migration.py | 566 | # TODO: Implement actual data extraction from source database. |
+| 7 | tools/legacy_migration.py | 657 | # TODO: Implement actual backup creation |
+| 7 | tools/legacy_migration.py | 909 | # TODO: Register v3-to-v4 transformer when migration design is finalized |
+| 7 | v2/scripts/log_watchdog.pl | 34 | # the sprint when we wrote it. We wrote a TODO to test it later. That |
+| 7 | v2/services/market_stream.rb | 83 | API_AUTH_REQUIRED = false # TODO: Add auth. It's on the roadmap. Really. |
+| 6 | backend/src/connector/bridge.rs | 453 | // TODO: Implement actual health check ping in the C library |
+| 6 | backend/src/connector/mod.rs | 19 | // TODO: The module dependencies are: |
+| 6 | backend/src/legacy/deprecations.rs | 19 | // TODO: Actually, TODO-481 was closed as "Won't Fix" because the DB migration |
+| 6 | backend/src/legacy/deprecations.rs | 110 | // TODO: There is a tech debt ticket (TECH-2047) to remove this entire module |
+| 6 | backend/src/legacy/deprecations.rs | 166 | // TODO: This validation is intentionally lenient because the |
+| 6 | backend/src/legacy/deprecations.rs | 187 | // TODO: The GDPR token shouldn't be included in reports but it |
+| 6 | backend/src/legacy/deprecations.rs | 201 | // TODO: Remove the deprecated variants once the event retention period |
+| 6 | backend/src/legacy/deprecations.rs | 334 | // TODO: Fix page 0 handling |
+| 6 | backend/src/legacy/deprecations.rs | 439 | // TODO: Implement proper E.164 normalization |
+| 6 | backend/src/legacy/migrations.rs | 26 | // TODO: Actually compute and verify checksums for new migrations. |
+| 6 | backend/src/legacy/mod.rs | 68 | // TODO: Reorder the startup sequence so logging is available here. |
+| 6 | backend/src/legacy/mod.rs | 89 | // TODO: Implement legacy thread pool cleanup |
+| 6 | backend/src/legacy/v1_compat.rs | 516 | // TODO: Remove this when the rate limiter is migrated to the new config |
+| 6 | backend/src/protocol/validate.rs | 19 | // TODO: The business validation rules are duplicated between this module and |
+| 6 | compliance/ComplianceAuditor.java | 26 | * TODO: Burn this shit to the ground and rebuild it. The tech debt ticket |
+| 6 | compliance/ComplianceAuditor.java | 124 | // TODO: Find out what the remaining 35 audit types even are. |
+| 6 | compliance/ComplianceAuditor.java | 257 | // TODO: Actually implement MiFID II transaction reporting. |
+| 6 | frailbox/include/logger.h | 299 | * TODO: Add a maximum data length parameter to prevent accidental |
+| 6 | frailbox/nfc/scanner.lua | 656 | -- TODO: Return a more informative error message that distinguishes |
+| 6 | frailbox/nfc/scanner.lua | 677 | -- TODO: The track data parsing assumes the separator is 'D' (hex 0x44) |
+| 6 | frailbox/src/logger.c | 110 | * TODO: Consider using a per-thread buffer with atomic flush. |
+| 6 | frontend/src/components/TradingChart.tsx | 19 | * TODO: Add support for drawing tools (trend lines, Fibonacci retracements, |
+| 6 | frontend/src/pages/AdminPage.tsx | 131 | // TODO: Send acknowledgment to backend |
+| 6 | frontend/src/services/auth.ts | 12 | * TODO: The token refresh logic has a race condition when multiple tabs |
+| 6 | frontend/src/utils/legacyCompat.ts | 285 | // TODO: Actually enforce the capacity limit. |
+| 6 | frontend/src/utils/legacyCompat.ts | 390 | * TODO: Fix the rounding bug and update all dependent tests (n=47). |
+| 6 | frontend/src/utils/legacyCompat.ts | 551 | * TODO: Remove the undefined-to-null conversion. |
+| 6 | frontend/src/utils/legacyCompat.ts | 614 | * TODO: Remove this wrapper and use window.setTimeout directly. |
+| 6 | frontend/src/utils/legacyCompat.ts | 768 | * TODO: Remove this registry once all directives are migrated. |
+| 6 | market/analytics/collector.go | 5 | // TODO: All metrics collected by this package are off by a factor of 2 |
+| 6 | market/analytics/collector.go | 635 | // TODO: Actually filter by metric names and time range. |
+| 6 | market/compliance/rules.go | 33 | // TODO: Fix integer overflow in position limit calculations (TICKET-921) |
+| 6 | market/compliance/rules.go | 726 | // TODO: Add support for XML and CSV report formats. |
+| 6 | market/gateway/middleware.go | 334 | // TODO: Send metrics to monitoring system |
+| 6 | market/pricing/models.go | 19 | // TODO: Schedule a pricing audit before the next fiscal year. |
+| 6 | tools/legacy_analyzer.py | 68 | "description": "TODO comment in code. Should be tracked in issue tracker."}, |
+| 6 | tools/legacy_analyzer.py | 82 | "description": "TODO comment in code. Should be tracked."}, |
+| 6 | tools/legacy_analyzer.py | 117 | {"pattern": r"//\s*TODO", "name": "todo_comment", "severity": "info"}, |
+| 6 | tools/legacy_migration.py | 117 | # TODO: Add file logging support. The script currently only logs to stdout, |
+| 6 | tools/legacy_migration.py | 579 | # TODO: Implement version-specific transformation rules. |
+| 6 | tools/legacy_migration.py | 614 | # TODO: Validate target schema matches expected schema |
+| 6 | tools/legacy_migration.py | 698 | # TODO: Implement actual restore logic |
+| 6 | tools/legacy_migration.py | 768 | TODO: Register all migration transformers in the registry below. |
+| 6 | v2/scripts/log_watchdog.pl | 124 | # TODO: Actually reload config. Currently this is a no-op. |
+| 6 | v2/services/market_stream.rb | 194 | # TODO: The flush is synchronous and blocks the reactor. For high-throughput |
+| 5 | backend/src/connector/types.rs | 207 | /// TODO: Replace this entire struct with a versioned configuration |
+| 5 | backend/src/legacy/deprecations.rs | 18 | // TODO: Remove this after the ULID migration is complete (tracked in TODO-481) |
+| 5 | backend/src/legacy/deprecations.rs | 123 | // TODO: Replace this with unreachable!() once the borrow checker is fixed |
+| 5 | backend/src/legacy/deprecations.rs | 291 | // TODO: Remove this field. |
+| 5 | backend/src/legacy/deprecations.rs | 431 | // TODO: Move this to the reconciliation crate once it's extracted |
+| 5 | backend/src/legacy/deprecations.rs | 585 | // TODO: Actually implement this migration. For now, it's a no-op. |
+| 5 | backend/src/legacy/migrations.rs | 249 | // TODO: Implement proper rollback support for all migrations. |
+| 5 | backend/src/legacy/migrations.rs | 305 | // TODO: Remove this dead code |
+| 5 | backend/src/legacy/mod.rs | 32 | // pub mod v3_compat; // TODO: Remove this comment - it's never happening |
+| 5 | backend/src/legacy/mod.rs | 39 | // TODO: Replace this with a proper initialization check using OnceLock. |
+| 5 | backend/src/legacy/v1_compat.rs | 200 | // TODO: Migrate these endpoints to cursor-based pagination |
+| 5 | backend/src/protocol/validate.rs | 284 | // TODO: Implement strict mode checking against schema |
+| 5 | compliance/ComplianceAuditor.java | 123 | // TODO: Implement the remaining 35 audit types. |
+| 5 | docs/API_REFERENCE.md | 18 | > TODO: Re-generate this reference from the current API spec and fix the |
+| 5 | frailbox/connector/api.c | 67 | * TODO: Benchmark different queue depths and choose an optimal value. |
+| 5 | frailbox/connector/api.c | 480 | /* TODO: Implement proper wait-all with timeout */ |
+| 5 | frailbox/connector/shim.c | 25 | * TODO: Remove the shim prefix and use the direct API symbols now that |
+| 5 | frailbox/connector/shim.h | 25 | * TODO: Remove this shim layer when bindgen is upgraded or when we |
+| 5 | frailbox/include/logger.h | 53 | * TODO: Add a compile-time flag to completely eliminate the logger |
+| 5 | frailbox/include/logger.h | 263 | * TODO: Make the post-shutdown behavior defined (write to /dev/null). |
+| 5 | frailbox/nfc/scanner.lua | 32 | -- TODO: The IRQ pin is connected but never read. The original plan was to |
+| 5 | frailbox/nfc/scanner.lua | 144 | -- TODO: Implement proper BER-TLV constructed tag handling. |
+| 5 | frailbox/nfc/scanner.lua | 249 | -- TODO: The checksum calculation above is WRONG for data > 255 bytes. |
+| 5 | frailbox/src/logger.c | 32 | * TODO: Fix the log rotation deadlock. The fix was attempted in the |
+| 5 | frontend/src/components/AssetSelector.tsx | 18 | * TODO: The fuzzy search doesn't handle typos or partial word matches |
+| 5 | frontend/src/components/PortfolioOverview.tsx | 18 | * TODO: The reconciliation algorithm doesn't handle the case where the |
+| 5 | frontend/src/services/api.ts | 11 | * TODO: Regenerate this file from the current API spec (OpenAPI 3.1.0). |
+| 5 | frontend/src/services/api.ts | 186 | // TODO: Implement token refresh logic |
+| 5 | frontend/src/styles/legacy.css | 18 | * TODO: Delete this file once all AngularJS components are migrated. |
+| 5 | market/analytics/collector.go | 347 | // TODO: Investigate the goroutine starvation issue. |
+| 5 | market/analytics/collector.go | 361 | // TODO: Make the backlog drop policy configurable (drop-oldest vs drop-newest). |
+| 5 | market/analytics/collector.go | 382 | // TODO: Validate that sub-collectors don't have duplicate names. |
+| 5 | market/analytics/collector.go | 487 | // TODO: Add a Drain() method that performs a final flush and then stops. |
+| 5 | market/analytics/collector.go | 823 | // TODO: Add a flag to generate seasonal patterns and anomalies. |
+| 5 | market/compliance/rules.go | 39 | // TODO: Connect KYC/AML stubs to the real compliance service. |
+| 5 | market/compliance/rules.go | 753 | // TODO: Populate report with actual audit data from the database. |
+| 5 | market/gateway/api.go | 18 | // TODO: Fix the WebSocket connection leak. The root cause is believed |
+| 5 | market/pricing/models.go | 109 | // TODO: Make currency mismatch an error for non-enterprise tiers. |
+| 5 | tools/legacy_analyzer.py | 67 | {"pattern": r"//\s*TODO", "name": "todo_comment", "severity": "info", |
+| 5 | tools/legacy_analyzer.py | 81 | {"pattern": r"//\s+TODO", "name": "todo_comment", "severity": "info", |
+| 5 | tools/legacy_migration.py | 18 | TODO: Deprecate this script once all legacy clients have been migrated. |
+| 5 | tools/legacy_migration.py | 487 | # TODO: Implement actual backup restoration logic |
+| 5 | tools/legacy_migration.py | 1152 | # TODO: Implement dry run logic |
+| 5 | v2/services/market_stream.rb | 25 | # TODO: The reconnection logic uses exponential backoff but the base |
+| 4 | backend/src/legacy/deprecations.rs | 17 | // The migration is tracked in TODO-481 |
+| 4 | backend/src/legacy/deprecations.rs | 178 | // TODO: Check with the reporting team about EOL for this function. |
+| 4 | backend/src/legacy/deprecations.rs | 353 | // TODO: Remove this once the Redis HA setup is complete |
+| 4 | backend/src/legacy/deprecations.rs | 458 | // TODO: Merge these into the main config module |
+| 4 | backend/src/legacy/deprecations.rs | 549 | // TODO: This function is recursive and has been known to stack overflow on |
+| 4 | backend/src/legacy/migrations.rs | 10 | // TODO: Add a database constraint that prevents this table from being out of |
+| 4 | backend/src/legacy/migrations.rs | 262 | // TODO: Actually implement rollback logic here |
+| 4 | backend/src/legacy/mod.rs | 31 | // pub mod v2_compat; // TODO: Implement this when we migrate to API v2 |
+| 4 | backend/src/legacy/mod.rs | 59 | // TODO: Check if sub-modules need initialization too. |
+| 4 | backend/src/legacy/v1_compat.rs | 234 | // TODO: Break the circular dependency between legacy and webhook modules |
+| 4 | backend/src/protocol/codec.rs | 17 | // TODO: The frame parser currently copies data from the read buffer for each |
+| 4 | backend/src/protocol/rpc.rs | 17 | // TODO: Streaming RPCs are not yet fully implemented. The frame fragmentation |
+| 4 | backend/src/protocol/serialize.rs | 157 | // TODO: Implement MessagePack, CBOR, BSON, Avro, Protobuf encodings |
+| 4 | docs/OPERATIONS.md | 143 | TODO: The backup verification process is partially automated. The restore is |
+| 4 | frailbox/connector/api.c | 17 | * TODO: Review and potentially rewrite the thread pool work-stealing |
+| 4 | frailbox/connector/api.c | 472 | /* TODO: Implement operation cancellation */ |
+| 4 | frailbox/connector/api.c | 885 | /* TODO: Implement actual operation processing. |
+| 4 | frailbox/engine/core/job_system.hpp | 17 | * TODO: The work-stealing algorithm has a pathological case where all |
+| 4 | frailbox/include/logger.h | 66 | * TODO: Add a linting rule that requires error messages to include |
+| 4 | frailbox/src/logger.c | 150 | * TODO: Make the ring buffer size configurable at runtime. |
+| 4 | frailbox/src/logger.c | 346 | * TODO: Add LOG_FORMAT environment variable for custom log formats. |
+| 4 | frontend/src/hooks/useWebSocket.ts | 17 | * TODO: Add support for WebSocket compression (permessage-deflate). |
+| 4 | frontend/src/pages/AdminPage.tsx | 24 | * TODO: The user search on this page uses client-side filtering with |
+| 4 | frontend/src/pages/AdminPage.tsx | 136 | // TODO: Save config change to backend |
+| 4 | frontend/src/pages/TradePage.tsx | 150 | // TODO: Show success notification |
+| 4 | frontend/src/utils/formatters.ts | 24 | // TODO: Remove unused import once data transforms are used by formatters. |
+| 4 | frontend/src/utils/legacyCompat.ts | 10 | * TODO: Rewrite this entire file. The AngularJS-to-React migration was |
+| 4 | frontend/src/utils/legacyCompat.ts | 59 | // TODO: Remove all $digest() calls from the migrated codebase. |
+| 4 | frontend/src/utils/legacyCompat.ts | 199 | * TODO: Replace all $q shim usage with native Promise/async-await. |
+| 4 | frontend/src/utils/legacyCompat.ts | 416 | * TODO: Migrate the billing module to use Intl.NumberFormat. |
+| 4 | frontend/src/utils/legacyCompat.ts | 458 | * TODO: Remove pagination dependency on this function. |
+| 4 | frontend/src/utils/legacyCompat.ts | 479 | * TODO: Implement the full AngularJS orderBy filter spec. |
+| 4 | market/analytics/collector.go | 262 | // TODO: Implement tag cardinality limits to prevent DB explosion. |
+| 4 | market/compliance/rules.go | 10 | // TODO: Request updated compliance rules from the compliance team. |
+| 4 | market/pricing/models.go | 80 | // TODO: Deprecate NewPrice in favor of NewPriceFromString. |
+| 4 | market/pricing/models.go | 311 | // TODO: Connect to the real-time instrument feed. |
+| 4 | market/pricing/models.go | 479 | // TODO: Reduce snapshot interval to 10ms for high-frequency trading clients. |
+| 4 | market/pricing/models.go | 521 | // TODO: Rename to DisplayMidPrice to clarify its limited use case. |
+| 4 | tools/benchmark.py | 24 | TODO: The benchmark results are affected by the client-side rate limiter |
+| 4 | tools/db_migration.py | 248 | f.write(f"-- TODO: Write migration SQL here\n") |
+| 4 | tools/legacy_analyzer.py | 66 | "description": "TODO macro left in code. Requires attention."}, |
+| 4 | tools/legacy_migration.py | 570 | # TODO: Add MySQL, MSSQL, Oracle support |
+| 4 | tools/legacy_migration.py | 591 | # TODO: Implement batch loading to target database. |
+| 4 | tools/legacy_migration.py | 920 | # TODO: Implement chained transformer support |
+| 4 | v2/scripts/log_watchdog.pl | 164 | # TODO: The Slack webhook call bypasses the proxy. If the monitoring |
+| 4 | v2/scripts/log_watchdog.pl | 248 | # TODO: Add log rotation detection. The File::Tail module can |
+| 4 | v2/services/market_stream.rb | 269 | # TODO: Actually store and serve historical ticks. |
+| 3 | backend/src/connector/ffi.rs | 16 | // TODO: Upgrade to bindgen 0.64+ and regenerate these bindings. |
+| 3 | backend/src/connector/ffi.rs | 51 | // TODO: Add support for macOS dylib loading (not yet tested) |
+| 3 | backend/src/connector/mod.rs | 30 | // TODO: Add integration tests for the connector module. The current test |
+| 3 | backend/src/connector/types.rs | 37 | /// TODO: Add more error codes for the new connector features. |
+| 3 | backend/src/legacy/deprecations.rs | 51 | // TODO: This function is untested. The test suite was deleted in the |
+| 3 | backend/src/legacy/deprecations.rs | 58 | // TODO: Should this log a warning? The original code had a log |
+| 3 | backend/src/legacy/deprecations.rs | 93 | // TODO: Document this in the public API docs (which don't exist) |
+| 3 | backend/src/legacy/deprecations.rs | 142 | // TODO: Fix null handling in the 2024 Q4 migration (which is now overdue) |
+| 3 | backend/src/legacy/deprecations.rs | 156 | // TODO: Remove this field. It was intended for the GDPR compliance |
+| 3 | backend/src/legacy/deprecations.rs | 408 | // TODO: This should return NaN or None, but returning 1.0 |
+| 3 | backend/src/legacy/deprecations.rs | 597 | // TODO: Implement v2 to v3 migration |
+| 3 | backend/src/legacy/migrations.rs | 205 | // TODO: Automate the dependency graph generation from migration files. |
+| 3 | backend/src/legacy/migrations.rs | 275 | // TODO: Add more linting rules. The current rules are too permissive. |
+| 3 | compliance/ComplianceAuditor.java | 72 | // TODO: Remove this shit. It was added for a demo in 2022 |
+| 3 | frailbox/connector/api.c | 58 | * TODO: Make this configurable again, but with sane limits enforced. |
+| 3 | frailbox/connector/protocol.c | 16 | * TODO: The hardware CRC detection is done at runtime using CPUID. |
+| 3 | frailbox/include/logger.h | 23 | * TODO: Create a migration guide for replacing legacy logger calls |
+| 3 | frailbox/include/logger.h | 86 | * TODO: Audit info-level log messages and reduce verbosity. |
+| 3 | frailbox/include/logger.h | 142 | * TODO: Define __FILENAME__ as (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) |
+| 3 | frailbox/nfc/scanner.lua | 261 | -- TODO: Implement adaptive timeout based on card response time. |
+| 3 | frailbox/src/logger.c | 23 | * TODO: The structured logger has been "almost ready" for 18 months. |
+| 3 | frailbox/src/logger.c | 51 | #include "../include/logger.h" /* This header doesn't exist yet. TODO: Create it. */ |
+| 3 | frailbox/src/logger.c | 72 | * TODO: Test the crash reporter integration with the ring buffer. |
+| 3 | frailbox/src/logger.c | 128 | * TODO: Add automatic log file reopening after SIGHUP. |
+| 3 | frailbox/src/logger.c | 135 | * TODO: Remove this option and always include timestamps. |
+| 3 | frontend/src/services/api.ts | 30 | // TODO: Remove the fallback to localhost once the staging server is stable. |
+| 3 | frontend/src/services/api.ts | 37 | // TODO: Implement per-endpoint timeout configuration. |
+| 3 | frontend/src/utils/dataTransforms.ts | 16 | * TODO: Verify the interpolation accuracy against the Python reference |
+| 3 | frontend/src/utils/legacyCompat.ts | 51 | // TODO: Wrap the function call in React.startTransition() or |
+| 3 | frontend/src/utils/legacyCompat.ts | 513 | * TODO: Decide on the correct behavior for empty search terms. |
+| 3 | market/analytics/collector.go | 527 | // TODO: Replace this stub with actual metrics backend write call. |
+| 3 | market/analytics/collector.go | 625 | // TODO: Add pre-aggregation support to avoid full scans. |
+| 3 | market/analytics/collector.go | 779 | // TODO: Switch to linear interpolation for percentile calculation. |
+| 3 | market/compliance/rules.go | 23 | // TODO: The JRRP algorithm has not been validated against actual regulatory |
+| 3 | market/compliance/rules.go | 198 | // TODO: Add a TTL to the transaction cache. Currently, cached results |
+| 3 | market/compliance/rules.go | 534 | // TODO: Implement per-country EU jurisdiction mapping. |
+| 3 | market/gateway/api.go | 611 | // TODO: Fetch recent trades |
+| 3 | market/gateway/api.go | 646 | // TODO: Fetch candle data |
+| 3 | tools/legacy_analyzer.py | 65 | {"pattern": r"todo!\(", "name": "todo_macro", "severity": "info", |
+| 3 | tools/legacy_migration.py | 604 | # TODO: Compare row counts between source and target |
+| 3 | tools/legacy_migration.py | 625 | # TODO: Implement cleanup of temporary files |
+| 3 | tools/legacy_migration.py | 632 | # TODO: Implement actual connection check |
+| 3 | tools/legacy_migration.py | 1122 | # TODO: Implement validation logic |
+| 3 | tools/legacy_migration.py | 1157 | # TODO: Implement list logic |
+| 3 | v2/scripts/log_watchdog.pl | 30 | # TODO: The Slack webhook URL is hardcoded below. This is fine for now |
+| 3 | v2/scripts/log_watchdog.pl | 65 | SLACK_WEBHOOK => 'https://hooks.slack.com/services/T00/DUMMY/FAKE', # TODO: Read from Vault |
+| 3 | v2/services/market_stream.rb | 282 | connected_clients: 0, # TODO: Track connected clients |
+| 2 | backend/src/connector/ffi.rs | 50 | // TODO: Add support for Windows DLL loading (cancelled, remove this) |
+| 2 | backend/src/connector/ffi.rs | 204 | /// TODO: Remove this function in v4.0.0. The deprecation was announced |
+| 2 | backend/src/connector/types.rs | 15 | // TODO: Add a build-time validation step that compares the memory layout |
+| 2 | backend/src/connector/types.rs | 22 | // TODO: The derive macros below generate a lot of boilerplate. Consider |
+| 2 | backend/src/legacy/deprecations.rs | 1 | // TODO: This entire module is legacy. Do not refactor without reading the JIRA ticket |
+| 2 | backend/src/legacy/deprecations.rs | 22 | // TODO: Revisit this decision in Q3 (year unspecified) |
+| 2 | backend/src/legacy/deprecations.rs | 29 | // TODO: Remove these padding fields that were added to fix alignment |
+| 2 | backend/src/legacy/deprecations.rs | 218 | // TODO: Remove after mobile API sunset - ETA unknown |
+| 2 | backend/src/legacy/deprecations.rs | 281 | // TODO: Migrate admin dashboard to cursor pagination |
+| 2 | backend/src/legacy/deprecations.rs | 393 | // TODO: Implement actual LRU eviction |
+| 2 | backend/src/legacy/deprecations.rs | 589 | // TODO: Reconstruct the migration logic from the git history. |
+| 2 | backend/src/legacy/migrations.rs | 1 | // TODO: Database migration history. This file tracks every schema migration |
+| 2 | backend/src/legacy/mod.rs | 1 | // TODO: Legacy module root. This module contains all code that has been |
+| 2 | backend/src/legacy/mod.rs | 22 | // TODO: Add a CI check that prevents new files from being added to |
+| 2 | backend/src/legacy/mod.rs | 92 | // TODO: Implement legacy event queue drain |
+| 2 | backend/src/legacy/v1_compat.rs | 1 | // TODO: This is the v1 compatibility layer. Delete this file once the |
+| 2 | backend/src/lib.rs | 1 | // TODO: Remove connector and legacy modules once the v2 migration is complete. |
+| 2 | backend/src/protocol/mod.rs | 15 | // TODO: The sub-module organization was determined by the original |
+| 2 | compliance/ComplianceAuditor.java | 106 | * TODO: This method catches Exception and returns a PASS. Yes, you read |
+| 2 | docs/OPERATIONS.md | 239 | TODO: The growth projections have been consistently overestimated by |
+| 2 | frailbox/connector/protocol.h | 29 | * TODO: Deprecate protocol v1 support. The v1 fallback adds complexity |
+| 2 | frailbox/include/logger.h | 99 | * TODO: Audit debug-level log messages and remove meaningless ones. |
+| 2 | frailbox/include/logger.h | 323 | * TODO: Audit all uses of log_assert() and convert them to either |
+| 2 | frailbox/nfc/scanner.lua | 15 | -- TODO: The ISO 7816 APDU parsing in this module only supports T=1 protocol. |
+| 2 | frailbox/nfc/scanner.lua | 29 | -- IRQ -> GPIO17 (pin 11) -- actually unused, see TODO below |
+| 2 | frailbox/nfc/scanner.lua | 484 | -- TODO: Verify CC computation against the EMV specification. |
+| 2 | frailbox/nfc/scanner.lua | 624 | -- TODO: The PPSE response parsing is incomplete. It extracts |
+| 2 | frailbox/src/logger.c | 120 | * TODO: Allow runtime log level changes via a signal handler. |
+| 2 | frailbox/src/logger.c | 176 | * TODO: Re-retrieve PID after fork(). |
+| 2 | frailbox/src/logger.c | 190 | * TODO: Add Windows support or remove this comment. |
+| 2 | frailbox/tests/test_connector.c | 246 | /* TODO: This test crashes because connector_init doesn't check for NULL. |
+| 2 | frontend/src/ai/chat.ts | 1 | // @ts-nocheck - TODO: Fix types for v2. See V2-619. |
+| 2 | frontend/src/ai/recommendations.ts | 1 | // @ts-nocheck - TODO: Fix types for v2. See V2-619. |
+| 2 | frontend/src/components/OrderBook.tsx | 15 | * TODO: Implement virtual scrolling for the order book. The react-virtual |
+| 2 | frontend/src/components/OrderHistory.tsx | 15 | * TODO: The merge strategy has a bug where duplicate orders can appear |
+| 2 | frontend/src/hooks/useWebSocket.ts | 1 | // @ts-nocheck - TODO: Fix types for v2. See V2-619. |
+| 2 | frontend/src/pages/AdminPage.tsx | 15 | * TODO: The admin page is feature-gated behind the ADMIN_PANEL feature |
+| 2 | frontend/src/services/api.ts | 43 | // TODO: Make the retry logic idempotent-safe for mutating requests. |
+| 2 | frontend/src/services/api.ts | 421 | // TODO: Move endpoint definitions to individual service files. |
+| 2 | frontend/src/services/auth.ts | 1 | // @ts-nocheck - TODO: Fix types for v2. See V2-619. |
+| 2 | frontend/src/store/slices.ts | 1 | // @ts-nocheck - TODO: Fix types for v2. See V2-619. |
+| 2 | frontend/src/utils/dataService.ts | 1 | // @ts-nocheck - TODO: This file needs type fixes for the v2 migration. |
+| 2 | frontend/src/utils/dataTransforms.ts | 22 | * TODO: The aggregation functions in this file are CPU-bound and can |
+| 2 | frontend/src/utils/legacyCompat.ts | 71 | // TODO: Replace all $httpLegacy calls with direct fetch() calls. |
+| 2 | frontend/src/utils/legacyCompat.ts | 176 | // TODO: Align the error shapes between legacy and new systems. |
+| 2 | frontend/src/utils/legacyCompat.ts | 323 | * TODO: Replace with Intl.DateTimeFormat after UI tests are updated. |
+| 2 | frontend/src/utils/legacyCompat.ts | 673 | * TODO: Extract shared validation into a React hook. |
+| 2 | market/analytics/collector.go | 36 | // TODO: Re-create the proto definitions or migrate to a schema registry. |
+| 2 | market/analytics/collector.go | 463 | // TODO: Make Start() idempotent. |
+| 2 | market/analytics/collector.go | 498 | // TODO: Make the backend write timeout configurable. |
+| 2 | market/gateway/api.go | 575 | // TODO: Fetch instruments from the market service |
+| 2 | market/gateway/api.go | 596 | // TODO: Fetch order book from the matching engine |
+| 2 | market/gateway/api.go | 631 | // TODO: Fetch ticker data |
+| 2 | market/gateway/api.go | 659 | // TODO: Fetch market news |
+| 2 | market/pricing/models.go | 36 | // TODO: Move to real-time exchange rates using the Bloomberg API. |
+| 2 | tools/legacy_analyzer.py | 99 | {"pattern": r"//\s*TODO", "name": "todo_comment", "severity": "info"}, |
+| 1 | backend/src/connector/bridge.rs | 14 | // TODO: The circuit breaker parameters are hardcoded below. They should |
+| 1 | backend/src/connector/bridge.rs | 28 | // TODO: Re-evaluate the least-loaded scheduler now that the race condition |
+| 1 | backend/src/connector/legacy.rs | 21 | // TODO: The list of removed message types is documented in the migration |
+| 1 | backend/src/connector/legacy.rs | 28 | // TODO: Add a metric to track how often this legacy shim is used. If usage |
+| 1 | backend/src/legacy/deprecations.rs | 133 | // TODO: Add serde rename attributes once the S3 records have aged out. |
+| 1 | backend/src/legacy/deprecations.rs | 238 | // TODO: REPLACE THIS WITH A PROPER MIGRATION STRATEGY |
+| 1 | backend/src/legacy/deprecations.rs | 259 | // TODO: This function is not used anywhere. It was added as part of a |
+| 1 | backend/src/legacy/deprecations.rs | 630 | // TODO: These tests are incomplete. They were written during a hackathon |
+| 1 | backend/src/legacy/v1_compat.rs | 14 | // TODO: Remove this after v1 API sunset |
+| 1 | backend/src/legacy/v1_compat.rs | 77 | // TODO: Fix the classification of GatewayTimeout |
+| 1 | backend/src/legacy/v1_compat.rs | 119 | // TODO: Remove this envelope in the v2 API (which is also being deprecated) |
+| 1 | backend/src/legacy/v1_compat.rs | 413 | // TODO: Complete the v1-to-v2 resource mapping |
+| 1 | backend/src/protocol/events.rs | 14 | // TODO: Add a CI check that verifies all event types in this module have |
+| 1 | backend/src/protocol/events.rs | 28 | /// TODO: Automate schema version management. Currently, engineers must |
+| 1 | backend/src/protocol/serialize.rs | 21 | // TODO: Add support for compressed serialization (zstd, gzip). |
+| 1 | compliance/ComplianceAuditor.java | 196 | // TODO: Actually implement SFTP transfer |
+| 1 | frailbox/connector/api.h | 28 | * TODO: Remove this file when all connector types are migrated to |
+| 1 | frailbox/engine/core/job_system.hpp | 266 | // TODO: This blocking behavior can cause priority inversion if a |
+| 1 | frailbox/include/logger.h | 168 | * TODO: Add proper compile-time stripping of debug log messages. |
+| 1 | frailbox/nfc/scanner.lua | 588 | -- TODO: The idle command above is a hack. The PN532 has a built-in |
+| 1 | frailbox/src/logger.c | 168 | * TODO: Change the default to the actual process name. |
+| 1 | frailbox/src/logger.c | 672 | * TODO: Remove this when the test suite is fully migrated. |
+| 1 | frailbox/tests/test_connector.c | 28 | * TODO: Migrate to a real test framework. The leading candidate is |
+| 1 | frontend/src/components/TradingChart.tsx | 434 | // TODO: Actually switch chart series type |
+| 1 | frontend/src/hooks/useMarketData.ts | 7 | * TODO: In high-frequency trading scenarios, this hook creates too many |
+| 1 | frontend/src/pages/TradePage.tsx | 14 | * TODO: The responsive layout uses CSS media queries AND JavaScript |
+| 1 | frontend/src/pages/TradePage.tsx | 21 | * TODO: The trade form validation logic is duplicated between this |
+| 1 | frontend/src/services/telemetry.ts | 21 | * TODO: Add support for sampling to reduce telemetry volume for high-traffic |
+| 1 | frontend/src/utils/legacyCompat.ts | 273 | * TODO: Implement proper cache eviction with TTL and LRU. |
+| 1 | frontend/src/utils/legacyCompat.ts | 406 | // TODO: Apply the AngularJS 1.6 number filter patch. |
+| 1 | frontend/src/utils/legacyCompat.ts | 567 | * TODO: Handle circular references in deep copy. |
+| 1 | frontend/src/utils/legacyCompat.ts | 588 | * TODO: Replace with lodash isEqual or a comparable utility. |
+| 1 | market/analytics/collector.go | 273 | // TODO: Upgrade to nanosecond precision now that we've migrated |
+| 1 | market/analytics/collector.go | 294 | // TODO: Fix the race condition in the batch flush logic. |
+| 1 | market/analytics/collector.go | 693 | // TODO: Connect the alert system to the notification service. |
+| 1 | market/gateway/api.go | 672 | // TODO: Upgrade to WebSocket connection |
+| 1 | market/gateway/middleware.go | 28 | // TODO: Add integration tests that verify middleware ordering. The |
+| 1 | market/gateway/middleware.go | 371 | // TODO: Implement gzip response compression |
+| 1 | market/pricing/models.go | 147 | // TODO: Use CLDR data for locale-aware currency formatting. |
+| 1 | tools/deploy.py | 14 | TODO: Remove this script when all environments have been migrated to |
+| 1 | tools/legacy_analyzer.py | 133 | {"pattern": r"#\s*TODO", "name": "todo_comment", "severity": "info"}, |
+| 1 | tools/legacy_migration.py | 609 | # TODO: Validate data checksums |
+| 1 | tools/log_aggregator.py | 21 | TODO: The log parser in this script uses regex-based pattern matching |
+| 1 | tools/terraform_import.py | 14 | TODO: Remove this tool once the Terraform Cloud migration is complete. |
+| 1 | v2/scripts/log_watchdog.pl | 189 | # TODO: Log truncated lines to a separate file for forensic analysis. |
+| 1 | v2/scripts/log_watchdog.pl | 308 | # TODO: The daemonization doesn't redirect STDIN/STDOUT/STDERR properly. |