mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:38:53 +03:00
sync
This commit is contained in:
@@ -32,9 +32,23 @@ DOC_BLURBS: dict[str, str] = {
|
||||
"USB_HDMI_CAST.md": "Roadmap D/E: HDMI awareness, USB-tether transport.",
|
||||
"GRAFANA_vs_others_graphvis_pivot.md": "Custom graphs vs Grafana decision memo.",
|
||||
"20260602_REVERSE_SSH_proposals_summary.md": "On-demand remote access (WG/SSH/file API) proposals.",
|
||||
"20260607-2FA-email-mobile-auth-flow.md": "Email forwarding + registration/2FA (alpha must-have).",
|
||||
"20260608_ALPHA_PRIORITIES.md": "**Master priority plan** (0.1–9.x renumber, owners, alpha path).",
|
||||
"20260608_BE_SERVICES_and_infra.md": "BE service map, validation status, SFU preview (gray).",
|
||||
"20260608_STREAM_DUMP_DEBUG.md": "FR 0.1 stream dump spec.",
|
||||
"20260610_SERVICES.md": "Exposed services catalog — web UI, APIs, curl, validation (2026-06-10).",
|
||||
"OPEN_TASKS_GRAPH.md": "Open tasks dependency graph (Mermaid).",
|
||||
"OPUS_SPEEX_VALIDATION.md": "Opus/Speex + UDP stream protection E2E checklist.",
|
||||
"REMOTE_ACCESS_IMPL.md": "WireGuard v1 impl + deploy.",
|
||||
"REMOTE_ACCESS_VALIDATION.md": "Linux CLI suite + mobile parity.",
|
||||
"AV_QUALITY_QA_SESSION.md": "AV enhancement Q&A: sender vs receiver pipelines.",
|
||||
"specs/20100611_3_url_shortener.md": "URL shortener service — SPEC (`s.f0xx.org`, post-alpha).",
|
||||
"DRs/20100611_3_url_shortener.md": "URL shortener — design review (auth, slug algo, task graph).",
|
||||
}
|
||||
|
||||
SPEC_DIR = DOCS / "specs"
|
||||
DR_DIR = DOCS / "DRs"
|
||||
|
||||
|
||||
def github_slug(text: str) -> str:
|
||||
"""Approximate GitHub/Cursor heading anchor slugs."""
|
||||
@@ -150,6 +164,8 @@ def build_index_md() -> str:
|
||||
"",
|
||||
TOC_START,
|
||||
"- [All documents](#all-documents)",
|
||||
"- [Specifications](#specifications)",
|
||||
"- [Design reviews](#design-reviews)",
|
||||
"- [By topic](#by-topic)",
|
||||
"- [Agent bootstrap](#agent-bootstrap)",
|
||||
TOC_END,
|
||||
@@ -166,6 +182,43 @@ def build_index_md() -> str:
|
||||
blurb = DOC_BLURBS.get(name, "")
|
||||
lines.append(f"| [{name}]({name}) | {blurb} |")
|
||||
|
||||
spec_files = sorted(SPEC_DIR.glob("*.md")) if SPEC_DIR.is_dir() else []
|
||||
dr_files = sorted(DR_DIR.glob("*.md")) if DR_DIR.is_dir() else []
|
||||
|
||||
lines += [
|
||||
"",
|
||||
"---",
|
||||
"",
|
||||
"## Specifications",
|
||||
"",
|
||||
"| Document | Summary |",
|
||||
"|----------|---------|",
|
||||
]
|
||||
if spec_files:
|
||||
for p in spec_files:
|
||||
rel = f"specs/{p.name}"
|
||||
blurb = DOC_BLURBS.get(rel, "")
|
||||
lines.append(f"| [{p.name}]({rel}) | {blurb} |")
|
||||
else:
|
||||
lines.append("| _(none yet)_ | |")
|
||||
|
||||
lines += [
|
||||
"",
|
||||
"---",
|
||||
"",
|
||||
"## Design reviews",
|
||||
"",
|
||||
"| Document | Summary |",
|
||||
"|----------|---------|",
|
||||
]
|
||||
if dr_files:
|
||||
for p in dr_files:
|
||||
rel = f"DRs/{p.name}"
|
||||
blurb = DOC_BLURBS.get(rel, "")
|
||||
lines.append(f"| [{p.name}]({rel}) | {blurb} |")
|
||||
else:
|
||||
lines.append("| _(none yet)_ | |")
|
||||
|
||||
lines += [
|
||||
"",
|
||||
"---",
|
||||
@@ -195,6 +248,8 @@ def build_index_md() -> str:
|
||||
f"- [TICKETS_ROADMAP.md](TICKETS_ROADMAP.md) — tickets + Gitea",
|
||||
f"- [GRAFANA_vs_others_graphvis_pivot.md](GRAFANA_vs_others_graphvis_pivot.md) — graphs pivot",
|
||||
f"- [20260602_REVERSE_SSH_proposals_summary.md](20260602_REVERSE_SSH_proposals_summary.md) — remote access ([§Rev. 3 Q&A](20260602_REVERSE_SSH_proposals_summary.md#rev-3--wg-vs-ssh-qa--bastion-deep-dive))",
|
||||
f"- [specs/20100611_3_url_shortener.md](specs/20100611_3_url_shortener.md) — URL shortener SPEC ([§REST API](specs/20100611_3_url_shortener.md#6-rest-api))",
|
||||
f"- [DRs/20100611_3_url_shortener.md](DRs/20100611_3_url_shortener.md) — URL shortener DR ([§Resolved open questions](DRs/20100611_3_url_shortener.md#2-resolved-open-questions))",
|
||||
"",
|
||||
"### Product and codecs",
|
||||
"",
|
||||
@@ -235,10 +290,15 @@ def main() -> None:
|
||||
print(f"Wrote {index_path}")
|
||||
|
||||
changed = []
|
||||
for path in sorted(DOCS.glob("*.md")):
|
||||
toc_paths: list[Path] = sorted(DOCS.glob("*.md"))
|
||||
if SPEC_DIR.is_dir():
|
||||
toc_paths.extend(sorted(SPEC_DIR.glob("*.md")))
|
||||
if DR_DIR.is_dir():
|
||||
toc_paths.extend(sorted(DR_DIR.glob("*.md")))
|
||||
for path in toc_paths:
|
||||
if process_file(path):
|
||||
changed.append(path.name)
|
||||
print(f"Updated TOC: {path.name}")
|
||||
changed.append(str(path.relative_to(DOCS)))
|
||||
print(f"Updated TOC: {path.relative_to(DOCS)}")
|
||||
|
||||
print(f"Done. {len(changed)} file(s) updated.")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user