feat(namespace): write-door forgery refusal (user metadata keys may never start 'system.') + refusal messages name both spellings in every branch (the non-colliding case marks system.<f> honestly as NOT valid) — cross-engine message pin alignment
Some checks failed
CI / Node 22 (push) Failing after 7m34s
CI / Node 24 (push) Failing after 7m25s
CI / Bun (latest) (push) Successful in 12m15s

This commit is contained in:
David Snelling 2026-08-03 16:07:27 -07:00
parent 8e962dabda
commit 48a6130a50
3 changed files with 30 additions and 3 deletions

View file

@ -133,9 +133,13 @@ describe('field-addressing law — pure module pins', () => {
expect(msg).toContain('metadata.createdAt')
})
it('a non-colliding unknown bare name gets the single-candidate refusal', () => {
it('a non-colliding unknown bare name names both spellings — system.<f> explicitly as NOT valid', () => {
// Cross-engine pin (cor's suite greps for both spellings in every
// refusal): the metadata candidate is the fix; the system spelling is
// named but HONESTLY marked invalid, never offered as a candidate.
const msg = buildUnresolvableMessage('scoore', 'entity')
expect(msg).not.toContain('system.scoore')
expect(msg).toContain('metadata.scoore')
expect(msg).toContain('system.scoore')
expect(msg).toContain('NOT valid')
})
})