Update manifest and add new AST cache for blog frontend sync and default cover

- Updated modification times and AST hashes for several files in the manifest.json.
- Added new entries for `app/api/revalidate/route.js`, `components/blog/detail/Faq.js`, `components/blog/detail/Sources.js`, and other files related to blog functionality.
- Introduced a new AST cache file for the blog frontend sync and default cover prompt, including detailed node and edge relationships.
This commit is contained in:
hamed
2026-07-27 19:38:55 +03:30
parent 19ae08c04a
commit 533449c504
7 changed files with 943 additions and 221 deletions
+6 -1
View File
@@ -400,5 +400,10 @@
"398": "Community 398",
"399": "Community 399",
"400": "Community 400",
"401": "Community 401"
"401": "Community 401",
"402": "Community 402",
"403": "Community 403",
"404": "Community 404",
"405": "Community 405",
"406": "Community 406"
}
+52 -42
View File
@@ -1,16 +1,16 @@
# Graph Report - nobat724_front (2026-07-26)
# Graph Report - nobat724_front (2026-07-27)
## Corpus Check
- 634 files · ~570,772 words
- 639 files · ~576,045 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 2389 nodes · 2466 edges · 402 communities (367 shown, 35 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 171 edges (avg confidence: 0.8)
- 2422 nodes · 2500 edges · 407 communities (372 shown, 35 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 176 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `d02ae8bf`
- Built from commit: `19ae08c0`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -175,35 +175,37 @@
- [[_COMMUNITY_Community 395|Community 395]]
- [[_COMMUNITY_Community 397|Community 397]]
- [[_COMMUNITY_Community 398|Community 398]]
- [[_COMMUNITY_Community 402|Community 402]]
- [[_COMMUNITY_Community 403|Community 403]]
## God Nodes (most connected - your core abstractions)
1. `getStateInfo()` - 29 edges
2. `🏥 نوبت724 (Nobat724) - سیستم نوبت‌دهی آنلاین پزشکی` - 19 edges
3. `تقسیم ممیزی SEO به پرامپت‌های کوچک اجرایی — nobat724` - 18 edges
4. `imageUrl()` - 15 edges
5. `Blog()` - 14 edges
4. `imageUrl()` - 16 edges
5. `Blog()` - 15 edges
6. `Clinic()` - 13 edges
7. `Doctor()` - 12 edges
8. `Dashboard()` - 10 edges
9. `sitemap()` - 10 edges
10. `buildCanonicalUrl()` - 10 edges
8. `generateMetadata()` - 10 edges
9. `Dashboard()` - 10 edges
10. `sitemap()` - 10 edges
## Surprising Connections (you probably didn't know these)
- `Blog()` --calls--> `normalizeBlog()` [INFERRED]
app/blog/[slug]/page.js → helper/index.js
- `SpecialtyDetail()` --calls--> `buildSpecialtyFaq()` [INFERRED]
app/specialties/[slug]/page.js → lib/specialtyContent.js
- `AboutUsPage()` --calls--> `getStateInfo()` [INFERRED]
components/aboutUs/index.js → lib/getStateInfo.js
- `ContactUsPage()` --calls--> `getStateInfo()` [INFERRED]
components/contactUs/index.js → lib/getStateInfo.js
- `SearchBar()` --calls--> `getStateInfo()` [INFERRED]
components/home/search/index.js → lib/getStateInfo.js
- `StLayout()` --calls--> `getStateInfo()` [INFERRED]
components/layout/StLayout.js → lib/getStateInfo.js
## Import Cycles
- None detected.
## Communities (402 total, 35 thin omitted)
## Communities (407 total, 35 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.05
@@ -223,11 +225,11 @@ Nodes (16): getCurrentDomain(), robots(), cityFilterParams(), fetchAllPages(), g
### Community 4 - "Community 4"
Cohesion: 0.06
Nodes (21): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+13 more)
Nodes (22): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+14 more)
### Community 5 - "Community 5"
Cohesion: 0.05
Nodes (35): bookingState(), DAY_NAMES, formatJalali(), AppointmentList(), ItemAppointment(), AboutDcotor(), ClaimProfileSection(), currentUserMobile() (+27 more)
Cohesion: 0.07
Nodes (26): bookingState(), DAY_NAMES, formatJalali(), AppointmentList(), ItemAppointment(), AboutDcotor(), ClaimProfileSection(), currentUserMobile() (+18 more)
### Community 6 - "Community 6"
Cohesion: 0.22
@@ -322,8 +324,8 @@ Cohesion: 0.12
Nodes (16): دیپلوی nobat724_front روی Liara (پلتفرم Next.js), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+8 more)
### Community 29 - "Community 29"
Cohesion: 0.13
Nodes (11): generateMetadata(), Blogs(), generateMetadata(), Appointment(), metadata, fetchSiteContext(), getStateInfo(), siteContextCache (+3 more)
Cohesion: 0.08
Nodes (20): generateMetadata(), Blogs(), generateMetadata(), Clinics(), Appointment(), metadata, Doctors(), generateMetadata() (+12 more)
### Community 30 - "Community 30"
Cohesion: 0.12
@@ -386,8 +388,8 @@ Cohesion: 0.14
Nodes (13): `hours/List.js`, آبجکت اسلات (از `adaptSlots` / API), تأیید و سخت‌سازی غیرفعال‌بودن اسلات‌های گذشته در صفحه‌ی نوبت, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (کد واقعی) (+5 more)
### Community 45 - "Community 45"
Cohesion: 0.25
Nodes (16): generateMetadata(), generateMetadata(), generateMetadata(), imageUrl(), domainScopeCityId(), extractEntityCityId(), findCityById(), isBlogVisibleOnDomain() (+8 more)
Cohesion: 0.40
Nodes (9): generateMetadata(), blogCover(), imageUrl(), domainScopeCityId(), findCityById(), isBlogVisibleOnDomain(), Blog(), getBlog (+1 more)
### Community 46 - "Community 46"
Cohesion: 0.22
@@ -494,8 +496,8 @@ Cohesion: 0.22
Nodes (7): degree, Form(), gender, degree, Form(), gender, filterList()
### Community 72 - "Community 72"
Cohesion: 0.26
Nodes (14): generateMetadata(), findDomainByCityId(), buildCanonicalPath(), buildCanonicalQuery(), buildCanonicalUrl(), buildFilteredListingCanonical(), buildMainCanonicalUrl(), CANONICAL_QUERY_KEYS (+6 more)
Cohesion: 0.24
Nodes (15): generateMetadata(), findDomainByCityId(), buildCanonicalPath(), buildCanonicalQuery(), buildCanonicalUrl(), buildFilteredListingCanonical(), buildMainCanonicalUrl(), CANONICAL_QUERY_KEYS (+7 more)
### Community 73 - "Community 73"
Cohesion: 0.32
@@ -518,8 +520,8 @@ Cohesion: 0.17
Nodes (11): زمینه, سایت دامنه اختصاصی نماینده سراسری — تشخیص دامنه، فیلتر پزشکان/کلینیک‌ها, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+3 more)
### Community 81 - "Community 81"
Cohesion: 0.29
Nodes (11): Detail(), getClinicAddress(), getClinicCity(), getClinicPhone(), getClinicState(), hasClinicContact(), telHref(), toE164Ir() (+3 more)
Cohesion: 0.24
Nodes (14): generateMetadata(), Detail(), getClinicAddress(), getClinicCity(), getClinicPhone(), getClinicState(), hasClinicContact(), telHref() (+6 more)
### Community 82 - "Community 82"
Cohesion: 0.17
@@ -530,8 +532,8 @@ Cohesion: 0.24
Nodes (5): Head(), Article(), LatestArticles(), Title(), ItemTitle()
### Community 86 - "Community 86"
Cohesion: 0.19
Nodes (11): generateMetadata(), DoctorsPage(), resolveCityDisplayName(), isRootCity(), IDS_WITH_ACTIVE_CHILDREN, isCategorySpecialty(), isIndexableSpecialty(), ListDoctors() (+3 more)
Cohesion: 0.16
Nodes (15): RootLayout(), generateMetadata(), safeJsonLd(), bodyVariants(), buildSpecialtyFaq(), buildSpecialtyIntro(), closingVariants(), openingVariants() (+7 more)
### Community 87 - "Community 87"
Cohesion: 0.33
@@ -606,12 +608,12 @@ Cohesion: 0.15
Nodes (12): اصلاح بخش «اطلاعات تماس» صفحه کلینیک, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+4 more)
### Community 140 - "Community 140"
Cohesion: 0.36
Nodes (6): RootLayout(), Pageguide(), absoluteUrl(), buildBreadcrumbJsonLd(), normalizeBreadcrumb(), safeJsonLd()
Cohesion: 0.53
Nodes (4): Pageguide(), absoluteUrl(), buildBreadcrumbJsonLd(), normalizeBreadcrumb()
### Community 354 - "Community 354"
Cohesion: 0.15
Nodes (9): Clinics(), generateMetadata(), buildClinicParams(), getRequestOrigin(), isMaintenanceError(), isNextRedirectError(), axiosInstance, fetchReq() (+1 more)
Cohesion: 0.11
Nodes (18): زمینه, سینک کامل صفحهٔ بلاگ با بک‌اند + تصویر پیش‌فرض برند + باطل‌سازی کش, فایل‌های مرتبط, مشکل / هدف, مشکل ۱ — فیلدهایی که رندر نمی‌شوند, مشکل ۲ — تصویر پیش‌فرض, مشکل ۳ — تأخیر تا یک ساعت در نمایش تغییرات ادمین, مشکل ۴ — استایل محتوای CKEditor حذف می‌شود (+10 more)
### Community 365 - "Community 365"
Cohesion: 0.08
@@ -630,16 +632,16 @@ Cohesion: 0.19
Nodes (9): Card(), PAYMENT_STATUS, TYPE_LABELS, Head(), listTab, Transactions(), List(), PAYMENT_STATUS (+1 more)
### Community 369 - "Community 369"
Cohesion: 0.29
Nodes (6): Doctors(), buildDoctorParams(), normalizeDoctorNameQuery(), QueryForDoctorsClinicReq(), QueryForDoctorsReq(), buildSearchUrl()
Cohesion: 0.33
Nodes (5): buildDoctorParams(), normalizeDoctorNameQuery(), QueryForDoctorsClinicReq(), QueryForDoctorsReq(), buildSearchUrl()
### Community 370 - "Community 370"
Cohesion: 0.29
Nodes (4): ProvinceContext, ProvinceProvider(), Probe(), useProvince()
### Community 372 - "Community 372"
Cohesion: 0.48
Nodes (6): hasRealName(), isNoindexDoctor(), isThinClinic(), isThinDoctor(), isUnclaimedDoctor(), PLACEHOLDER_NAMES
Cohesion: 0.22
Nodes (14): generateMetadata(), DoctorPage(), doctorTitle(), hasRealName(), isNoindexDoctor(), isThinClinic(), isThinDoctor(), isUnclaimedDoctor() (+6 more)
### Community 373 - "Community 373"
Cohesion: 0.12
@@ -705,25 +707,33 @@ Nodes (3): ModalAddSurgeries(), Surgeries(), ItemSurgeries()
Cohesion: 0.50
Nodes (3): formatToman(), rialToToman(), Paying()
### Community 402 - "Community 402"
Cohesion: 0.38
Nodes (4): DoctorsPage(), resolveCityDisplayName(), isRootCity(), ListDoctors()
### Community 403 - "Community 403"
Cohesion: 0.29
Nodes (6): CARD, lines, mark, OUT, PARAGRAPH, ROOT
## Knowledge Gaps
- **883 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+878 more)
- **904 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+899 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **35 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 `imageUrl()` connect `Community 45` to `Community 0`, `Community 4`, `Community 7`, `Community 392`, `Community 81`, `Community 83`, `Community 55`, `Community 56`, `Community 380`?**
_High betweenness centrality (0.034) - this node is a cross-community bridge._
- **Why does `getStateInfo()` connect `Community 29` to `Community 89`, `Community 0`, `Community 354`, `Community 6`, `Community 72`, `Community 140`, `Community 45`, `Community 14`, `Community 16`, `Community 369`, `Community 51`, `Community 86`, `Community 377`?**
_High betweenness centrality (0.033) - this node is a cross-community bridge._
- **Why does `isRootCity()` connect `Community 86` to `Community 3`, `Community 70`, `Community 72`, `Community 45`, `Community 370`, `Community 29`?**
_High betweenness centrality (0.021) - this node is a cross-community bridge._
- **Why does `imageUrl()` connect `Community 45` to `Community 0`, `Community 4`, `Community 7`, `Community 392`, `Community 81`, `Community 83`, `Community 372`, `Community 55`, `Community 56`, `Community 380`?**
_High betweenness centrality (0.028) - this node is a cross-community bridge._
- **Why does `getStateInfo()` connect `Community 29` to `Community 0`, `Community 6`, `Community 72`, `Community 377`, `Community 45`, `Community 14`, `Community 16`, `Community 81`, `Community 402`, `Community 51`, `Community 372`, `Community 86`, `Community 89`?**
_High betweenness centrality (0.023) - this node is a cross-community bridge._
- **Why does `doctorTitle()` connect `Community 372` to `Community 5`, `Community 7`?**
_High betweenness centrality (0.012) - this node is a cross-community bridge._
- **Are the 27 inferred relationships involving `getStateInfo()` (e.g. with `generateMetadata()` and `AboutUsPage()`) actually correct?**
_`getStateInfo()` has 27 INFERRED edges - model-reasoned connections that need verification._
- **Are the 14 inferred relationships involving `imageUrl()` (e.g. with `generateMetadata()` and `generateMetadata()`) actually correct?**
_`imageUrl()` has 14 INFERRED edges - model-reasoned connections that need verification._
- **What connects `metadata`, `fallbackLabels`, `MaterialUISwitch` to the rest of the system?**
_883 weakly-connected nodes found - possible documentation gaps or missing edges._
_904 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.05263157894736842 - nodes in this community are weakly interconnected._
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+833 -157
View File
File diff suppressed because it is too large Load Diff
+46 -16
View File
@@ -35,8 +35,8 @@
"semantic_hash": ""
},
"app/blog/[slug]/page.js": {
"mtime": 1784876758.3168705,
"ast_hash": "bc64f595e4a674bfc2f7f5e489776756",
"mtime": 1785166314.496041,
"ast_hash": "32f4bfdb268aa713430b5c767d00d3f5",
"semantic_hash": ""
},
"app/blogs/loading.js": {
@@ -605,8 +605,8 @@
"semantic_hash": ""
},
"components/blog/detail/Caption.js": {
"mtime": 1783776875.6894782,
"ast_hash": "41da92379f97a044df02076192095a4f",
"mtime": 1785166061.3744328,
"ast_hash": "708ab37e14765361ada8af2e5679b80f",
"semantic_hash": ""
},
"components/blog/detail/SocialMedia.js": {
@@ -625,13 +625,13 @@
"semantic_hash": ""
},
"components/blog/detail/index.js": {
"mtime": 1764813617.2890306,
"ast_hash": "3ceaecd9ade50be7aedab065dca2e3af",
"mtime": 1785166238.324126,
"ast_hash": "9ac790637a46dc59c6b5e5c3faf539d1",
"semantic_hash": ""
},
"components/blog/head/index.js": {
"mtime": 1784454676.4670975,
"ast_hash": "2eab10468e5fce355b3b4ac944aa2a8a",
"mtime": 1785166181.3036282,
"ast_hash": "95505c8593f351fc86101198f4a0394e",
"semantic_hash": ""
},
"components/blog/index.js": {
@@ -640,8 +640,8 @@
"semantic_hash": ""
},
"components/blog/relatedContent/Item.js": {
"mtime": 1783776875.690044,
"ast_hash": "0429bbe29969b4672ebcd7458470cb7d",
"mtime": 1785166045.5371826,
"ast_hash": "6d256c5de1f7663a2f6a8f76e8181caf",
"semantic_hash": ""
},
"components/blog/relatedContent/index.js": {
@@ -660,8 +660,8 @@
"semantic_hash": ""
},
"components/blogs/latestArticles/Article.js": {
"mtime": 1783776875.6914852,
"ast_hash": "ec07880241f0305bc09eedbc07d19b1c",
"mtime": 1785166038.3059208,
"ast_hash": "f46ca7aa88bbfd03bb9b5656e85801b4",
"semantic_hash": ""
},
"components/blogs/latestArticles/index.js": {
@@ -2550,8 +2550,8 @@
"semantic_hash": ""
},
"helper/index.js": {
"mtime": 1784538069.5351331,
"ast_hash": "dc62c22e04a857e228a39205f71b03ee",
"mtime": 1785166028.5926297,
"ast_hash": "9bd046122fc5ebb12c80cb2fb9c77a70",
"semantic_hash": ""
},
"helper/index.test.js": {
@@ -2645,8 +2645,8 @@
"semantic_hash": ""
},
"lib/sanitize.js": {
"mtime": 1783776875.7603114,
"ast_hash": "b78a9ec2d6d4f5fd9327ec0f76374db2",
"mtime": 1785166253.4906135,
"ast_hash": "5b1073fe1ce3c969b68c23c8830e770c",
"semantic_hash": ""
},
"lib/serverToken.js": {
@@ -3618,5 +3618,35 @@
"mtime": 1784876781.6633182,
"ast_hash": "8174a437e0324180b295035a571de253",
"semantic_hash": ""
},
"app/api/revalidate/route.js": {
"mtime": 1785166303.0518155,
"ast_hash": "30e43ce902efd57fdf87b28615223000",
"semantic_hash": ""
},
"components/blog/detail/Faq.js": {
"mtime": 1785166202.1542518,
"ast_hash": "c8c06daf74ddab54164843daf3ac66c8",
"semantic_hash": ""
},
"components/blog/detail/Sources.js": {
"mtime": 1785166219.6774309,
"ast_hash": "790ffa403df7df59b594416add61453c",
"semantic_hash": ""
},
"scripts/make-blog-cover.mjs": {
"mtime": 1785167414.9159963,
"ast_hash": "c57befc0ceaa8dfef0a39e87820343ee",
"semantic_hash": ""
},
".claude/prompt/blog-frontend-sync-and-default-cover.md": {
"mtime": 1785163532.1656005,
"ast_hash": "d8120f87df1cee6f834c13b8cf3cd49d",
"semantic_hash": ""
},
"public/assets/images/blog-default-cover.png": {
"mtime": 1785167425.6682634,
"ast_hash": "38eecafd2e27b74b36fe34e820c479b8",
"semantic_hash": ""
}
}