Delete SHARE_NOTES and MANAGE_NOTES_SETTINGS, which name nothing

Featurekamo-shared-library
Shipped
August 15, 2026 at 2:00 AM UTC
Author
Kamo
Commit
336b88d

Notes are real, and as of today fully gated — VIEW, CREATE, EDIT and DELETE are enforced on every endpoint of KBService's NotesController. These two had nothing to name. There is no sharing modelled anywhere in the platform: no column on Note, no field on NoteDTO, no note_shares table — the note tables are notes, note_tags, note_versions and note_embedding_records — no endpoint among the ten, and no UI. The three "share" hits in FloatingNote.tsx are prose and the ones in the service are the com.kamo.z.shared package name. The architecture points the same way: a note's content key is derived from its owner, so sharing one is a re-keying problem rather than a missing endpoint. MANAGE_NOTES_SETTINGS has no settings surface either — no tab under settings/features, no route under app/settings, no config table, no config entity, no reference anywhere in the frontend. This is the CREATE_CHANNELS case, where the noun does not exist, and deliberately not the MANAGE_MEETINGS case kept last week, where the noun is modelled — MeetingStatus already has CANCELLED and ENDED, and WebinarService drives both — and only the verb is unexposed. The test that pins the taxonomy carries the reasoning. Taxonomy 196/132/33/31 becomes 194/131/33/30, 63 roots. Two numbers move rather than three: SHARE_NOTES was one of VIEW_NOTES' four children, so VIEW_NOTES stays a root-with-children instead of collapsing the way ACCESS_CHAT did. Ids 72-73 are burned. RoleRightTypeIdConverter persists the id, so a future right reusing one would inherit whatever those rows meant in the orgs that had them switched on. Stored rows are removed by NotesRightsPurgeMigration.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing