docs: update roadmap, todo, and add tasklist
All checks were successful
CI / validate (push) Successful in 21s
All checks were successful
CI / validate (push) Successful in 21s
Restructure roadmap into phases. Clean up todo as intake buffer. Add execution tasklist with prioritized items.
This commit is contained in:
82
TODO.md
82
TODO.md
@@ -1,83 +1,35 @@
|
||||
# PPF TODO
|
||||
|
||||
## Optimization
|
||||
|
||||
### [ ] JSON Stats Response Caching
|
||||
|
||||
- Cache serialized JSON response with short TTL (1-2s)
|
||||
- Only regenerate when underlying stats change
|
||||
- Use ETag/If-None-Match for client-side caching
|
||||
- Savings: ~7-9s/hour. Low priority, only matters with frequent dashboard access.
|
||||
|
||||
### [ ] Object Pooling for Test States
|
||||
|
||||
- Pool ProxyTestState and TargetTestJob, reset and reuse
|
||||
- Savings: ~11-15s/hour. **Not recommended** - high effort, medium risk, modest gain.
|
||||
|
||||
### [ ] SQLite Connection Reuse
|
||||
|
||||
- Persistent connection per thread with health checks
|
||||
- Savings: ~0.3s/hour. **Not recommended** - negligible benefit.
|
||||
Intake buffer. Items refined here move to TASKLIST.md.
|
||||
|
||||
---
|
||||
|
||||
## Dashboard
|
||||
|
||||
### [ ] Performance
|
||||
|
||||
- Cache expensive DB queries (top countries, protocol breakdown)
|
||||
- Lazy-load historical data (only when scrolled into view)
|
||||
- WebSocket option for push updates (reduce polling overhead)
|
||||
- Configurable refresh interval via URL param or localStorage
|
||||
|
||||
### [ ] Features
|
||||
|
||||
- Historical graphs (24h, 7d) using stats_history table
|
||||
- Per-ASN performance analysis
|
||||
- Alert thresholds (success rate < X%, MITM detected)
|
||||
- Mobile-responsive improvements
|
||||
|
||||
---
|
||||
- [ ] Cache expensive DB queries (top countries, protocol breakdown)
|
||||
- [ ] Historical graphs (24h, 7d) using stats_history table
|
||||
- [ ] Per-ASN performance analysis
|
||||
- [ ] Alert thresholds (success rate < X%, MITM detected)
|
||||
- [ ] WebSocket push updates (reduce polling overhead)
|
||||
- [ ] Mobile-responsive improvements
|
||||
|
||||
## Memory
|
||||
|
||||
- [ ] Lock consolidation - reduce per-proxy locks (260k LockType objects)
|
||||
- [ ] Leaner state objects - reduce dict/list count per job
|
||||
- [ ] Lock consolidation (260k LockType objects at scale)
|
||||
- [ ] Leaner state objects per job
|
||||
|
||||
Memory scales linearly with queue (~4.5 KB/job). No leaks detected.
|
||||
Optimize only if memory becomes a constraint.
|
||||
Memory scales ~4.5 KB/job. No leaks detected. Optimize only if constrained.
|
||||
|
||||
---
|
||||
## Source Pipeline
|
||||
|
||||
## Deprecation
|
||||
|
||||
### [x] Remove V1 worker protocol
|
||||
|
||||
Completed. Removed `--worker` flag, `worker_main()`, `claim_work()`,
|
||||
`submit_results()`, `/api/work`, `/api/results`, and related config
|
||||
options. `--worker` now routes to the URL-driven protocol.
|
||||
|
||||
---
|
||||
- [ ] PasteBin/GitHub API scrapers for proxy lists
|
||||
- [ ] Telegram channel scrapers (beyond t.me/s/ HTML)
|
||||
- [ ] Source quality decay tracking (flag sources going stale)
|
||||
- [ ] Deduplication of sources across different URL forms
|
||||
|
||||
## Known Issues
|
||||
|
||||
### [!] Podman Container Metadata Disappears
|
||||
|
||||
`podman ps -a` shows empty even though process is running. Service functions
|
||||
correctly despite missing metadata. Monitor via `ss -tlnp`, `ps aux`, or
|
||||
`curl localhost:8081/health`. Low impact.
|
||||
|
||||
---
|
||||
|
||||
## Container Debugging Checklist
|
||||
|
||||
```
|
||||
1. Check for orphans: ps aux | grep -E "[p]rocess_name"
|
||||
2. Check port conflicts: ss -tlnp | grep PORT
|
||||
3. Run foreground: podman run --rm (no -d) to see output
|
||||
4. Check podman state: podman ps -a
|
||||
5. Clean stale: pkill -9 -f "pattern" && podman rm -f -a
|
||||
6. Verify deps: config files, data dirs, volumes exist
|
||||
7. Check logs: podman logs container_name 2>&1 | tail -50
|
||||
8. Health check: curl -sf http://localhost:PORT/health
|
||||
```
|
||||
`podman ps -a` shows empty even though process is running.
|
||||
Monitor via `ss -tlnp`, `ps aux`, or `curl localhost:8081/health`.
|
||||
|
||||
Reference in New Issue
Block a user