Skip to content

Develop - #569

Open
fccview wants to merge 16 commits into
mainfrom
develop
Open

Develop#569
fccview wants to merge 16 commits into
mainfrom
develop

Conversation

@fccview

@fccview fccview commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Attention

This release WILL trigger a migration, from now on all categories will have a .category-info.json file containinga category uuid, sharing information and item order. The next step will be to change the user system to fcus on user uuids instead of usernames, but it's not gonna be as involved as this, much easier. May need another migration, but I'll let you know <3

Changelogs

features

  • Updated all CRUD operations to always ONLY use uuid, been trying to do this forever and I finally cut some time out of everything else to focus on it. This was a huge undertaking and I am frankly exhausted. I'll explain further in the release why it was absolutely necessary, but I have a discussion here talking about it: Community decision around note/checklist urls #485
  • Because of that effort we now have FOLDER SHARING, I am very proud on how it works. I have tried to add this feature for months but I finally have a system I feel is good enough for production, and it seems to be working beautifully. This however means the release comes with a migration.
  • Added sharing badges, inherited-access notices, and folder-sharing controls.
  • Added border-radius customisation and persistent checklist emoji visibility preferences.

bugfix

  • Improved navigation, pinning, sharing permissions, ordering, and Kanban operations through consistent item identification.
  • Strengthened legacy URL compatibility, metadata handling, path safety, and access validation.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 273 files, which is 123 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 67ab3c50-39a0-45e6-8e29-6294e2a8a474

📥 Commits

Reviewing files that changed from the base of the PR and between 9b15db5 and fc0f69b.

📒 Files selected for processing (273)
  • app/(loggedInRoutes)/admin/checklist/[uuid]/page.tsx
  • app/(loggedInRoutes)/admin/note/[uuid]/page.tsx
  • app/(loggedInRoutes)/checklist/[...categoryPath]/page.tsx
  • app/(loggedInRoutes)/checklist/[uuid]/page.tsx
  • app/(loggedInRoutes)/note/[...categoryPath]/page.tsx
  • app/(loggedInRoutes)/note/[uuid]/page.tsx
  • app/_components/FeatureComponents/Admin/Parts/AdminContent.tsx
  • app/_components/FeatureComponents/Admin/Parts/Sharing/AdminSharing.tsx
  • app/_components/FeatureComponents/Admin/Parts/StylingTab.tsx
  • app/_components/FeatureComponents/Admin/Parts/ThemePreview.tsx
  • app/_components/FeatureComponents/Checklists/ChecklistsPageClient.tsx
  • app/_components/FeatureComponents/Checklists/Parts/ChecklistClient.tsx
  • app/_components/FeatureComponents/Checklists/Parts/Common/ChecklistHeader.tsx
  • app/_components/FeatureComponents/Checklists/Parts/Common/LastModifiedCreatedInfo.tsx
  • app/_components/FeatureComponents/Checklists/Parts/Simple/ChecklistBody.tsx
  • app/_components/FeatureComponents/Checklists/Parts/Simple/NestedChecklistItem.tsx
  • app/_components/FeatureComponents/Checklists/TasksPageClient.tsx
  • app/_components/FeatureComponents/Home/HomeClient.tsx
  • app/_components/FeatureComponents/Home/Parts/ChecklistHome.tsx
  • app/_components/FeatureComponents/Home/Parts/NotesHome.tsx
  • app/_components/FeatureComponents/Home/Parts/TagsHome.tsx
  • app/_components/FeatureComponents/Kanban/Kanban.tsx
  • app/_components/FeatureComponents/Kanban/KanbanCard.tsx
  • app/_components/FeatureComponents/Kanban/KanbanCardDetail.tsx
  • app/_components/FeatureComponents/Kanban/KanbanColumn.tsx
  • app/_components/FeatureComponents/Kanban/KanbanPageClient.tsx
  • app/_components/FeatureComponents/Kanban/TimeEntriesModal.tsx
  • app/_components/FeatureComponents/Migration/MigrationPage.tsx
  • app/_components/FeatureComponents/Migration/Parts/MigrationOverride.tsx
  • app/_components/FeatureComponents/Migration/Parts/ShareMigrationView.tsx
  • app/_components/FeatureComponents/Migration/Parts/YamlMetadataMigrationView.tsx
  • app/_components/FeatureComponents/Notes/NoteClient.tsx
  • app/_components/FeatureComponents/Notes/NotesPageClient.tsx
  • app/_components/FeatureComponents/Notes/Parts/NoteEditor/NoteEditor.tsx
  • app/_components/FeatureComponents/Notes/Parts/NoteEditor/NoteEditorContent.tsx
  • app/_components/FeatureComponents/Notes/Parts/NoteEditor/NoteEditorHeader.tsx
  • app/_components/FeatureComponents/Notes/Parts/ReferencedBySection.tsx
  • app/_components/FeatureComponents/Notes/Parts/SwipeNavigationWrapper.tsx
  • app/_components/FeatureComponents/Notes/Parts/TipTap/CustomExtensions/InternalLinkComponent.tsx
  • app/_components/FeatureComponents/Notes/Parts/TipTap/MinimalModeEditor.tsx
  • app/_components/FeatureComponents/Notes/Parts/TipTap/TipTapEditor.tsx
  • app/_components/FeatureComponents/Notes/Parts/UnifiedMarkdownRenderer.tsx
  • app/_components/FeatureComponents/Profile/Parts/ConnectionsGraph/ConnectionsGraph.tsx
  • app/_components/FeatureComponents/Profile/Parts/ConnectionsGraph/graph-data.ts
  • app/_components/FeatureComponents/Profile/Parts/LinksTab.tsx
  • app/_components/FeatureComponents/Profile/Parts/UserPreferencesTab.tsx
  • app/_components/FeatureComponents/PublicView/PublicNoteView.tsx
  • app/_components/FeatureComponents/Search/Parts/SearchResults.tsx
  • app/_components/FeatureComponents/Sidebar/Parts/CategoryList.tsx
  • app/_components/FeatureComponents/Sidebar/Parts/CategoryRenderer.tsx
  • app/_components/FeatureComponents/Sidebar/Parts/SharedItemsList.tsx
  • app/_components/FeatureComponents/Sidebar/Parts/SidebarItem.tsx
  • app/_components/FeatureComponents/Sidebar/Sidebar.tsx
  • app/_components/FeatureComponents/Tags/TagHoverCard.tsx
  • app/_components/GlobalComponents/Cards/ChecklistCard.tsx
  • app/_components/GlobalComponents/Cards/ChecklistGridItem.tsx
  • app/_components/GlobalComponents/Cards/ChecklistListItem.tsx
  • app/_components/GlobalComponents/Cards/FileCard.tsx
  • app/_components/GlobalComponents/Cards/InfoCard.tsx
  • app/_components/GlobalComponents/Cards/NoteCard.tsx
  • app/_components/GlobalComponents/Cards/NoteGridItem.tsx
  • app/_components/GlobalComponents/Cards/NoteListItem.tsx
  • app/_components/GlobalComponents/Dropdowns/CategoryTreeSelector.tsx
  • app/_components/GlobalComponents/FormElements/CategoryInput.tsx
  • app/_components/GlobalComponents/FormElements/RadiusSlider.tsx
  • app/_components/GlobalComponents/Indicators/ShareBadges.tsx
  • app/_components/GlobalComponents/Indicators/SharedFromBadge.tsx
  • app/_components/GlobalComponents/Layout/ReadingProgressBar.tsx
  • app/_components/GlobalComponents/Modals/CategoryModals/CreateCategoryModal.tsx
  • app/_components/GlobalComponents/Modals/ChecklistModals/EditChecklistModal.tsx
  • app/_components/GlobalComponents/Modals/ConfirmationModals/CloneCategoryModal.tsx
  • app/_components/GlobalComponents/Modals/Modal.tsx
  • app/_components/GlobalComponents/Modals/NotesModal/EditNoteModal.tsx
  • app/_components/GlobalComponents/Modals/NotesModal/NoteHistoryModal.tsx
  • app/_components/GlobalComponents/Modals/SettingsModals/Settings.tsx
  • app/_components/GlobalComponents/Modals/SharingModals/FolderShareModal.tsx
  • app/_components/GlobalComponents/Modals/SharingModals/Parts/InheritedNotice.tsx
  • app/_components/GlobalComponents/Modals/SharingModals/ShareModal.tsx
  • app/_consts/files.ts
  • app/_consts/identity.ts
  • app/_consts/notes.ts
  • app/_consts/sharing.ts
  • app/_consts/styling.ts
  • app/_consts/themes.tsx
  • app/_hooks/kanban/useKanban.ts
  • app/_hooks/kanban/useKanbanItem.tsx
  • app/_hooks/lib/delete-list.ts
  • app/_hooks/useAdjacentNotes.ts
  • app/_hooks/useBorderRadius.ts
  • app/_hooks/useChecklist.tsx
  • app/_hooks/useChecklistHome.tsx
  • app/_hooks/useFolderShare.ts
  • app/_hooks/useNoteEditor.tsx
  • app/_hooks/useNotesHome.tsx
  • app/_hooks/useRadiusOverride.ts
  • app/_hooks/useSearch.ts
  • app/_hooks/useSharingTools.ts
  • app/_hooks/useShowEmojis.ts
  • app/_hooks/useSidebar.tsx
  • app/_hooks/useStyling.tsx
  • app/_providers/AppModeProvider.tsx
  • app/_providers/EmojiProvider.tsx
  • app/_providers/PermissionsProvider.tsx
  • app/_providers/ShortcutsProvider.tsx
  • app/_providers/ThemeProvider.tsx
  • app/_schemas/sharing-schemas.ts
  • app/_schemas/user-schemas.ts
  • app/_server/actions/category/crud.ts
  • app/_server/actions/category/index.ts
  • app/_server/actions/category/move.ts
  • app/_server/actions/category/ordering.ts
  • app/_server/actions/category/queries.ts
  • app/_server/actions/checklist-item/archive.ts
  • app/_server/actions/checklist-item/bulk-operations.ts
  • app/_server/actions/checklist-item/crud.ts
  • app/_server/actions/checklist-item/drop.ts
  • app/_server/actions/checklist-item/reorder.ts
  • app/_server/actions/checklist-item/status.ts
  • app/_server/actions/checklist-item/sub-items.ts
  • app/_server/actions/checklist/converters.ts
  • app/_server/actions/checklist/creator.ts
  • app/_server/actions/checklist/crud.ts
  • app/_server/actions/checklist/queries.ts
  • app/_server/actions/checklist/readers.ts
  • app/_server/actions/config/helpers.ts
  • app/_server/actions/config/index.ts
  • app/_server/actions/config/settings.ts
  • app/_server/actions/dashboard/index.ts
  • app/_server/actions/file/index.ts
  • app/_server/actions/history/index.ts
  • app/_server/actions/kanban/calendar.ts
  • app/_server/actions/kanban/items.ts
  • app/_server/actions/kanban/search.ts
  • app/_server/actions/kanban/tempo.ts
  • app/_server/actions/kanban/time-entries.ts
  • app/_server/actions/lib/actor.ts
  • app/_server/actions/lib/concurrency.ts
  • app/_server/actions/lib/legacy-lookup.ts
  • app/_server/actions/lib/metadata-cache.ts
  • app/_server/actions/lib/migration-check.ts
  • app/_server/actions/migration/folder-migration.ts
  • app/_server/actions/migration/helpers.ts
  • app/_server/actions/migration/index-migration.ts
  • app/_server/actions/migration/index.ts
  • app/_server/actions/migration/override.ts
  • app/_server/actions/migration/share-migration.ts
  • app/_server/actions/migration/sharing-migration.ts
  • app/_server/actions/migration/yaml-migration.ts
  • app/_server/actions/note/creator.ts
  • app/_server/actions/note/crud.ts
  • app/_server/actions/note/migration.ts
  • app/_server/actions/note/queries.ts
  • app/_server/actions/note/readers.ts
  • app/_server/actions/notifications/index.ts
  • app/_server/actions/reminders/scanner.ts
  • app/_server/actions/share/access.ts
  • app/_server/actions/share/category-info.ts
  • app/_server/actions/share/mounts.ts
  • app/_server/actions/share/operations.ts
  • app/_server/actions/share/queries.ts
  • app/_server/actions/share/rename.ts
  • app/_server/actions/share/target.ts
  • app/_server/actions/sharing/helpers.ts
  • app/_server/actions/sharing/index.ts
  • app/_server/actions/sharing/io.ts
  • app/_server/actions/sharing/permissions.ts
  • app/_server/actions/sharing/queries.ts
  • app/_server/actions/sharing/share-operations.ts
  • app/_server/actions/sharing/types.ts
  • app/_server/actions/sharing/updates.ts
  • app/_server/actions/users/crud.ts
  • app/_server/actions/users/helpers.ts
  • app/_server/actions/users/index.ts
  • app/_server/actions/users/queries.ts
  • app/_server/actions/ws/broadcast.ts
  • app/_styles/globals.css
  • app/_styles/themes/colors.css
  • app/_translations/de.json
  • app/_translations/en.json
  • app/_translations/es.json
  • app/_translations/fr.json
  • app/_translations/it.json
  • app/_translations/klingon.json
  • app/_translations/ko.json
  • app/_translations/nl.json
  • app/_translations/pirate.json
  • app/_translations/pl.json
  • app/_translations/pt.json
  • app/_translations/ru.json
  • app/_translations/tr.json
  • app/_translations/vi.json
  • app/_translations/zh.json
  • app/_types/audit.ts
  • app/_types/category.ts
  • app/_types/checklist.ts
  • app/_types/config.ts
  • app/_types/core.ts
  • app/_types/enums.ts
  • app/_types/index.ts
  • app/_types/note.ts
  • app/_types/notifications.ts
  • app/_types/sharing.ts
  • app/_types/user.ts
  • app/_utils/api-utils.ts
  • app/_utils/category-utils.ts
  • app/_utils/global-utils.ts
  • app/_utils/grep-utils.ts
  • app/_utils/indexes-utils.ts
  • app/_utils/kanban/api-transforms.ts
  • app/_utils/markdown-utils.tsx
  • app/_utils/order-utils.ts
  • app/_utils/path-utils.ts
  • app/_utils/settings-store.ts
  • app/_utils/sharing-utils.ts
  • app/_utils/sidebar-store.ts
  • app/api/checklists/[listId]/items/[itemIndex]/check/route.ts
  • app/api/checklists/[listId]/items/[itemIndex]/route.ts
  • app/api/checklists/[listId]/items/[itemIndex]/uncheck/route.ts
  • app/api/checklists/[listId]/items/reorder/route.ts
  • app/api/checklists/[listId]/items/route.ts
  • app/api/checklists/[listId]/route.ts
  • app/api/checklists/route.ts
  • app/api/file/[username]/[filename]/route.ts
  • app/api/image/[username]/[filename]/route.ts
  • app/api/kanban/[boardId]/calendar/route.ts
  • app/api/kanban/[boardId]/items/[itemId]/assign/route.ts
  • app/api/kanban/[boardId]/items/[itemId]/reminder/route.ts
  • app/api/kanban/[boardId]/items/[itemId]/route.ts
  • app/api/kanban/[boardId]/items/[itemId]/status/route.ts
  • app/api/kanban/[boardId]/items/route.ts
  • app/api/kanban/[boardId]/route.ts
  • app/api/kanban/[boardId]/statuses/route.ts
  • app/api/kanban/route.ts
  • app/api/notes/[noteId]/route.ts
  • app/api/notes/route.ts
  • app/api/tasks/[taskId]/items/[itemIndex]/route.ts
  • app/api/tasks/[taskId]/items/[itemIndex]/status/route.ts
  • app/api/tasks/[taskId]/items/route.ts
  • app/api/tasks/[taskId]/route.ts
  • app/api/tasks/[taskId]/statuses/[statusId]/route.ts
  • app/api/tasks/[taskId]/statuses/route.ts
  • app/api/tasks/route.ts
  • app/api/video/[username]/[filename]/route.ts
  • app/layout.tsx
  • app/migration/page.tsx
  • app/public/checklist/[...categoryPath]/page.tsx
  • app/public/checklist/[uuid]/page.tsx
  • app/public/note/[...categoryPath]/page.tsx
  • app/public/note/[uuid]/page.tsx
  • howto/API.md
  • instrumentation.ts
  • package.json
  • tests/api/checklists.test.ts
  • tests/api/notes.test.ts
  • tests/api/setup.ts
  • tests/api/tasks.test.ts
  • tests/security/path-containment.test.ts
  • tests/server-actions/category.test.ts
  • tests/server-actions/checklist-item.test.ts
  • tests/server-actions/checklist.test.ts
  • tests/server-actions/dashboard.test.ts
  • tests/server-actions/drop-item.test.ts
  • tests/server-actions/file.test.ts
  • tests/server-actions/history.test.ts
  • tests/server-actions/legacy-lookup.test.ts
  • tests/server-actions/note-readers.test.ts
  • tests/server-actions/note.test.ts
  • tests/server-actions/share-migration.test.ts
  • tests/server-actions/sharing.test.ts
  • tests/utils/concurrency.test.ts
  • tests/utils/delete-list.test.ts
  • tests/utils/metadata-cache.test.ts
  • tests/utils/url-segment.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fccview

fccview commented Jul 31, 2026

Copy link
Copy Markdown
Owner Author

For anyone worrying about the size of this PR and the fact that coderabbit skipped it, this is the aggregation of various pull requests that were individually reviewed. This means code rabbit DID review every single change going live, plus I am intensively testing it all.

It's important to mention that a change this size would have not be possible without the invaluable help from coderabbit, given I am a solo developer and reviewing your own code is just not very viable in a production software. The fact that it's free for open source projects is mind boggling.

Just a friendly shout out to the bunny ❤️

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.

2 participants