Skip to content

refactor(avatars): make avatars a plain resource pointer, not a pinned signature#167

Merged
QuickMythril merged 3 commits into
mainfrom
feat/avatar-resource-pointer
Jul 23, 2026
Merged

refactor(avatars): make avatars a plain resource pointer, not a pinned signature#167
QuickMythril merged 3 commits into
mainfrom
feat/avatar-resource-pointer

Conversation

@QuickMythril

Copy link
Copy Markdown
Member

Summary

  • replace signature-pinned account and group avatars with a plain QDN resource pointer: service, registered name, and optional identifier
  • resolve the latest target revision at serve time, allow pointers to any registered name, and keep the target existence-independent at assignment time
  • retain the height-70000 activation and setter authorization while enforcing raster type and the 500 KiB bound when serving
  • harden UTF-8 wire-length validation, reject unknown serialized service IDs cleanly, and repair group rollback reference traversal
  • update database schemas, transaction transforms, API metadata, tests, and the superseding changelog entry

Validation

  • focused avatar, repository, JSON, serialization, rollback, and chain-config gate: 58 tests; 0 failures; 0 errors
  • complete Maven suite: 2792 tests; 0 failures; 0 errors; 64 skipped
  • git diff --check passed

QuickMythril and others added 3 commits July 23, 2026 15:47
…d signature

Replaces the signature-pinned, owner-restricted avatar model with a plain
(service, name, identifier) pointer resolved to the target resource's latest
revision. Any registered name's resource may be pointed at (no owner check),
the target need not pre-exist, and the image type/size are enforced only at
serve time. Setter authorization (account owner / group owner / group approval)
is unchanged, and the height-70000 activation is unchanged. Safe pre-activation:
avatar txs are inert until 70000 and none exist, so the tx format, DB schema
(baseline + upgrades) and API change with zero migration.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ema test

The v3->v4 upgrade runs before PUBLIC.REGISTEREDNAME exists in the incremental
upgrade path, so avatar_name uses VARCHAR(128) in both baseline and upgrades.
RepositoryTests now asserts the tuple columns instead of AVATAR_SIGNATURE.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@QuickMythril
QuickMythril merged commit 8d5fbea into main Jul 23, 2026
9 checks passed
@QuickMythril
QuickMythril deleted the feat/avatar-resource-pointer branch July 23, 2026 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant