- Replace form_urlencoded with RFC 3986 compliant URI encoding - Implement aws_uri_encode() matching AWS SigV4 spec exactly - Unreserved chars (A-Z,a-z,0-9,-,_,.,~) not encoded - All other chars percent-encoded with uppercase hex - Preserve slashes in paths, encode in query params - Normalize empty paths to '/' per AWS spec - Fix test expectations (body hash, HMAC values) - Add comprehensive SigV4 signature determinism test This fixes the canonicalization mismatch that caused signature validation failures in T047. Auth can now be enabled for production. Refs: T058.S1
71 lines
2.5 KiB
YAML
71 lines
2.5 KiB
YAML
id: T044
|
|
name: POR Accuracy Fix - Documentation vs Implementation Drift
|
|
goal: Correct POR.md claims to match actual implementation state
|
|
status: complete
|
|
priority: P0
|
|
owner: peerA
|
|
created: 2025-12-11
|
|
|
|
context: |
|
|
**User Report (2025-12-11 18:11 JST):**
|
|
Multiple discrepancies identified between POR.md claims and actual codebase:
|
|
|
|
**Verified Findings:**
|
|
1. NightLight test count: 43 actual vs 57 claimed (CORRECTED: storage IS implemented, not stub)
|
|
2. CreditService: InMemory storage only (ChainFire/FlareDB backends NOT implemented despite POR claims)
|
|
3. NightLight example compilation: 16 serde errors in query_metrics example
|
|
4. T043 ID conflict: Two tasks use T043 (naming-cleanup complete, service-integration active)
|
|
|
|
**User Claims REFUTED:**
|
|
- NightLight storage.rs is NOT a stub - it has full WAL+snapshot implementation
|
|
- CreditService has 23 tests passing (matches POR claim)
|
|
|
|
**Build Evidence (2025-12-11 18:14 JST):**
|
|
- nightlight: 43/43 tests pass (3+24+16)
|
|
- creditservice: 23/23 tests pass (21+2)
|
|
- nightlight example build: FAILS (serde issues)
|
|
|
|
acceptance:
|
|
- POR.md test counts accurate
|
|
- POR.md claims about storage backends reflect reality
|
|
- T043 ID conflict resolved (rename T043-service-integration to T045)
|
|
- NightLight example compilation fixed
|
|
|
|
steps:
|
|
- step: S1
|
|
name: Fix POR.md test counts
|
|
done: Change "57 tests" to "43 tests" for NightLight
|
|
status: complete
|
|
owner: peerA
|
|
priority: P0
|
|
notes: 'POR.md line 84: "57/57 tests" → "43/43 tests (corrected 2025-12-11)"'
|
|
|
|
- step: S2
|
|
name: Correct CreditService storage claims
|
|
done: Remove claims about ChainFire/FlareDB storage from POR
|
|
status: complete
|
|
owner: peerA
|
|
priority: P0
|
|
notes: 'POR.md line 47: Added "Storage: InMemory only" - reality is InMemory only (trait exists for future backends)'
|
|
|
|
- step: S3
|
|
name: Resolve T043 ID conflict
|
|
done: Rename T043-service-integration to T045-service-integration
|
|
status: complete
|
|
owner: peerA
|
|
priority: P0
|
|
notes: "Renamed docs/por/T043-service-integration → T045-service-integration; updated task.yaml id"
|
|
|
|
- step: S4
|
|
name: Fix NightLight example compilation
|
|
done: query_metrics example compiles without errors
|
|
status: complete
|
|
owner: peerB
|
|
priority: P1
|
|
notes: "Fixed by PeerB: Added Serialize derive to QueryResponse + json feature to reqwest"
|
|
|
|
evidence:
|
|
- test_run: "nightlight cargo test --lib"
|
|
result: "43/43 passing (3 api + 24 server + 16 types)"
|
|
- test_run: "creditservice cargo test --lib"
|
|
result: "23/23 passing (21 api + 2 types)"
|