8000 feat(notes): pages for notes and every resource, with @ and # links by adeelahmad · Pull Request #118 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(notes): pages for notes and every resource, with @ and # links - #118

Merged
adeelahmad merged 3 commits into
mainfrom
claude/notes-module-j9j30y
Oct 4, 2026
Merged

adeelahmad merged 3 commits into
mainfrom
claude/notes-module-j9j30y

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Description

Before: notes only existed as short comments on a recording.

After: the API has pages. Free notes sit in a tree per namespace, and every recording, entity, collection and speaker can have its own page. A page has a title, a one-line summary (the context the assistant reads first), a date, a PARA place (project, area, resource, archive), a Markdown body and who wrote it (a person or the assistant). The body links with @[label](kind:id) and #[label](entity:id); links are kept so every page shows its backlinks, and /notes/targets offers what to link. A thing's page follows its recording to another namespace, and stays as a free note when its thing is deleted or merged away.

How: app/domain/notebook.py (tables note_page, note_link in store.SCHEMA, new tables only, so no migration step), routes in app/api/v1/routes/notebook.py under /api/v1/notes, docs in docs/notes.md, plan in DEVLOG.md. The web tree, page view and BlockSuite editor come in the next PR.

Motivation and Context

Adeel's Notes module: every resource has a page, the assistant writes and organises notes, @ and # link them.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change; ! in the title)

Checklist:

  • The title is a Conventional Commit.
  • My code follows the code style of this project (make hooks checks it on commit).
  • I added or updated tests.
  • My change requires documentation updates, and I have updated docs/ accordingly.
  • Users need more than the title to understand it, so I wrote it under ## Unreleased in CHANGELOG.md.

Local suite: 538 passed, 1 failed (test_office_and_text_files_become_documents, LibreOffice missing in this container, known environmental).

🤖 Generated with Claude Code

https://claude.ai/code/session_01XZQXJtCvJgbG1Z2H312KcS


Generated by Claude Code

claude added 2 commits October 4, 2026 09:44
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZQXJtCvJgbG1Z2H312KcS
Free notes in a tree and a page per recording, entity, collection or
speaker, with title, one-line summary, date, PARA place and Markdown body.
Mentions become links with backlinks; pages follow moved recordings and
stay as free notes when their thing is deleted or merged away.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZQXJtCvJgbG1Z2H312KcS
@adeelahmad adeelahmad self-assigned this Oct 4, 2026
The notes' Page schema shared its name with a document's Page, so the
OpenAPI schema kept only one of them.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZQXJtCvJgbG1Z2H312KcS
@adeelahmad
adeelahmad merged commit 3f8c5d9 into main Oct 4, 2026
2 of 5 checks passed
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

0