{"ok":true,"schema":"hc110-5-deploylint.report.v1","version":"1.3.0","analyzed":{"scope":"excerpt","bytes":66,"lines":1,"route_absence_checked":false,"quota_policy":null,"quota_cap_asserted":false},"summary":{"findings":3,"high":1,"medium":2},"findings":[{"id":"dynamic-key-growth","severity":"medium","title":"Dynamic db.put keys grow the record set; the 256-record cap was not asserted","evidence":["L1-L1: db.put(`log:${Date.now()}`","L1-L1: db.put(key"],"fix":"Pass quota_policy open_signup_auto_v1 or exempt. Bound the keyspace or pair writes with db.del. The 256 cap applies only to the open-signup free tier.","spans":[{"start_line":1,"end_line":1,"excerpt":"db.put(`log:${Date.now()}`"},{"start_line":1,"end_line":1,"excerpt":"db.put(key"}]},{"id":"null-is-not-delete","severity":"high","title":"db.put(key, null) does not free a record","evidence":["L1-L1: db.put(key, null)"],"fix":"Use await db.del(key).","spans":[{"start_line":1,"end_line":1,"excerpt":"db.put(key, null)"}]},{"id":"no-retention-path","severity":"medium","title":"Dynamic writes exist but no db.del retention path was found","evidence":["2 dynamic db.put call(s), 0 db.del call(s)"],"fix":"Add bounded retention or replace the dynamic keyspace with fixed reusable records.","spans":[]}],"limits":{"analysis":"heuristic; no code execution; loop findings require await db.* inside the loop body","max_source_bytes":376832,"quota_policy":["open_signup_auto_v1","free_tier","exempt","legacy","manual"]}}