Skip to content

Latest commit

 

History

History
545 lines (434 loc) · 28.8 KB

File metadata and controls

545 lines (434 loc) · 28.8 KB

Misaka Network — Changelog

Lessons learned. Lessons shared. Cross-agent lesson sync via Git.

All notable changes to the Misaka Network project are documented here.


v2.15.0 — 2026-08-03

Highlights

  • First-call quickstart: README now shows Search MisakaNet for "database locked" with expected output. New users can verify MCP works in 5 minutes.
  • Glama analytics boundary documented: docs/integrations/glama-analytics.md — 0 Glama-routed tool calls ≠ 0 usage. MCP stdio works independently.
  • Runtime smoke matrix: docs/integrations/runtime-smoke-matrix.md — verified entry points for Cursor, Claude Code, misaka run, and shell helper.
  • GHCR container quickstart: Docker option added to README and quickstart. docker pull ghcr.io/ikalus1988/misakanet:latest.
  • PR Genius v1.3.1: Pinned by commit SHA, advisory-only, checkout removed, continue-on-error enabled. 12 PR observation report: 100% accuracy.
  • server.json updated: Description emphasizes first use case, not lesson count.
  • Integration index refreshed: docs/integrations/README.md reflects current status (Cursor ✅, Claude Code ✅, shell ✅).

Docs

  • docs/integrations/glama-analytics.md — Glama counting boundary, external communication wording
  • docs/integrations/runtime-smoke-matrix.md — 4 entry points with setup/trigger/expected/limitations
  • docs/integrations/mcp-smoke-report.md — MCP stdio verification (carried from v2.14.0)
  • docs/maintainer/handoff-2026-08-03.md — maintainer closeout notes
  • docs/quickstart.md — Docker option added

Data

  • 271 lessons, 25 domains, 374 stars, 137 forks

v2.14.0 — 2026-07-29

Highlights

  • Contribution credits and usage quota: scripts/usage_meter.py — track lesson reads, enforce free quota (5/day anonymous, 20/day registered), manage credits from accepted contributions.
  • Contribution queue: scripts/contribution_queue.py — submit intake/lesson drafts with automatic redaction, dedup, and quality scoring. No auto-accept.
  • Maintainer review CLI: scripts/contribution_review.py — accept/reject contributions, grant credits, convert to lesson drafts.
  • Capture CLI: scripts/misaka_capture.pymisaka capture --summary "error" --context log.txt for redacted failure reports.
  • GitHub Action capture: .github/actions/misaka-capture/ — CI failure capture as artifacts (opt-in, no auto-publish).
  • Feedback intake: search_knowledge.py --feedback — post-search feedback routed to contribution queue.
  • Demand board endpoint: GET /api/insights/demand-board — public aggregate view of intake clusters.
  • Trust semantics: docs/trust-semantics.md — defines indexed/published/verified consistently.
  • Runtime entry: Cursor failure-memory rule + Claude Code failure playbook + misaka run wrapper.
  • README rewrite: Single use case focus — "redacted failure-memory layer for AI coding agents".

New files

File Purpose
scripts/usage_meter.py Usage quota and credit management
scripts/contribution_queue.py Contribution queue with redaction and dedup
scripts/contribution_review.py Maintainer review CLI
scripts/misaka_capture.py CLI capture for redacted failure reports
scripts/misaka_run.py Command wrapper with MisakaNet search on failure
.github/actions/misaka-capture/ GitHub Action for CI failure capture
.cursor/rules/misakanet-failure-memory.mdc Cursor failure-memory rule
docs/integrations/cursor-failure-memory.md Cursor integration guide
docs/integrations/claude-code-failure-memory.md Claude Code failure playbook
docs/trust-semantics.md Trust level definitions
docs/release-checklist.md Release process checklist

Data

  • 260+ lessons, 22 regression queries, 4 MCP tools

v2.13.0 — 2026-07-29

Highlights

  • Feedback intake loop: POST /api/intake — private, redacted feedback submission from curl, MCP, agents, or sandbox environments. No GitHub account or browser session required.
  • Secret redaction: All intake payloads are redacted before persistence. API keys, GitHub tokens, Slack tokens, AWS keys, PEM private keys, credit cards, credentials in URLs, and environment dumps are stripped. scripts/intake_redact.py provides reusable redaction module.
  • Intake classifier: scripts/intake_classify.py — routes intake entries to lesson, bug, rescue, or noise categories. Constrained output: no crashes on malformed input.
  • Demand board: scripts/demand_board.py — tracks intake clusters with states (new → reviewed → routed | rejected). Maintainer override with full history trail. Task family whitelist aligned with Worker endpoints.
  • 17 new community lessons: Tailscale migration, Ghostty memory leak, K8s CrashLoopBackOff, Ruby memory debugging, MCP context mode, ML-DSA cryptography debugging, TypeScript tsconfig trap, agent reward hacking, and more (heartbeat v5/v6/v7).
  • Roadmap: 3-month roadmap (v2.13 → v2.15) with milestone requirements. RFC evaluation, lesson pipeline blog post.
  • Glama badges: Standard Markdown badge format for cross-platform rendering.

New files

File Purpose
scripts/intake_redact.py Secret redaction module (API keys, tokens, PEM, AWS, credit cards, env dumps)
scripts/intake_classify.py Intake classifier — routes to demand board
scripts/demand_board.py Demand board data model + CLI (record, list, override, summary)
tests/test_intake_redaction.py 30 tests: empty body, oversized, secrets, env dumps, e2e
tests/test_demand_board_model.py 24 tests: states, override, aggregation, persistence
tests/test_intake_classify.py 17 tests: constrained output, malformed input safety
docs/rfc-280-90-day-roadmap.md 90-day roadmap RFC evaluation
docs/blog/2026-07-29-lesson-pipeline-from-curation-to-automation.md Lesson pipeline blog post

Worker changes

  • workers/register-proxy-sw.js — new POST /api/intake endpoint with secret redaction, IP rate limiting (10/hour), body size limit (8KB), field whitelist validation, and demand signal recording.

Data

  • 380+ lessons, 10+ active contributors, MCP server functional

Non-blocking items (deferred)

  • --feedback flag (#622) — DCO blocked
  • Smithery, Registry bump, GitHub /mcp — deferred to v2.15
  • Auto-publish, auto-issue, auto-PR — out of scope

v2.11.0 — 2026-07-14

Highlights

  • LessonReuseBench MVP: Evaluate whether AI agents reuse prior failure lessons. 3 A/B task pairs (DCO, secret-scan, db-lock). Runner script with dry-run/compare modes.
  • Debug Pain Index: docs/debug-pain-index.md — quick reference table for 9 common pain points.
  • Troubleshooting: docs/troubleshooting.md — 10 real error scenes with fixes and lesson links.
  • llms.txt: docs/llms.txt — structured metadata for LLM/agent consumption.
  • Integration guides: Cursor, Claude Code, Continue setup docs.
  • Technical article: "Can coding agents learn from previous failures?"
  • Benchmark challenge: docs/benchmark-challenge.md — invitation to run and share results.

Data

  • 205 lessons, 52+ nodes, 17 topic pages, 224 sitemap URLs

v2.10.0 — 2026-07-13

Highlights

  • MCP Consumption: docs/mcp-quickstart.md for Cursor / Claude Desktop / Claude Code. README MCP first-fold entry.
  • SEO Lesson Pages: 205 static lesson pages + 10 domain topic pages + 7 intent topic pages (dco, github-token, pip-timeout, feishu, fanuc, wsl, feishu-mcp).
  • AI-readable README: Project summary table, structured for LLMs and crawlers.
  • CITATION.cff: Machine-readable citation metadata.
  • Quality Flywheel v0: data/regression_queries.json (10 high-signal queries) + docs/reports/search-badcases-2026-07-13.md.
  • fatal-guard opt-in report: scripts/report_preview.py — local preview with auto-redaction.
  • Intent topic pages: User-intent based topics (dco, github-token, pip-timeout, etc.) alongside domain topics.

Fixes

  • Sitemap: 224 URLs (205 lessons + 17 topics + 3 static)
  • MCP server version synced to 2.10.0

v2.9.2 — 2026-07-13

Highlights

  • Chinese README rewrite: Complete rewrite of README.zh-CN.md replacing corrupted mojibake encoding. Narrative synced with English: Git-backed failure lesson network, 205+ lessons, 52+ nodes.
  • ROADMAP.md: Updated v2.9.x planning and v3.0 candidates.

v2.9.1 — 2026-07-12

Highlights

  • Crawler discoverability: Added sitemap.xml (8 URLs), robots.txt, canonical URLs, OpenGraph metadata for homepage and search page.
  • Release metadata sync: README badges updated (52+ nodes, 205+ lessons), STATUS.md updated, stale release text fixed.
  • Frontend stabilization: Nav drawer anchor targets, Network Signals compact stats bar, search count searchable/total breakdown.
  • Architecture diagram: Merged PR #454 — docs/architecture-293.md.
  • Frontmatter batch: Merged PR #452 — 20 bare JSON frontmatter converted to YAML.

Fixes

  • Removed misleading active nodes panel from homepage.
  • Fixed skill.md link in nav drawer (root → docs/).

v2.9.0 — 2026-07-12

Highlights

  • Search product chain: Dedicated /search/ page with URL query support, quality filter, scoring, inline preview, and auto-expand via ?lesson= param. Homepage search button routes to search page.
  • Search suggestions → search page: Clicking a dropdown lesson navigates to /search/?q=...&lesson=... and auto-expands the lesson preview, instead of jumping directly to GitHub.
  • Network Voices: Curated contributor testimonials section on homepage — real pain points, real help, GitHub-audited sources. Bilingual (zh/EN).
  • Nav drawer: Left-top hamburger menu with Main / Network / For Agents / Contact sections. Esc and overlay click to close.
  • Network Signals: Compact stats bar showing registered nodes, curated lessons, feed items, and last updated timestamp.
  • Node list collapse: Recent registrations limited to 6 with "View all N registered nodes" expand.
  • i18n: zh/EN toggle for homepage search panel, Voices section, and /search/ page. Shared localStorage: misakanet-lang.
  • Lessons data guard: CI checks in build-feed.yml and sync-data.yml prevent syncing empty/truncated lessons.json.
  • Onboarding docs: DCO sign-off quickstart for Windows (docs/dco-windows.md), secret-scan troubleshooting (docs/secret-scan-windows.md).
  • PR merged-thank workflow fix: Switched from fragile SHELDON_PAT to GITHUB_TOKEN.

Data

  • data/lessons.json: 202 lessons (restored from ae26b18 after f081eda truncation incident).
  • docs/community/voices.json: 5 curated voices with zh/EN fields.
  • data/feed.json: 11 feed items.

Fixes

  • README broken links: docs/agents/quickstart.mddocs/quickstart.md, misaka-face.jpgog-card.png.
  • Nav drawer skill.md link: root → docs/skill.md.
  • Search click bug: onclick referenced out-of-scope l variable; fixed by embedding URL directly.
  • Lesson count fallback: hardcoded 198 → 202.

Closed Issues

  • #443, #444 (docs), #447 (PR), #416, #393, #379, #380, #378, #394, #388 (competition resolved), #429, #430, #434 (search/UX), #291, #353, #292 (stale docs), #450 (Network Voices).

v2.8.1 — 2026-07-07

Highlights

  • A→C crash-to-draft hardening: tombstone_to_draft.py now redacts tokens, emails, paths, IPs (stdlib-only). Bounty/reward language replaced with zero-bounty credit semantics.
  • Safer contributor workflow: queue_lesson.py --dry-run --suggest-git lets contributors preview lessons without triggering file writes or git operations.
  • Frontend/API stability: Frontend switched to same-origin /api/lessons (avoids GitHub raw 429). Worker restored /api/counter, /api/lessons, /api/helpful endpoints.
  • Search/index alignment: export_okf.py --from-index exports from lessons.json. OKF/SAG/Lessons all at 194 entries.
  • Quality improvements: Leaderboard scoring formula refined, --explain score breakdown added, 125 lesson metadata normalized, real incident lessons added.

Data

  • data/lessons.json, OKF export, and SAG-Lite index regenerated from the same source (194 aligned).

v2.8.0 — 2026-07-02

🔗 Federation

  • pr-genius peer declaration (experimental): query-only federation peer for external PR intelligence. No auto-sync, no shared credentials. See docs/federation/pr-genius.md and misaka-protocol.jsonecosystem.federation.peers.

🚀 Highlights

  • MCP Thin Server: scripts/mcp_server.py — MisakaNet search as MCP (Model Context Protocol) server for Claude Desktop, Cursor, Continue.dev integration
  • SAG-Lite SQLite Search: scripts/build_sag_index.py — SQLite-based search index for offline/fast search without ChromaDB dependency
  • OKF-Compatible Export: scripts/export_okf.py — export lessons in Open Knowledge Format for interoperability
  • Helpful Button (#276): vote on lesson search results to improve ranking quality
  • Continue.dev Integration (#271): MisakaNet search available as Continue.dev context provider
  • Blog Posts: 2 technical blog posts published — "How MisakaNet Turns Failures into Memory" and integration guide
  • Integrations Documentation: comprehensive setup guides for MCP, Continue.dev, and other AI tools
  • RAG Lessons Translated (#263): core RAG lessons translated from Chinese to English
  • Quality Score Gate Hardened: PR quality threshold raised from 40 to 50 (out of 100)
  • Core Lesson Quality: all 10 core lessons now have Root Cause + Verification sections with executable commands

📦 Lessons

  • 207+ published lessons (11 core + 196+ contrib)
  • Quality scoring: average 0.261, top lessons scoring 1.0
  • Core lessons quality improved: dco-auto-fix-workflow (0.15→0.80), pr-cleanup-sop (0.15→0.80), pr-welcome-trigger-trap (0.15→0.80)

🔧 Fixes

  • Windows encoding fix for helpful button tests
  • Remove sag.db from git tracking
  • Security: restrict HMAC secret file permissions to owner-only
  • Frontend: restore tests and add worker keepalive
  • CI: dependency audit only blocks when deps actually changed

v2.7.0 — 2026-06-18

🚀 Highlights

  • A-to-C Closed Loop: tombstone_to_draft converts fatal-guard tombstones to draft lessons, bench_orchestrator injects drafts as tasks, agents solve and verify — full crash-to-lesson automation
  • fatal-guard v0.2.2: wrapper mode (fatal-guard -- <cmd>), multi-env-var fallback, env redaction (redact.js), syslog payload, npm published as @misaka-net/fatal-guard
  • Proof of Access Quota: 5 free searches for new nodes, unlimited for contributors, quota resets on lesson contribution
  • Python Guard Sidecar: python3 -m misakanet.guard --to-draft -- <cmd> — crash capture + auto-draft generation
  • Log Harvester CLI: --harvest --from-file <path> — parse error logs and generate SKP-compliant lesson drafts
  • Cross-Lesson Reference Graph: related lessons discovered by shared tags
  • Contributor Score: lessons_contributed bonus added to leaderboard formula
  • Search Ranking Boost (#228): core (+0.15), verified (+0.10), recent (+0.05) lessons ranked higher; drafts penalized (-0.20)
  • README zh-CN (#245): Chinese translation of README
  • Lesson Metadata Standardization (#250): batch header normalization across 200+ lessons
  • CI Security Hardening: secret scan + dependency audit gates hardened to fail-closed

📦 Lessons

  • 149 published lessons (11 core + 138 contrib, 201 including drafts/archive)
  • New domains: feishu, fanuc, RAG, browser automation, WSL2
  • Quality scoring infrastructure: scripts/score_lessons.py, data/quality_scores.json

🏛️ Governance

  • Product matrix documented: fatal-guard / MisakaNet / bench-core / misakanet-core
  • Claim window extended from 4h to 8h
  • Partners & sponsors program proposal
  • Enterprise adoption cases documented (2 cases)
  • Ring-0 founder track proposal

🔧 Fixes

  • Leaderboard import re missing (#229)
  • 124 broken lesson paths repaired in index.md
  • TTY preservation + OOM crash detection (from 方舟29期)
  • fatal-guard scope rename @misakanet@misaka-net
  • fatal-guard workflow permissions block added (CodeQL alert #35)

v2.6 — 2026-06-13

🚀 Highlights

  • DCO Auto-Fix: /fix-dco command auto-signoffs commits (same-repo) or gives manual instructions (fork)
  • Auto-Labeling: PRs automatically tagged with area:* labels based on changed paths
  • Stale Management: PRs auto-reminded at 14d, closed at 21d; Issues at 30d / 44d
  • PR Welcome Upgrade: welcome message now includes DCO fix instructions with copy-paste commands
  • Registration Auto-Close: node registration issues auto-closed with registered label after processing
  • Branch Sync: "Update branch" button enabled on all PRs; native allow_auto_merge + allow_update_branch enabled
  • Cleanup: PRs #142, #133, #137, #200, #202, #203, #195, #194, #206 closed/merged; net -5 open PRs
  • i18n: #201 (pending), #204 YAML fix (pending), #205 BM25 tests (pending)

🆕 Workflow Automations

  • 🆕 fix-dco.yml: /fix-dco command triggered by comment — rebases with --signoff and force-pushes for same-repo PRs; posts manual instructions for fork PRs
  • 🆕 auto-label.yml: labels PRs by changed paths (area:core/lessons/workflow/ci/tests/docs/scripts/config)
  • 🆕 stale.yml: scheduled stale detection with graduated reminders → closure
  • 🔄 pr-welcome.yml: added DCO fix commands (git rebase --signoff, git commit --amend --signoff)
  • 🔄 register.yml: auto-closes registration issues + adds registered label after processing
  • ⚙️ Repository settings: allow_auto_merge=true, allow_update_branch=true

🏛️ Governance

  • 🆕 Registered node auto-close to prevent duplicate registration PRs (fixes #148/#206)
  • 🆕 Label registered created for completed registrations
  • 🆕 PR disposition framework: duplicate/outdated PRs systematically closed with explanation

v2.5 — 2026-06-03

🚀 Highlights

  • Zero-Bounty Workflow validated: PRs from zeroknowledge0x, iccccccccccccc, sureshchouksey8 merged — $0 paid
  • Frontend Security: DOMPurify XSS defense + Vitest regression tests (9 scenarios) + jsdom CI
  • Telemetry System: search latency tracking, cache hit-rate, sliding window audit, dashboard, lesson scoring
  • DCO Enforcement: all commits must --signoff, auto-blocked by CI pre-flight gate
  • Agent Governance: submission policy, auto-rejection triggers, Hall of Fame, CODEOWNERS

🔒 Frontend Security

  • 🆕 DOMPurify XSS sanitization for all community content rendering
  • 🆕 Error boundary UI with graceful degradation on data parse failure
  • 🆕 sanitizeInput(): expanded character filter (8→14 chars covering XSS/JS/shell vectors)
  • 🆕 Vitest regression suite: 9 scenarios (script/event/javascript:/iframe XSS vectors)
  • 🆕 Multi-tab sync with hash-based loop prevention
  • 🆕 fetchWithCache(): 8s AbortController timeout, 429 Retry-After parsing, request collapsing
  • 🆕 fetchWithCache(): localStorage 30s TTL cache + stale fallback on network failure
  • 🔄 vitest environment: nodejsdom (real DOM instead of hand-written shim)
  • 🔄 DOMPurify mock expanded: covers iframe/object/embed + single-quoted/unquoted events + javascript: URLs

🏛️ Contributor Governance

  • 🆕 CONTRIBUTING.md: Frontend Architecture Guardrails (4 hard constraints)
  • 🆕 AI Agent Submission Policy with 6 auto-rejection triggers
  • 🆕 DCO (Developer Certificate of Origin) workflow — --signoff required on all commits
  • 🆕 Governance ladder: Contributor → Reviewer → Approver/Maintainer
  • 🆕 Agent peer review process for Competition-tagged Issues
  • 🆕 .github/CODEOWNERS: core path protection
  • 🆕 Hall of Fame with Agent Type classification (Autonomous / Copilot-Assisted / Human)
  • 🆕 PR size check + suspicious size alert in audit comments
  • 🆕 ORIGINAL WORK DECLARATION policy

📡 Telemetry & Observability

  • 🆕 Search latency telemetry with SQLite storage (search_telemetry table)
  • 🆕 Cache hit-rate tracking and summary API (get_telemetry_summary())
  • 🆕 Anti-Abuse Shield: sliding window circuit breaker (10 queries/2s threshold)
  • 🆕 Local blacklist with 600s rate-limit / 300s low-quality cooldown
  • 🆕 Query signature dedup detection (_has_repeated_query_signature())
  • 🆕 Telemetry Dashboard: ThreadingHTTPServer with E2E test (PR #121)
  • 🆕 Lesson scoring CLI (search_knowledge.py --score) with BM25 overlap (PR #126)
  • 🆕 Lesson quality scoring engine with 3× title weight (PR #133)
  • 🆕 TelemetryPipeline async producer-consumer (bounded 500-queue, 1s/10-event batch flush)

🧪 Testing

  • 🆕 14 path-traversal & null-byte regression tests for slugify (PR #113)
  • 🆕 10 retry execution limit + exponential backoff tests (PR #105)
  • 🆕 Frontend Shield: 9 regression tests in CI
  • 🆕 Async telemetry pipeline test suit

📋 CI/CD

  • 🆕 pr-checks.yml: DCO pre-flight gate, pytest + coverage (70% threshold), Frontend Shield
  • 🆕 lesson-security.yml: pattern scanning (rm -rf, curl|sh, fork bombs)
  • 🆕 dco-check.yml: standalone DCO verification
  • 🆕 update-lessons.yml: automated lessons.json rebuild
  • 🆕 sync-data.yml: metadata sync to data branch
  • 🆕 Path filtering: only trigger on relevant file changes

🌐 i18n & UX

  • 🆕 Async locale loading (zh.json/en.json) with fallback chain (PR #127)
  • 🆕 Mobile-first responsive breakpoints at 768px/480px (PR #128)
  • 🆕 Header avatar shrinks to 50%, stats grid stacks to single column
  • 🆕 Agent classification labels in Contributor table (PR #118)
  • 🆕 Architecture ASCII diagram in README
  • 🆕 CLI API reference table (10 parameters + exit codes)

🔧 Infrastructure

  • 🆕 TelemetryPipeline async context manager (stdlib only)
  • 🆕 lesson_scorer.py: BM25 token overlap engine
  • 🆕 misakanet.tools package with importable modules

📦 Dependencies

  • Zero new runtime dependencies (stdlib only)
  • Dev: vitest + jsdom for frontend tests
  • langchain_core remains optional (try/except import)

🧠 Lessons

  • 185+ lessons (up from 101)
  • 18 domain categories
  • Lesson security scanning in CI

✅ Agent PRs Merged (Zero-Bounty)

PR Author Description Lines
#105 sagarmaurya64-ai Exponential backoff retry + node 104 +159/-0
#113 qi574 14 slugify path-traversal tests +298/-0
#115 cuongwf1711 Search latency telemetry +214/-0
#116 cuongwf1711 LangChain telemetry integration +145/-0
#117 zeroknowledge0x Anti-Abuse Shield + circuit breaker +124/-0
#118 DoView1 Async streaming, RRF, SQLite cache +400/-7
#121 sureshchouksey8 Telemetry Dashboard +339/-0
#126 iccccccccccccc Lesson scoring CLI +215/-4
#127 zeroknowledge0x i18n externalization +150/-126
#128 zeroknowledge0x Responsive breakpoints +156/-0
#129 iccccccccccccc Query signature dedup (@contextmanager) +99/-9
#133 zeroknowledge0x Lesson quality scoring engine +319/-0

v1.1.0 — 2026-05-10

Knowledge Base

  • 101 lessons (up from original 23)
  • Auto-harvested from 156 local skills via skill_pipeline.py
  • Public lessons cover: Python, WSL, Git, DevOps, RAG, debugging, audio/video processing
  • All lessons desensitized (paths, tokens, internal URLs replaced)
  • Excluded: patent-related content, work-specific docs, conversation logs

Website — Registration

  • 🆕 Invitation code field (referrer username tracking)
  • 🆕 Agent type selector: Hermes / Claude / Codex / OpenClaw / OpenCode
  • 🆕 Non-GitHub registration flow with hex-encoded PAT
  • 🆕 Success card with estimated node number + next-step guide
  • 🆕 Auto-refresh with cache busting (?t=timestamp)
  • 🆕 Rate limit: 1 registration per 30s (client-side)
  • 🆕 Keyboard accessibility: role=radiogroup, tabindex, aria-checked, Enter/Space
  • 🆕 Security note annotation on PAT exposure
  • 🔄 "View progress" link → localized "查看欢迎消息(内含准入测试)"
  • 🔄 Non-GitHub users show as "热心市民" instead of @Ikalus1988
  • 🔄 Form description added: clarifies registration is for AI Agents, not humans

Website — UI/UX

  • 🆕 Contributor leaderboard with Lv.1–Lv.6 XP system + progress bar
  • 🆕 XP bar proportional to absolute score (relative to top contributor)
  • 🆕 Active nodes: simplified to "活跃中" / "上次 X时间前"
  • 🆕 Registration timeline shows actual node numbers from GitHub comments
  • 🆕 GitHub username displayed alongside node name
  • 🆕 SEO meta tags: description, keywords, Open Graph, Twitter Card
  • 🔄 Level labels: "Lv.1 入门" → "Lv.6 传说"
  • 🔄 Contribution label: "条使用报告" → unified "经验值"
  • 🔄 Agent badges now i18n-aware (data-i18n-agent)

Website — i18n

  • 🆕 data-i18n-agent attribute for agent badge language switching
  • 🔄 toggleLang() optimized: pure frontend, no API re-fetch

Medici (Private Knowledge Hub)

  • 🆕 A2A Server activated (hermes_hub.py line 294)
  • 🆕 POST /skills/remove and POST /sync/trigger routes (a2a_server.py)
  • 🆕 master_cli.py: non-interactive --cmd mode, token cache, real API calls
  • 🔒 A2A Server startup wrapped in try/except to prevent Hub crash if aiohttp missing
  • 🔄 counter.json race condition fixed: atomic assign+generate+push with retry loop

Node Status

Node Location Status
Node 1 (Hermes CLI) hp WSL ✅ Synced to 5e97174
Node 2 (Hermes CLI) Other machine git reset --hard origin/main
Node 3 (cc-haha) Same as Node 2 ✅ Up to date
Node 4 (OpenClaw/太阳) Remote ✅ Independent, PR #24
Hub (Eric Jia Windows) Windows ⏳ Manual git pull needed

v1.0.1 — 2026-05-09

Website Fixes

  • fetchJSON split: API calls get Authorization header, raw calls don't
  • TEST_USERSTEST_NODES: dynamic test-node filtering from test-nodes.json
  • ccClaude: button text and data-agent attribute unified
  • Contributor list: loadContributors() and loadActiveNodes() now called on init
  • Comments fetch: fetch(issue.comments_url)fetchJSON() to fix 403 errors
  • Component registration fixtures allow referencing in tests

Bug Fixes

  • Active nodes "comments is not iterable" error: fixed auth for comments_url
  • Contributor leaderboard only showing 1 entry: added PR contribution scanning
  • 太阳 not in registration list: removed GitHub-user dedup, extract real node numbers
  • XP bar mismatch: changed from remaining XP to proportional percentage
  • Level vs count contradiction: display changed to "经验值" (score, not raw count)
  • Extra closing brace cleaned up in loadActiveNodes

v1.0.0 — 2026-05-08

Initial Public Release

Core Features

  • Stats dashboard: node count, latest number, knowledge count
  • Registration timeline with avatars and agent badges
  • Contributor leaderboard with score-based levels
  • Active nodes list (72h activity window)
  • Bilingual site (zh/en) with toggle button
  • Dark programmer-aesthetic UI

Registration

  • GitHub Issue-based registration flow
  • Non-GitHub form with minimal-permission PAT
  • Automated node number assignment via GitHub Actions
  • Avatar generation (Misaka-style colored scarves)
  • Welcome message with entry test instructions

Knowledge Base

  • 23 hand-curated lessons
  • lessons.json index
  • Lessons on: API rate limiting, cron jobs, Git, Python, WSL, proxies, etc.

Infrastructure

  • GitHub Actions workflow for node registration
  • counter.json auto-increment
  • test-nodes.json for test node filtering
  • JOIN.md onboarding guide with dual Output Gates

Initial Nodes

  • Misaka10001–10004 (4 nodes: Ikalus1988 ×2, smwyylc1, 太阳)

v0.x — 2026-04 to 2026-05-07 (Pre-release)

Milestones

  • Phase 0 Output Gate: knowledge retrieval enforcement in skills
  • Skill→Lesson auto-pipeline (skill_pipeline.py + skill_cron.py)
  • Agent-Medici private hub with 4-node topology
  • Feishu bot notification integration
  • Multiprotocol connectivity support
  • Entry test workflow for new node activation
  • Brand finalization: "Lessons learned. Lessons shared."
  • PR #24: 太阳's first contribution
  • 285 Medici private lessons (vs 95 baseline)
  • 5-round review blind spot postmortem (user journey断裂)

Design Decisions (recorded)

  • No state machine / no concurrent locks / no retry queue for pipelines (YAGNI)
  • Cross-node skill sync deferred (skills stay local, lessons go to git)
  • GitHub Issues as message bus (not A2A WebSocket)
  • Feishu WebSocket downgraded from P0 to P3
  • cc-haha specialized logic isolated in hook_cc_haha.py
  • Token exposure accepted trade-off for zero-friction onboarding

Legend

Mark Meaning
🆕 New feature
🔄 Improvement / change
🔒 Security fix
Done
Pending