chore: refresh graphify map for the lnw identity change

This commit is contained in:
2026-08-11 18:00:29 +07:00
parent 27dda60185
commit c09b7d6c98
5 changed files with 882 additions and 506 deletions
-3
View File
@@ -15,10 +15,8 @@
"13": "Web UI Handlers",
"14": "Go Error Handling",
"15": "CDP Browser Client",
"16": "Cover Storage",
"17": "Go Code Style Guide",
"18": "Agent Skills",
"19": "Store Migrations",
"20": "I/O Performance Patterns",
"21": "CPU Optimization",
"22": "Caching Patterns",
@@ -37,7 +35,6 @@
"35": "Web UI Filter Logic",
"36": "Userscript Test Harness",
"37": "Product & Security Context",
"38": "Session Store Tests",
"39": "UI Critique 2026-07-26A",
"40": "UI Critique 2026-07-26B",
"41": "DB Cutover Runbook",
+21 -36
View File
@@ -1,16 +1,16 @@
# Graph Report - mangaBookmark (2026-08-11)
## Corpus Check
- 107 files · ~261,410 words
- 108 files · ~265,471 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1634 nodes · 3179 edges · 280 communities (65 shown, 215 thin omitted)
- Extraction: 90% EXTRACTED · 10% INFERRED · 0% AMBIGUOUS · INFERRED: 309 edges (avg confidence: 0.77)
- 1644 nodes · 3206 edges · 277 communities (62 shown, 215 thin omitted)
- Extraction: 90% EXTRACTED · 10% INFERRED · 0% AMBIGUOUS · INFERRED: 312 edges (avg confidence: 0.77)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `c400c91a`
- Built from commit: `27dda601`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -31,10 +31,8 @@
- [[_COMMUNITY_Web UI Handlers|Web UI Handlers]]
- [[_COMMUNITY_Go Error Handling|Go Error Handling]]
- [[_COMMUNITY_CDP Browser Client|CDP Browser Client]]
- [[_COMMUNITY_Cover Storage|Cover Storage]]
- [[_COMMUNITY_Go Code Style Guide|Go Code Style Guide]]
- [[_COMMUNITY_Agent Skills|Agent Skills]]
- [[_COMMUNITY_Store Migrations|Store Migrations]]
- [[_COMMUNITY_IO Performance Patterns|I/O Performance Patterns]]
- [[_COMMUNITY_CPU Optimization|CPU Optimization]]
- [[_COMMUNITY_Caching Patterns|Caching Patterns]]
@@ -53,7 +51,6 @@
- [[_COMMUNITY_Web UI Filter Logic|Web UI Filter Logic]]
- [[_COMMUNITY_Userscript Test Harness|Userscript Test Harness]]
- [[_COMMUNITY_Product & Security Context|Product & Security Context]]
- [[_COMMUNITY_Session Store Tests|Session Store Tests]]
- [[_COMMUNITY_UI Critique 2026-07-26A|UI Critique 2026-07-26A]]
- [[_COMMUNITY_UI Critique 2026-07-26B|UI Critique 2026-07-26B]]
- [[_COMMUNITY_DB Cutover Runbook|DB Cutover Runbook]]
@@ -300,7 +297,7 @@
2. `newWebTestServer()` - 49 edges
3. `newTestStore()` - 42 edges
4. `newTestStore()` - 41 edges
5. `e()` - 32 edges
5. `e()` - 33 edges
6. `Handler` - 29 edges
7. `ne()` - 28 edges
8. `De()` - 28 edges
@@ -333,7 +330,7 @@
- **Headless browser infrastructure (sidecar, on-demand, home deployment)** — docs_adr_0005_on_demand_browser_headless_shell, docs_adr_0005_on_demand_browser_cdp, docs_adr_0005_on_demand_browser_on_demand_start, docs_adr_0006_browser_on_the_home_machine_home_machine_rationale [INFERRED 0.85]
- **lightnovelworld series-identity investigation and fix** — docs_research_lightnovelworld_chapter_vs_series_slug_issue_77, docs_research_lightnovelworld_chapter_vs_series_slug_unscoped_regex, docs_adr_0008_series_identity_is_discovered_not_derived_discovered_identity [INFERRED 0.85]
## Communities (280 total, 215 thin omitted)
## Communities (277 total, 215 thin omitted)
### Community 0 - "HTMX Library Internals"
Cohesion: 0.08
@@ -345,19 +342,19 @@ Nodes (84): floatPtr(), testConfig(), getCover(), Cookie, Handler, ResponseRecor
### Community 2 - "Manga Userscript Adapters"
Cohesion: 0.06
Nodes (77): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+69 more)
Nodes (76): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+68 more)
### Community 3 - "Novel Userscript Adapters"
Cohesion: 0.06
Nodes (74): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+66 more)
Nodes (79): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+71 more)
### Community 4 - "Series Acquisition Tests"
Cohesion: 0.10
Nodes (67): bookmarkNewKaganeSeries(), bookmarkNewNovelfullSeries(), bookmarkNewSeries(), Context, Store, T, newAcquirer(), readBookmark() (+59 more)
### Community 5 - "Bookmarks API Tests"
Cohesion: 0.07
Nodes (71): auth(), getBookmarks(), Handler, Request, Store, T, newTestServer(), newTestStore() (+63 more)
Cohesion: 0.08
Nodes (67): auth(), getBookmarks(), Handler, Request, Store, T, newTestServer(), newTestStore() (+59 more)
### Community 7 - "Cover & Acquire Internals"
Cohesion: 0.08
@@ -376,8 +373,8 @@ Cohesion: 0.05
Nodes (39): Test Helpers, Test Timeout, Basic Handler Test, HTTP Handler Testing, Query Parameters and Headers, Docker Compose Fixture, Integration Testing, SQL Schema Fixture (+31 more)
### Community 11 - "Store Tests"
Cohesion: 0.14
Nodes (44): scanSeries(), Store, T, newTestStore(), readLatestCheckedAt(), readSeries(), secondReader(), seedForCheck() (+36 more)
Cohesion: 0.05
Nodes (75): T, TestCreateAndGetSession(), TestDeleteSessionIsPerReader(), TestDeleteSessionRevokes(), TestExpiredSessionIsGone(), TestGetSessionUnknownID(), applyMigration(), CoverContentType() (+67 more)
### Community 12 - "Bookmarks API Handler"
Cohesion: 0.08
@@ -392,21 +389,13 @@ Cohesion: 0.06
Nodes (33): Creating Errors, Custom Error Types, Custom types that wrap other errors, Decision table: which error strategy to use, Error Creation, Error String Conventions, Errors as Values, `errors.New` — static error messages (+25 more)
### Community 15 - "CDP Browser Client"
Cohesion: 0.12
Nodes (22): Action, awaitPromise(), browserConnectionLost(), classifyBrowserError(), Context, Mutex, isInterstitial(), jsString() (+14 more)
### Community 16 - "Cover Storage"
Cohesion: 0.09
Nodes (7): CoverContentType(), coverRelativePath(), coverSourceAddress(), displayChapter(), Store, TestDisplayChapter(), Bookmark
Cohesion: 0.08
Nodes (29): Action, awaitPromise(), browserConnectionLost(), classifyBrowserError(), Context, Mutex, isInterstitial(), jsString() (+21 more)
### Community 17 - "Go Code Style Guide"
Cohesion: 0.08
Nodes (23): Code Style Details, Extract Complex Conditions, Value vs Pointer Arguments, Code Organization Within Files, Complex Conditions & Init Scope, Composite Literals, Control Flow, Cross-References (+15 more)
### Community 19 - "Store Migrations"
Cohesion: 0.19
Nodes (18): applyMigration(), migrate(), Open(), refreshOwnerToken(), seedOwner(), TestCoverIsContentAddressedOnFilesystem(), TestCoverPersistsAcrossReopen(), TestMigration0002BackfillsExistingBookmarks() (+10 more)
### Community 20 - "I/O Performance Patterns"
Cohesion: 0.11
Nodes (18): Avoid io.ReadAll for large payloads, Batch Operations, Buffered I/O, Cgo Overhead, Channel: batch processing from a stream, Concurrent Multi-Stage Pipelines, Connection pooling, Database: batch inserts over row-by-row (+10 more)
@@ -463,10 +452,6 @@ Nodes (5): closeCardPanels(), setActiveTab(), toggleChapterForm(), toggleConfirm
Cohesion: 0.17
Nodes (11): Accessibility & Inclusion, Brand Commitments, Capabilities and Constraints, Evidence on Hand, Operating Context, Platform, Positioning, Product (+3 more)
### Community 38 - "Session Store Tests"
Cohesion: 0.48
Nodes (6): T, TestCreateAndGetSession(), TestDeleteSessionIsPerReader(), TestDeleteSessionRevokes(), TestExpiredSessionIsGone(), TestGetSessionUnknownID()
### Community 39 - "UI Critique 2026-07-26A"
Cohesion: 0.29
Nodes (6): Design Health Score, Design Specificity Verdict, Minor Observations, Persona Red Flags, Priority Issues, Questions to Consider
@@ -592,19 +577,19 @@ Cohesion: 0.50
Nodes (3): Live URL shapes (verified 2026-07-26, may drift — re-check against live pages before trust), Second script: `novel-bookmark.user.js`, Userscript structure (single IIFE, `manga-bookmark.user.js`)
## Knowledge Gaps
- **544 isolated node(s):** `bookmarkmanager/backend`, `ctxKey`, `loginView`, `ctxKey`, `test` (+539 more)
- **545 isolated node(s):** `bookmarkmanager/backend`, `ctxKey`, `loginView`, `ctxKey`, `test` (+540 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **215 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `New()` connect `Series Acquisition Tests` to `Bookmarks API Tests`, `Cover & Acquire Internals`, `Session Middleware`, `Web UI Handlers`, `Store Migrations`?**
_High betweenness centrality (0.037) - this node is a cross-community bridge._
- **Why does `Open()` connect `Store Migrations` to `Cover Fetch Test Helpers`, `Series Acquisition Tests`, `Bookmarks API Tests`, `Store Tests`, `Cover Storage`, `PG Test Infrastructure`?**
_High betweenness centrality (0.033) - this node is a cross-community bridge._
- **Why does `New()` connect `Series Acquisition Tests` to `Bookmarks API Tests`, `Cover & Acquire Internals`, `Session Middleware`, `Store Tests`, `Web UI Handlers`?**
_High betweenness centrality (0.041) - this node is a cross-community bridge._
- **Why does `Open()` connect `Store Tests` to `Cover Fetch Test Helpers`, `Series Acquisition Tests`, `Bookmarks API Tests`, `PG Test Infrastructure`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Why does `newRouter()` connect `Bookmarks API Tests` to `Cover Fetch Test Helpers`, `Bookmarks API Handler`, `Series Acquisition Tests`?**
_High betweenness centrality (0.020) - this node is a cross-community bridge._
_High betweenness centrality (0.022) - this node is a cross-community bridge._
- **Are the 47 inferred relationships involving `testConfig()` (e.g. with `TestListRendersAcquiredCover()` and `TestPublicCoverNeverEchoesNonImage()`) actually correct?**
_`testConfig()` has 47 INFERRED edges - model-reasoned connections that need verification._
- **Are the 8 inferred relationships involving `newWebTestServer()` (e.g. with `TestListRendersAcquiredCover()` and `TestPublicCoverRejectsUnknownAddress()`) actually correct?**
@@ -612,4 +597,4 @@ _Questions this graph is uniquely positioned to answer:_
- **Are the 6 inferred relationships involving `newTestStore()` (e.g. with `TestCreateAndGetSession()` and `TestDeleteSessionIsPerReader()`) actually correct?**
_`newTestStore()` has 6 INFERRED edges - model-reasoned connections that need verification._
- **What connects `bookmarkmanager/backend`, `ctxKey`, `loginView` to the rest of the system?**
_588 weakly-connected nodes found - possible documentation gaps or missing edges._
_589 weakly-connected nodes found - possible documentation gaps or missing edges._
File diff suppressed because one or more lines are too long
+826 -437
View File
File diff suppressed because it is too large Load Diff
+31 -26
View File
@@ -140,7 +140,7 @@
"semantic_hash": "3a08979e4603aae5c32a58d5b6c39765"
},
"CLAUDE.md": {
"mtime": 1786421860.5298452,
"mtime": 1786446007.0443642,
"ast_hash": "8f79ab45cb9c6466da7c4b65f0bceadf",
"semantic_hash": ""
},
@@ -200,7 +200,7 @@
"semantic_hash": "e69a8340a371579ca3ea689660f7d7bd"
},
"AGENTS.md": {
"mtime": 1786421860.5298452,
"mtime": 1786446007.0443642,
"ast_hash": "8f79ab45cb9c6466da7c4b65f0bceadf",
"semantic_hash": ""
},
@@ -255,9 +255,9 @@
"semantic_hash": "e900f92971486f47d7ef76e9a95217fe"
},
"backend/internal/latest/fetch.go": {
"mtime": 1785873769.5475056,
"ast_hash": "398a3dc942a2cdbef6786d9868acb216",
"semantic_hash": "398a3dc942a2cdbef6786d9868acb216"
"mtime": 1786446006.9219902,
"ast_hash": "3e20ad86aa46783e9aa95c2b746551ee",
"semantic_hash": ""
},
"backend/internal/latest/poller.go": {
"mtime": 1786363889.5565126,
@@ -265,19 +265,19 @@
"semantic_hash": "ebb0ee4e57d62b6aed97b8d266639a23"
},
"backend/internal/latest/poller_test.go": {
"mtime": 1786363889.5602942,
"ast_hash": "d14b179fb7eaab2885374b0aa9cf6967",
"semantic_hash": "d14b179fb7eaab2885374b0aa9cf6967"
"mtime": 1786446006.9219902,
"ast_hash": "91151a7671a3fb1efc957137cfc6839b",
"semantic_hash": ""
},
"backend/internal/latest/sites.go": {
"mtime": 1786363889.5602942,
"ast_hash": "3c1dfa79e1d50d43f5d4b26f0e612913",
"semantic_hash": "3c1dfa79e1d50d43f5d4b26f0e612913"
"mtime": 1786446006.9219902,
"ast_hash": "a424fb3b3e1c5afb4ab545c2e88b167c",
"semantic_hash": ""
},
"backend/internal/latest/sites_test.go": {
"mtime": 1786363889.5602942,
"ast_hash": "da1bfc7239936ae1fa70fcaf37d4106b",
"semantic_hash": "da1bfc7239936ae1fa70fcaf37d4106b"
"mtime": 1786446006.9219902,
"ast_hash": "eabca9014a306e3c71d238b0ae499f61",
"semantic_hash": ""
},
"backend/internal/latest/smoke_image_test.go": {
"mtime": 1786363889.5602942,
@@ -395,14 +395,14 @@
"semantic_hash": "8008a187690764436540fab47ba0cfcc"
},
"userscript/novel-bookmark.user.js": {
"mtime": 1786363889.5716388,
"ast_hash": "3c8c241f7b67ddb00d2fc5f9c5b927c7",
"semantic_hash": "3c8c241f7b67ddb00d2fc5f9c5b927c7"
"mtime": 1786446006.925938,
"ast_hash": "64f8d2848294c7aeb8b2e9d43a049fd0",
"semantic_hash": ""
},
"userscript/test/novel-logic.test.js": {
"mtime": 1786363889.5716388,
"ast_hash": "c54599d4beb533b5c522bf48ebacea1f",
"semantic_hash": "c54599d4beb533b5c522bf48ebacea1f"
"mtime": 1786446006.925938,
"ast_hash": "be732600e57fe4ad2e585e9c84d6f341",
"semantic_hash": ""
},
".opencode/agent/implementer.md": {
"mtime": 1785873769.5402634,
@@ -510,14 +510,14 @@
"semantic_hash": "69114d07ed792d6bb1d13758ba5435e1"
},
"userscript/AGENTS.md": {
"mtime": 1786363889.5678573,
"ast_hash": "36ec1d31cb1f4f6a0263f570a146ecfa",
"semantic_hash": "36ec1d31cb1f4f6a0263f570a146ecfa"
"mtime": 1786446006.9219902,
"ast_hash": "954caa07b01ab323ab205e29f0bcacd8",
"semantic_hash": ""
},
"userscript/CLAUDE.md": {
"mtime": 1786363889.5678573,
"ast_hash": "36ec1d31cb1f4f6a0263f570a146ecfa",
"semantic_hash": "36ec1d31cb1f4f6a0263f570a146ecfa"
"mtime": 1786446006.9219902,
"ast_hash": "954caa07b01ab323ab205e29f0bcacd8",
"semantic_hash": ""
},
"backend/internal/web/static/login-art.png": {
"mtime": 1786022513.9585779,
@@ -603,5 +603,10 @@
"mtime": 1786417841.7163916,
"ast_hash": "74a4e538875f0a7e8ca3d5dc48c0bb53",
"semantic_hash": "74a4e538875f0a7e8ca3d5dc48c0bb53"
},
"backend/internal/latest/smoke_lnw_test.go": {
"mtime": 1786446006.9219902,
"ast_hash": "2d65da8a081759172918fdf159760f45",
"semantic_hash": ""
}
}