fix: vendor per-kind sites in the hub; drop stale blog docs

- collect.py: when a kind points at the shared site root, copy only the
  per-kind subdir (site/lib -> <repo>/lib) instead of the whole site, so
  stray single-site build output never leaks into the hub
- Purge stale collected artifacts (404.html, assets/, search/, sitemaps,
  objects.inv, duplicate mcp/) from every repo dir, matching the cleaned
  source site/ roots
- Refresh collected output from source repos, incl. the khata-app app
- Remove the vendored Blog API docs (config.yml entry + blog/) and its card
This commit is contained in:
2026-10-11 23:12:19 +05:30
parent 74aaf2f53e
commit c5619bc5e8
526 changed files with 10 additions and 104714 deletions

View File

@@ -1,95 +0,0 @@
{
"module": "mail_intake.models.message",
"content": {
"path": "mail_intake.models.message",
"docstring": "# Summary\n\nMessage domain models for Mail Intake.\n\nThis module defines the **canonical, provider-agnostic representation**\nof an individual email message as used internally by the Mail Intake\ningestion pipeline.\n\nModels in this module are safe to persist and must not contain any\nprovider-specific fields or semantics.",
"objects": {
"dataclass": {
"name": "dataclass",
"kind": "alias",
"path": "mail_intake.models.message.dataclass",
"signature": "<bound method Alias.signature of Alias('dataclass', 'dataclasses.dataclass')>",
"docstring": null
},
"datetime": {
"name": "datetime",
"kind": "alias",
"path": "mail_intake.models.message.datetime",
"signature": "<bound method Alias.signature of Alias('datetime', 'datetime.datetime')>",
"docstring": null
},
"MailIntakeMessage": {
"name": "MailIntakeMessage",
"kind": "class",
"path": "mail_intake.models.message.MailIntakeMessage",
"signature": "<bound method Class.signature of Class('MailIntakeMessage', 18, 79)>",
"docstring": "Canonical internal representation of a single email message.\n\nNotes:\n **Guarantees:**\n\n - This model represents a fully parsed and normalized email message.\n - It is intentionally provider-agnostic and suitable for\n persistence, indexing, and downstream processing.\n\n **Constraints:**\n\n - No provider-specific identifiers, payloads, or API semantics\n should appear in this model.",
"members": {
"message_id": {
"name": "message_id",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.message_id",
"signature": null,
"docstring": "Provider-specific message identifier."
},
"thread_id": {
"name": "thread_id",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.thread_id",
"signature": null,
"docstring": "Provider-specific thread identifier to which this message belongs."
},
"timestamp": {
"name": "timestamp",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.timestamp",
"signature": null,
"docstring": "Message timestamp as a timezone-naive UTC datetime."
},
"from_email": {
"name": "from_email",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.from_email",
"signature": null,
"docstring": "Sender email address."
},
"from_name": {
"name": "from_name",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.from_name",
"signature": null,
"docstring": "Optional human-readable sender name."
},
"subject": {
"name": "subject",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.subject",
"signature": null,
"docstring": "Raw subject line of the message."
},
"body_text": {
"name": "body_text",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.body_text",
"signature": null,
"docstring": "Extracted plain-text body content of the message."
},
"snippet": {
"name": "snippet",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.snippet",
"signature": null,
"docstring": "Short provider-supplied preview snippet of the message."
},
"raw_headers": {
"name": "raw_headers",
"kind": "attribute",
"path": "mail_intake.models.message.MailIntakeMessage.raw_headers",
"signature": null,
"docstring": "Normalized mapping of message headers (header name → value)."
}
}
}
}
}
}