@imenam/mcp-documentor 1.0.95 → 1.0.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +4 -4
  2. package/dist/src/core/comment-store.d.ts +2 -0
  3. package/dist/src/core/comment-store.js +1 -0
  4. package/gui/dist/assets/{DocContent-D2Pgvsaw.js → DocContent-BrY-Iro8.js} +78 -78
  5. package/gui/dist/assets/{arc-ytJX8b9b.js → arc-CLqLXjll.js} +1 -1
  6. package/gui/dist/assets/{architectureDiagram-3BPJPVTR-vChxNmWw.js → architectureDiagram-3BPJPVTR-CwUYiEaN.js} +1 -1
  7. package/gui/dist/assets/{blockDiagram-GPEHLZMM-D19nVYke.js → blockDiagram-GPEHLZMM-BxRWQefj.js} +1 -1
  8. package/gui/dist/assets/{c4Diagram-AAUBKEIU-7kCjxzBQ.js → c4Diagram-AAUBKEIU-e81sS5Fy.js} +1 -1
  9. package/gui/dist/assets/channel-BqHd7P2N.js +1 -0
  10. package/gui/dist/assets/{chunk-2J33WTMH-CrEHZokt.js → chunk-2J33WTMH-D9g9Td5K.js} +1 -1
  11. package/gui/dist/assets/{chunk-4BX2VUAB-AGQbPC36.js → chunk-4BX2VUAB-vdls_rRS.js} +1 -1
  12. package/gui/dist/assets/{chunk-55IACEB6-1dY_RrZJ.js → chunk-55IACEB6-C967M7hc.js} +1 -1
  13. package/gui/dist/assets/{chunk-727SXJPM-DFrVc2F4.js → chunk-727SXJPM-BiL6X0Dp.js} +1 -1
  14. package/gui/dist/assets/{chunk-AQP2D5EJ-Bf5AjFYW.js → chunk-AQP2D5EJ-O8ZrPkmV.js} +1 -1
  15. package/gui/dist/assets/{chunk-FMBD7UC4-ytPdLd3c.js → chunk-FMBD7UC4-Bo_Fdtx8.js} +1 -1
  16. package/gui/dist/assets/{chunk-ND2GUHAM-MQj2MK8N.js → chunk-ND2GUHAM-qAxaTLnA.js} +1 -1
  17. package/gui/dist/assets/{chunk-QZHKN3VN-BFpijhFi.js → chunk-QZHKN3VN-DkH1yV4X.js} +1 -1
  18. package/gui/dist/assets/classDiagram-4FO5ZUOK-DdpQgAaY.js +1 -0
  19. package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-DdpQgAaY.js +1 -0
  20. package/gui/dist/assets/{cose-bilkent-S5V4N54A-DydPBClW.js → cose-bilkent-S5V4N54A-Xmteg-jy.js} +1 -1
  21. package/gui/dist/assets/{dagre-BM42HDAG-Dt1NYir9.js → dagre-BM42HDAG-CPTKkffA.js} +1 -1
  22. package/gui/dist/assets/{diagram-2AECGRRQ-By8731FV.js → diagram-2AECGRRQ-ePp2BMJx.js} +1 -1
  23. package/gui/dist/assets/{diagram-5GNKFQAL-6DboNPr2.js → diagram-5GNKFQAL-B-tQSnv6.js} +1 -1
  24. package/gui/dist/assets/{diagram-KO2AKTUF-BlsHXUTP.js → diagram-KO2AKTUF-D1qAsvsW.js} +1 -1
  25. package/gui/dist/assets/{diagram-LMA3HP47-NlfihhmZ.js → diagram-LMA3HP47-CjxtEAWy.js} +1 -1
  26. package/gui/dist/assets/{diagram-OG6HWLK6-BuPvvcLW.js → diagram-OG6HWLK6-DnTm8uNX.js} +1 -1
  27. package/gui/dist/assets/{erDiagram-TEJ5UH35-Bwh4WcoJ.js → erDiagram-TEJ5UH35-C1mIx5Ug.js} +1 -1
  28. package/gui/dist/assets/{flowDiagram-I6XJVG4X-Cpo3jFt_.js → flowDiagram-I6XJVG4X-Dtkxk7lh.js} +1 -1
  29. package/gui/dist/assets/{ganttDiagram-6RSMTGT7-MTzCwVCF.js → ganttDiagram-6RSMTGT7-IQCn_kg9.js} +1 -1
  30. package/gui/dist/assets/{gitGraphDiagram-PVQCEYII-TGZH1N13.js → gitGraphDiagram-PVQCEYII-c7WsVVMK.js} +1 -1
  31. package/gui/dist/assets/{infoDiagram-5YYISTIA-CjtHqsAF.js → infoDiagram-5YYISTIA-a1ZpVZFh.js} +1 -1
  32. package/gui/dist/assets/{ishikawaDiagram-YF4QCWOH-BubX7AqP.js → ishikawaDiagram-YF4QCWOH-IVsvy5UJ.js} +1 -1
  33. package/gui/dist/assets/{journeyDiagram-JHISSGLW-BT5Bu4px.js → journeyDiagram-JHISSGLW-DBtC2yNa.js} +1 -1
  34. package/gui/dist/assets/{kanban-definition-UN3LZRKU-CyiNLbBC.js → kanban-definition-UN3LZRKU-BLOwBMYs.js} +1 -1
  35. package/gui/dist/assets/{linear-rOmZOzd-.js → linear-BdCinjhz.js} +1 -1
  36. package/gui/dist/assets/main-BgzMoT-j.js +10 -0
  37. package/gui/dist/assets/{main-BvGBQ4na.css → main-BhezOZ_3.css} +1 -1
  38. package/gui/dist/assets/{mindmap-definition-RKZ34NQL-Cvy4YAiE.js → mindmap-definition-RKZ34NQL-cWP0zFCd.js} +1 -1
  39. package/gui/dist/assets/{pieDiagram-4H26LBE5-BKrVYqW5.js → pieDiagram-4H26LBE5-CxR8eVFE.js} +1 -1
  40. package/gui/dist/assets/public-BgJMfZNd.css +1 -0
  41. package/gui/dist/assets/public-Rx7tih5F.js +1 -0
  42. package/gui/dist/assets/{quadrantDiagram-W4KKPZXB-DG_N325e.js → quadrantDiagram-W4KKPZXB-qthzhc_J.js} +1 -1
  43. package/gui/dist/assets/{requirementDiagram-4Y6WPE33-oWqsr2x0.js → requirementDiagram-4Y6WPE33-6WAQZRGx.js} +1 -1
  44. package/gui/dist/assets/{sankeyDiagram-5OEKKPKP-B8uXp_JX.js → sankeyDiagram-5OEKKPKP-90Qi-qRN.js} +1 -1
  45. package/gui/dist/assets/{sequenceDiagram-3UESZ5HK-bZUsMsnM.js → sequenceDiagram-3UESZ5HK-DaxEPyZi.js} +1 -1
  46. package/gui/dist/assets/{stateDiagram-AJRCARHV-3o_sYDh3.js → stateDiagram-AJRCARHV-C0GP43Ox.js} +1 -1
  47. package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-DUBbX7tH.js +1 -0
  48. package/gui/dist/assets/{timeline-definition-PNZ67QCA-BWMaBPME.js → timeline-definition-PNZ67QCA-Cd9IggR8.js} +1 -1
  49. package/gui/dist/assets/{vennDiagram-CIIHVFJN-BuBBjBVe.js → vennDiagram-CIIHVFJN-BEk3ZM8f.js} +1 -1
  50. package/gui/dist/assets/{wardley-L42UT6IY-Da4i2-Py.js → wardley-L42UT6IY-F-EGU8Ai.js} +1 -1
  51. package/gui/dist/assets/{wardleyDiagram-YWT4CUSO-Cv3OBAYm.js → wardleyDiagram-YWT4CUSO-C6NLdoVc.js} +1 -1
  52. package/gui/dist/assets/{xychartDiagram-2RQKCTM6-DFmCIdof.js → xychartDiagram-2RQKCTM6-D67ZFrs7.js} +1 -1
  53. package/gui/dist/index.html +3 -3
  54. package/gui/dist/public.html +3 -3
  55. package/package.json +1 -1
  56. package/gui/dist/assets/channel-DegAVRd2.js +0 -1
  57. package/gui/dist/assets/classDiagram-4FO5ZUOK-C8gjytbe.js +0 -1
  58. package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-C8gjytbe.js +0 -1
  59. package/gui/dist/assets/main-DqcEvJHv.js +0 -10
  60. package/gui/dist/assets/public-BOnoF84L.js +0 -1
  61. package/gui/dist/assets/public-BmtG1Lfn.css +0 -1
  62. package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-CfMfyWVZ.js +0 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@ Connect it to Cursor, Claude Desktop, or any MCP-compatible agent to let your AI
11
11
  - **Portable code references** — tracked-file paths are stored relative to a code root set per machine and per project (GUI or `set_code_root`), so synced docs resolve their source files on any machine regardless of where the repos live
12
12
  - **Track a branch, not a checkout** — point a project at a GitHub branch from its settings in the GUI and freshness is measured against *published* code: switching branches or editing without committing no longer makes docs look stale, and a server with no copy of the codebase (an MCP gateway) can still verify them
13
13
  - **Semantic search** — find relevant docs by meaning (requires an OpenAI API key)
14
- - **Multi-project support** — organize docs into separate projects; every MCP tool names the project it targets, and the GUI's project selector is a per-browser view preference
14
+ - **Multi-project support** — organize docs into separate projects; every MCP tool names the project it targets, and the GUI's project selector is a per-browser view preference, with a search field that filters the list by name
15
15
  - **GUI** — built-in web interface, either behind the proxy (`PROXY_URL`) or served directly on a local port (`APP_PORT`); with neither, the GUI worker is not started. Navigation runs from an icon rail on the left: the current project's badge (click to switch projects or create one), then Documentation, Search (`Ctrl/⌘ + K`, current or all projects), Outdated, Recent, Export bundles, Publications and Logs, with Sync and Settings at the bottom. Each destination fills the panel next to the rail; the panel's hide button, or a second click on the active icon, folds it away. Drag the panel's right edge to resize it (double-click resets the width); the browser remembers the width. On wide screens the whole interface is capped at 1600 px and centred. The details panel on the right of a document (`Ctrl/⌘ + \`) is open by default from 1280 px wide; showing or hiding it by hand is remembered across reloads until the window crosses that width. Badges show the outdated docs, pending commits and the day's failed GitHub calls. Each open tab polls `GET /api/changes` every 3 seconds and every request is answered immediately: no connection stays open, so many tabs can share the proxy's origin, and changes made by the agent show up within 3 seconds. After a GUI worker restart, or when it has fallen more than 200 changes behind, the tab reloads the server state (`GET /api/initial-state`) and the list of the project it shows
16
16
  - **Proxy-aware** — integrates with the [proxy-setup](https://github.com/Imena/proxy-setup) for GUI exposure
17
17
  - **Links & structure** — `check_links`, `get_doc_tree`, `move_doc`, and `git_diff_doc` for maintenance workflows
@@ -178,7 +178,7 @@ A document can be shared, read-only, with anyone who holds its link — no accou
178
178
  - **Unpublish** — revokes the link after a confirmation: it answers 404 at once. Publishing again creates a new link.
179
179
  - **Publications page** — the globe of the rail lists every published document of the current project: version note, publication date, state (*Up to date*, *Changed · v12 → v14*, or *Document removed*), with Update, copy, open and Unpublish on each row. *Changed* keeps only the publications that lag behind their document.
180
180
 
181
- What the reader sees is the viewer's rendering (code highlighting, Mermaid, tables, images) without any action. The page shows the document alone — title, publication date, version and note — and nothing about where it comes from: no project name, no header bar. A **Contents** button lists the document's headings. Web links stay active and open in a new tab; links to other documents become plain text; in-page anchors work. Images uploaded to the project are copied into the snapshot when it is frozen, so the page never changes until the publication is updated.
181
+ What the reader sees is the viewer's rendering (code highlighting, Mermaid, tables, images) without any action, except an enlarge button on each image (shown on hover) that opens it over the page at its natural width, capped by the window width; a taller image scrolls vertically. The view zooms up to 400 % with `Ctrl` + wheel (or a trackpad pinch), `Ctrl` + `+`/`-`/`0` or its toolbar, and scrolls both ways once zoomed. A click outside the toolbar or `Escape` closes it. The page shows the document alone — title, publication date, version and note — and nothing about where it comes from: no project name, no header bar. A **Contents** button lists the document's headings. Web links stay active and open in a new tab; links to other documents become plain text; in-page anchors work. Images uploaded to the project are copied into the snapshot when it is frozen, so the page never changes until the publication is updated.
182
182
 
183
183
  ### Comments
184
184
 
@@ -189,9 +189,9 @@ Readers can comment on a published document, without an account:
189
189
  - **Limits** — 20 comments per publication, replies included, and 2,000 characters per comment. A deleted comment frees its place; a comment marked as read does not. Behind the hub, a client sending more than 15 comments in a minute is refused, against automated posting.
190
190
  - **Names** — the name is whatever the reader typed: every name carries a *not verified* tooltip, on the public page and in the GUI.
191
191
 
192
- Comments are visible to everyone holding the link. Marking them as read and deleting them is reserved to the GUI and to the agent (`list_comments`, `mark_comments_read`, `delete_comments`): the public page offers neither.
192
+ Comments are visible to everyone holding the link. Marking them as read and deleting them is reserved to the GUI and to the agent (`list_comments`, `mark_comments_read`, `delete_comments`): the public page offers neither. Once every comment of a thread is marked as read, the public page shows its card with a green edge and a **Treated** pill.
193
193
 
194
- In the GUI, a document with unread comments shows a blue bubble and their number in the tree (a bubble alone on its folders), the globe of the rail counts the project's unread comments, and the document toolbar has a comment button. The details panel on the right gets a **Comments** tab, opened by itself on a document with unread comments: each comment can be marked as read or deleted, **Close comments** stops readers from adding any (existing ones stay visible; **Reopen comments** lifts it), a click on it scrolls to its highlighted passage, and a click on a highlighted passage opens its comment.
194
+ In the GUI, a document with unread comments shows a blue bubble and their number in the tree, in the indentation left of its icon (a bubble alone after the name of its folders), the globe of the rail counts the project's unread comments, and the document toolbar has a comment button. The details panel on the right gets a **Comments** tab, opened by itself on a document with unread comments: each comment can be marked as read or deleted, **Close comments** stops readers from adding any (existing ones stay visible; **Reopen comments** lifts it), a click on it scrolls to its highlighted passage, and a click on a highlighted passage opens its comment.
195
195
 
196
196
  A comment points at a passage by its text, plus the text just around it. When a publication is updated and a commented passage no longer exists, the comment is kept and marked **detached**: readers no longer see it, the GUI lists it apart with its original passage and versions, and `list_comments` flags it `DETACHED` so the agent can clean them up. A detached comment whose passage comes back in a later update is attached again. Passages are compared without whitespace, against the rendered text of the markdown.
197
197
 
@@ -47,6 +47,8 @@ export interface PublicComment {
47
47
  author: string;
48
48
  body: string;
49
49
  createdAt: string;
50
+ /** Marked as read by the documentation owner. */
51
+ read: boolean;
50
52
  }
51
53
  export interface NewCommentInput {
52
54
  parentId?: unknown;
@@ -51,6 +51,7 @@ export function toPublicComment(comment) {
51
51
  author: comment.author,
52
52
  body: comment.body,
53
53
  createdAt: comment.createdAt,
54
+ read: comment.read,
54
55
  };
55
56
  }
56
57
  /** Root comment of a thread, or the comment itself when it is a root. */