Files
pftom 31c0bd159f fix(research): require canonical SHA on install, validate memory tags
- installHubEntry now requires entry.source.commitSha to match
  FULL_COMMIT_SHA_PATTERN (40 hex chars). The shorter prefix shape was a
  trust gap: an in-process caller could craft an entry whose commitSha
  matched the approval string by luck, pass the equality check, and
  trigger a re-fetch with ?ref=<short> that GitHub resolves through
  branch/tag names.
- createMemory now validates input.tags as a bounded array of slug
  strings (max 16 entries, 64 bytes each, 512 bytes total) and rejects
  control characters and prompt-frame tokens, so a future memory route
  cannot bypass the 8KB content cap by smuggling instruction-like
  strings through tags that buildMemoryPrefix renders into the prompt
  JSON.
- Added regression tests for both gates.

Generated-By: looper 0.6.1 (runner=fixer, agent=claude-code)
2026-05-07 09:12:34 +08:00
..