)]}'
{
  "log": [
    {
      "commit": "684b649a6a34b56741b9973a20e97ad2b642e8e5",
      "tree": "982b1622d1bd32875b2ea027e0e5ba1015fa0a2e",
      "parents": [
        "06fb96063778870241bf4609ad1889dc77fe3765"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jul 06 15:25:11 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jul 06 15:25:11 2026 +0800"
      },
      "message": "remove\n"
    },
    {
      "commit": "06fb96063778870241bf4609ad1889dc77fe3765",
      "tree": "936a90805977a80b33eda1a4382a4c7b9a33cb09",
      "parents": [
        "77d2eea10abf4529f1901d751e3c5a5c79ec0754"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jul 06 12:50:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 12:50:26 2026 +0800"
      },
      "message": "Update index.md"
    },
    {
      "commit": "77d2eea10abf4529f1901d751e3c5a5c79ec0754",
      "tree": "e161a9c86263194eec2d13858ff7e27a3c2689cf",
      "parents": [
        "9bce9fb48fe61be572735374f1222e21ad3ca5c3"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jul 06 12:49:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 12:49:42 2026 +0800"
      },
      "message": "Update index.md"
    },
    {
      "commit": "9bce9fb48fe61be572735374f1222e21ad3ca5c3",
      "tree": "1dba6873bf288729f99606e74b0dd8efb49342dc",
      "parents": [
        "2dac0054f4c0d9c915ea886e6de80f03c701df4e"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jul 06 12:35:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 12:35:30 2026 +0800"
      },
      "message": "Blog + homepage: Meet Horizon UI — The AI Assistant (EN + CN) (#886)"
    },
    {
      "commit": "2dac0054f4c0d9c915ea886e6de80f03c701df4e",
      "tree": "3eee02d22ca7ba705ca0f5d62914fecf20fed0d7",
      "parents": [
        "fa38d0b7c7ac98b6c924068a1cc92e07a70925f2"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 15:06:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 15:06:29 2026 +0800"
      },
      "message": "docs(blog): correct Horizon UI image coordinates in post 17 (Docker Hub, not GHCR) (#885)\n\nThe user-facing release image is published to Docker Hub as apache/skywalking-ui (shared with the previous UI), with Horizon releases tagged horizon-\u003cversion\u003e and latest — per the repo\u0027s publish-image.yaml mirror step. GHCR (ghcr.io/apache/skywalking-horizon-ui) holds the per-commit CI/SHA builds, not the release image, so it\u0027s the wrong coordinate for a getting-started guide. Updated the prose, the docker run example, and the pin advice in both EN and CN."
    },
    {
      "commit": "fa38d0b7c7ac98b6c924068a1cc92e07a70925f2",
      "tree": "612e15ef8880108c38f5ed86f017d9af1edfec33",
      "parents": [
        "2a1919eb5cf58e5c2cf63841cae3ff82238c3cf0"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 14:59:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 14:59:16 2026 +0800"
      },
      "message": "docs(blog): polish the Meet Horizon UI series — navigation links, P4 docs, phrasing (#884)\n\nPost-publication consistency pass over all 17 posts (EN + CN):\n\n- Navigation: hyperlink the \u0027Next up\u0027 teaser to the next post across the whole series in both languages (it was applied inconsistently — never in EN, partially in CN); P17 is the finale with no next link. Also link the one previous-post reference in P16 CN.\n- P4 (Deployment \u0026 BanyanDB): add the doc handoff to the BanyanDB dashboards doc — it was the only post missing one.\n- P1: drop the \u0027releasing soon\u0027 time-pin on the OAP 11.0 reference (EN + CN) so it doesn\u0027t age.\n- Minor phrasing: P11 CN (按带→按), P17 EN (read-only fallback clause)."
    },
    {
      "commit": "2a1919eb5cf58e5c2cf63841cae3ff82238c3cf0",
      "tree": "df48281f041715c55ce87b39c76730983bf9a303",
      "parents": [
        "0cc2f9e409dc46be9803df2a65a85a9309a74828"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 14:33:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 14:33:21 2026 +0800"
      },
      "message": "docs(blog): add Meet Horizon UI 15-17 (final three) (#883)\n\n* docs(blog): add Meet Horizon UI 15-17 (final three) — Customization, Localization, Getting Started\n\nCloses out the Meet Horizon UI series (Act 5 — make it yours \u0026 adopt):\n\n- 15/17 Customization: Config-Driven Layer Templates — the local-draft → preview → publish model, the widget canvas, add-a-layer, and export/import portability (4 figures).\n- 16/17 Localization in Eight Languages — server-side per-locale overlays, click-to-translate, the 8-language locale chip, and a localized dashboard (3 figures).\n- 17/17 Getting Started \u0026 Migration — single env-driven container, the OAP 10.x vs 11 compatibility matrix, and drop-in migration from an existing UI (code blocks + table, no figures).\n\n* docs(blog): add Chinese versions of Meet Horizon UI 15-17\n\nChinese translations for the final three posts (Customization, Localization, Getting Started \u0026 Migration), under content/zh/ with the same slugs and figures as the English originals."
    },
    {
      "commit": "0cc2f9e409dc46be9803df2a65a85a9309a74828",
      "tree": "877b11247f5bedead04a355c759698215777f789",
      "parents": [
        "0418647b270beac8fda2c2b2c6c631c10f722163"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 12:36:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 12:36:17 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 14/17 — Access Control \u0026 Security (EN \u0026 CN) (#882)"
    },
    {
      "commit": "0418647b270beac8fda2c2b2c6c631c10f722163",
      "tree": "c8cb26bd040d31ad6029c5e107a726f500c6149f",
      "parents": [
        "6af3c97f7e5ff82a0524ab40142c92f73d4bd530"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 11:41:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 11:41:39 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 13/17 — Platform \u0026 Cluster Introspection (EN \u0026 CN) (#881)\n\nPart 13 of the Meet Horizon UI series, closing Act 3 (operate). Three\nread-only introspection surfaces under Platform monitoring: Cluster Status\n(the two-port + Zipkin health view with live admin-module probes), OAP\nConfiguration (the effective runtime-config dump, grouped and masked,\nread-only), and Data Retention (per-class TTLs — a single number on a flat\nbackend like Elasticsearch, hot/warm/cold lifecycle bars on BanyanDB). The\nversion split: query-port surfaces work on any OAP, admin-host surfaces need\nOAP 11. English and Chinese posts, 3 shared figures (WebP)."
    },
    {
      "commit": "6af3c97f7e5ff82a0524ab40142c92f73d4bd530",
      "tree": "c0660e828ff35704b4b587c340fbc87569604ecd",
      "parents": [
        "d2dbf621aa90d7594c7159b3c357a6a460624f21"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 30 08:56:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 08:56:15 2026 +0800"
      },
      "message": "Blog: refresh P11 LAL figure and add the record-detail popout (#880)\n\nThe LAL matrix screenshot is updated to show the extractor adding\nstatus.code to each abnormal record (with the diff view), and a new\nfigure shows the \"show complete data\" popout — a record\u0027s full raw\npayload with the Compare-with selector. EN and CN posts both adopt it."
    },
    {
      "commit": "d2dbf621aa90d7594c7159b3c357a6a460624f21",
      "tree": "f3d0bb2fe372ef06dfa290c6ff4bfcb71d80b482",
      "parents": [
        "cb186f0e22177b1a17ebee38d70320f01bc9235b"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 20:56:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 20:56:25 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 12/17 — Inspect: Cross-Layer Query Power-Tools (#879)\n\n* Blog: Meet Horizon UI 12/17 — Inspect: Cross-Layer Query Power-Tools\n\nPart 12 of the Meet Horizon UI series, continuing Act 3 (operate). The\nInspect family under Operate: Metrics inspect (a catalog of every metric\nOAP computes, grouped by the OAL/MAL rule that defines it, plus an MQE\nboard), and the layer-less Trace inspect and Log inspect that query\nacross the whole deployment without picking a layer first (Log inspect\nfolds raw service logs, browser errors, and K8s pod logs into one tool).\nAll share inspect:read; Metrics inspect needs OAP 11\u0027s admin host + inspect\nmodule, while Trace/Log inspect ride the always-on query protocol (10.x ok).\n\n4 figures (WebP): metrics catalog, metrics board, trace inspect, log sources.\n\n* docs(blog): add Chinese Horizon UI inspect translation\n\n* Fix mobile nav drawer always highlighting Blog\n\nThe mobile slide-out drawer (sidebar-skywalking.html) hardcoded the Blog\nlink with router-link-active, so on phone-width browsers (e.g. iOS Safari)\nBlog showed selected on every page. Compute the active class per page\nsection instead, matching the desktop top navbar."
    },
    {
      "commit": "cb186f0e22177b1a17ebee38d70320f01bc9235b",
      "tree": "dacddbe907979326ccb4b0c48e509e063bc39b23",
      "parents": [
        "5e233ea506209c85ee7602146177bbfbd8e5d0cc"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 18:51:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 18:51:09 2026 +0800"
      },
      "message": "docs(blog): add Chinese Horizon UI runtime rules translation (#878)"
    },
    {
      "commit": "5e233ea506209c85ee7602146177bbfbd8e5d0cc",
      "tree": "b900b4dad69230d5beb262a86f3b4efd8d7ef376",
      "parents": [
        "dcccec016714b1f0e17ede389b1a4910f55d2a39"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 17:59:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 17:59:44 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 11/17 — Runtime Rules \u0026 Live Debugging (#877)"
    },
    {
      "commit": "dcccec016714b1f0e17ede389b1a4910f55d2a39",
      "tree": "85cd07e299232fd0d30549c25af87567bc06d0cf",
      "parents": [
        "3f12cf83e82755c56b77883b115450b679f160f0"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 15:11:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 15:11:20 2026 +0800"
      },
      "message": "docs(blog): add Chinese Horizon UI alarms translation (#876)"
    },
    {
      "commit": "3f12cf83e82755c56b77883b115450b679f160f0",
      "tree": "34c77391bd5a695ca73ef8f34d94717b68c5a53c",
      "parents": [
        "7a054a5cc5d21a4b579abb823acb7f369dc94145"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 14:37:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 14:37:07 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 10/17 — Alarms \u0026 Incident Triage (#875)\n\nPart 10 of the Meet Horizon UI series, opening Act 3 (operate). Covers the\nincident-centric active-alarms surface: raw firings merged by (entity, rule)\ninto one incident with firing/recovered/unstable states, the MQE snapshot\nreplayed to show why a rule fired, the per-incident history + timeline brush,\nand the same incident model carried across the topbar badge, dashboard widget,\nand 3D map. Read-only mirror of OAP\u0027s evaluation state; alarms:read to view.\n\n4 figures (WebP): incident list, snapshot replay (hero), incident history,\nalarms across the console."
    },
    {
      "commit": "7a054a5cc5d21a4b579abb823acb7f369dc94145",
      "tree": "1133393b86b676961495e64b734d24a306a87b9d",
      "parents": [
        "8badf78edc68e04b0798d90a0a7d007965575b51"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 13:55:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 13:55:46 2026 +0800"
      },
      "message": "docs(blog): add Chinese Horizon UI profiling translation (#874)"
    },
    {
      "commit": "8badf78edc68e04b0798d90a0a7d007965575b51",
      "tree": "7b2f80b3d7bd5b5908799c05a124bae3efab1ee0",
      "parents": [
        "be1c12bc6b09b14515a60a2d9dc7eec7e35d6cb9"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 11:42:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 11:42:56 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 9/17 — Five Profilers, One Flame Graph (#873)\n\nPart 9 of the Meet Horizon UI series on profiling: trace, async (JVM),\neBPF, Go pprof, and network. Four pour into one shared flame-graph /\nstack-tree engine; network renders a process honeycomb instead. Covers\nthe per-profiler task models, the create-vs-read permission split\n(profile:enable / profile:read), and per-layer availability.\n\n4 figures (WebP): flame + tree (same result, two views), the pprof tab\u0027s\none-event-per-task model, and the network honeycomb."
    },
    {
      "commit": "be1c12bc6b09b14515a60a2d9dc7eec7e35d6cb9",
      "tree": "03c3a8867a62f1921d8d1677c226b4c3bd2857a1",
      "parents": [
        "5b163a75ece22b4864fb9964ae39b39463354195"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 10:07:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 10:07:30 2026 +0800"
      },
      "message": "docs(blog): refine Horizon UI Chinese translations (#872)"
    },
    {
      "commit": "5b163a75ece22b4864fb9964ae39b39463354195",
      "tree": "4eae2bbbe00d59111a34de1105c5f6a3e736dc3d",
      "parents": [
        "c1956bae48f196eb7fd72d9d4232bb6c55733221"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 29 08:50:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 08:50:49 2026 +0800"
      },
      "message": "docs(blog): add Chinese Horizon UI translations for post 1-8 (#871)"
    },
    {
      "commit": "c1956bae48f196eb7fd72d9d4232bb6c55733221",
      "tree": "a4c0cb813cd82355c6193c687d4384f42fc1894d",
      "parents": [
        "08f8bb11c362c2ab6fa2f9c2fa9006aa299705e8"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Jun 26 08:53:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 08:53:36 2026 +0800"
      },
      "message": "Release Apache SkyWalking NodeJS 0.9.0 (#870)\n\nAdd the 0.9.0 release event; bump the NodeJS Agent download block in\ndata/releases.yml (source v0.9.0 + date) and the docs pointer in data/docs.yml\n(tree/v0.9.0, commit 1524588c)."
    },
    {
      "commit": "08f8bb11c362c2ab6fa2f9c2fa9006aa299705e8",
      "tree": "209bc55e70e2f219d5e6f79b70749f888643d3d1",
      "parents": [
        "de0452f4395e9adf8fcc55dbe67306af271ba336"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Jun 25 09:43:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 09:43:54 2026 +0800"
      },
      "message": "Release Apache SkyWalking Horizon UI 0.7.0 (#869)\n\n* Release Apache SkyWalking Horizon UI 0.7.0\n\n- data/releases.yml: add v0.7.0 (src+bin) as the latest entry (closer.cgi\n  download, downloads.apache.org asc/sha512); demote v0.6.0 links to\n  archive.apache.org.\n- data/docs.yml: point Latest at the v0.7.0 commit (9fc54aa) and add a\n  v0.7.0 docs entry.\n- content/events: add the 0.7.0 release announcement.\n\n* Remove Horizon UI 0.5.0 from downloads and docs\n\nDrop the v0.5.0 entries from data/releases.yml (source + distribution)\nand data/docs.yml, keeping the two most recent versions (0.7.0, 0.6.0)."
    },
    {
      "commit": "de0452f4395e9adf8fcc55dbe67306af271ba336",
      "tree": "c514ba685dc857800e97db2d54b36d17693b8909",
      "parents": [
        "6ef355f080159a0a7e3edefb9ca401f70ab31c98"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Wed Jun 24 20:36:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 20:36:28 2026 +0800"
      },
      "message": "docs(blog): re-title the Meet Horizon UI series N/16 → N/17 (#868)\n\nThe series gains a dedicated post — Inspect: Cross-Layer Query Power-Tools (Metrics + Trace + Log inspect), split out from the Runtime Rules post — so the planned total is now 17. Re-title the eight published posts\u0027 frontmatter from N/16 to N/17 to keep the series count consistent."
    },
    {
      "commit": "6ef355f080159a0a7e3edefb9ca401f70ab31c98",
      "tree": "995d22b9d32febaca1d1adac1d116332adfa4332",
      "parents": [
        "04c8ccf9b886a1de942cdf8df93628ba1e93e875"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 23 11:03:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 11:03:56 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 8/16 — Browser Errors \u0026 Source Maps (#867)"
    },
    {
      "commit": "04c8ccf9b886a1de942cdf8df93628ba1e93e875",
      "tree": "b0cc577c574143658aaa3dae7acd6ee97535d60d",
      "parents": [
        "29b956741b2a800eaef3dd34a66acafb4e9ec208"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Jun 23 09:50:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 09:50:54 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 7/16 — The Log Explorer (#866)\n\n* Blog: Meet Horizon UI 7/16 — The Log Explorer\n\nPart 7 of the Meet Horizon UI series: two log surfaces — the stored, indexed, trace-correlated Logs stream (level histogram, Levels filter, format-aware payload popout, no log query language) and the on-demand Pod Logs live tail read from the Kubernetes API server (Window/Interval, Include/Exclude regex, never persisted, disabled-by-default on OAP). 3 WebP figures. Render-verified against apps/ui/src/layer/{logs,pod-logs} + docs/operate/logs.md. Tags: Logging, Cloud Native.\n\n* docs(blog): P7 — explain why browser JS errors are a separate stream; drop placeholder link"
    },
    {
      "commit": "29b956741b2a800eaef3dd34a66acafb4e9ec208",
      "tree": "eed039d42e1bbc045f19c77b27e2309f9d391978",
      "parents": [
        "9cd56eebbe9c1ab62b2d38de8e93896a8f875439"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 23:48:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 23:48:27 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 6/16 — The Trace Explorer (#865)\n\nPart 6 of the Meet Horizon UI series: the per-layer Traces tab — a triage-first, run-on-demand trace explorer with structured conditions (no TraceQL), a duration-Distribution chart you box-select, three lenses (Default waterfall / Tree / Statistics), the span detail panel, and a Zipkin tab beside the native one. 5 WebP figures (explorer, waterfall, tree, Zipkin tab, Zipkin span). Render-verified against apps/ui/src/layer/traces + docs/operate/traces.md. Tags: Tracing, Cloud Native."
    },
    {
      "commit": "9cd56eebbe9c1ab62b2d38de8e93896a8f875439",
      "tree": "b13c2e93d9222440a58fd9363aa8910f03f6a21f",
      "parents": [
        "3d6bc823b57b0fab45aa1a9e068ddabd6fa558ff"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 20:45:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 20:45:19 2026 +0800"
      },
      "message": "docs(blog): point Horizon UI posts\u0027 doc handoffs at real doc pages (#864)\n\nP1/P2/P3 linked the generic https://skywalking.apache.org/docs/ root as a placeholder. Point each at its real Horizon UI doc page: intro -\u003e readme, dashboards -\u003e components/dashboard-widgets + components/charts, topology -\u003e customization/layer-templates."
    },
    {
      "commit": "3d6bc823b57b0fab45aa1a9e068ddabd6fa558ff",
      "tree": "032d902ed6eaf55b9edc790061ff1d0edba8ff67",
      "parents": [
        "1a396491aed79c05eeb3f49c88f1319cfeae7a84"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 20:15:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 20:15:03 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 5/16 — The 3D Infrastructure Map (#863)\n\n* Blog: Meet Horizon UI 5/16 — The 3D Infrastructure Map\n\nPart 5 of the Meet Horizon UI series: the WebGL /3d/map view — every layer\u0027s services as cubes stacked on four configurable tiers, with live traffic pills, firing-alarm beacons + Beacon mode, in-layer/cross-layer/hierarchy edges, the loading pipeline, and the structured /admin/3d-map config. Centerpiece is the live map3d embed; 4 WebP figures (overview, beacon mode, selected-service hierarchy, config editor). Tags: Cloud Native, Engineering.\n\n* docs(blog): P5 — point the docs handoff at the real 3D-map doc path"
    },
    {
      "commit": "1a396491aed79c05eeb3f49c88f1319cfeae7a84",
      "tree": "d143b8180d5b5ec94d1c456b4f9c988bd3f3b7fb",
      "parents": [
        "f27f31f11d088a9883725b524ba08530b0ed90f7"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 15:54:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 15:54:43 2026 +0800"
      },
      "message": "Blog index: 3 posts per row via a topic dropdown filter (#862)\n\n* feat(blog): full-width 3-up post grid with a topic dropdown filter\n\nThe 300px right \u0027Browse topics\u0027 sidebar forced the post grid to 2 columns. Move the topics into a compact dropdown above the grid (native \u003cdetails\u003e, no JS), so the cards take the full content width: 3-up on desktop, 2-up \u003c\u003d992px, 1-up \u003c\u003d600px. Applied to both the English (/blog/) and Chinese (/zh/) listings; topic rows still link to their /tags/ pages, plus an \u0027All posts\u0027 row. Drops the now-unused .blog-layout / .blog-sidebar / .album-* rules.\n\n* feat(blog): keep topic descriptions in the dropdown, two-column layout\n\nRestore each topic\u0027s one-line description (\u0027the words\u0027) in the Browse-topics dropdown and lay the topics out in two columns: a full-width \u0027All posts\u0027 row, then a 2-col grid of cards (pill + count + description), bound to intro / intro_zh.\n\nHardening from an adversarial review pass:\n- a11y: add a keyboard :focus-visible ring on the dropdown links/button (the Docsy reboot\u0027s \u0027a { outline: none }\u0027 otherwise leaves no focus state); darken the count pill to meet AA contrast.\n- keep the words: 3-line description clamp so the longest intro_zh isn\u0027t ellipsised.\n- robustness: no-shrink guard on the card head for a future 12th topic; collapse to one full-width column at \u003c\u003d760px so the tablet band isn\u0027t a near-full-bleed 2-col panel.\n- cleanup: drop the dead $allTags/$blogTags template vars and the unused data-label on the card anchor; refresh stale \u0027sidebar\u0027 comments to \u0027dropdown\u0027.\n\n* fix(mobile): restore content gutter on landing pages + consistent drawer menu fonts\n\nTwo mobile-only style fixes:\n\n1. Left/right gutter. The theme\u0027s _styles_project.scss zeroes .container padding globally; pages with a Bootstrap .col still get ~15px from the column, but the custom landing pages (home, docs, events, downloads, team, users) drop content straight into a bare .container, so on phones it sat flush against the viewport edge. Add a 20px gutter at \u003c\u003d991.98px, page-scoped so it outranks the theme rule without editing the theme. Blog/article pages keep their .col gutter unchanged.\n\n2. Drawer menu font consistency. In the slide-in mobile drawer the dropdown groups (中文资料 / Links) rendered as tiny gray uppercase headers while the other items were dark 15px/600 .nav-link. Make .sidebar .dropdown-title match .nav-link. Scoped to .sidebar, so the desktop navbar is untouched.\n\n* fix(mobile): drawer uses the site font stack (drop stale Lato fallback)\n\nThe mobile drawer\u0027s .nav-item carried the theme\u0027s font-family: Lato, sans-serif, but Lato is no longer loaded (Google Fonts were dropped), so the whole drawer fell back to generic sans-serif instead of the site\u0027s -apple-system stack. Add font-family: inherit so the drawer matches the rest of the UI. Completes the drawer font-consistency fix."
    },
    {
      "commit": "f27f31f11d088a9883725b524ba08530b0ed90f7",
      "tree": "4a9329c0355a6f7254aec14b2eb76c14a20cdec6",
      "parents": [
        "c5928423d99c6f359c5f6335d2bed62fb94f3264"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 10:06:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:06:54 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 4/16 — The Deployment Tab \u0026 BanyanDB Self-Observability (#860)"
    },
    {
      "commit": "c5928423d99c6f359c5f6335d2bed62fb94f3264",
      "tree": "d1183a6e8fbaa34fa72cc99c709b844715aff128",
      "parents": [
        "b7c204e8714146838848e39348f51757c099121c"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 22 10:06:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:06:33 2026 +0800"
      },
      "message": "docs(blog): convert Meet Horizon UI part 1-3 screenshots to WebP (q88) (#861)\n\nReplaces the 19 PNG screenshots in parts 1-3 (8.3 MB) with q88 WebP (1.9 MB, ~78% smaller) and updates the posts\u0027 image references, to cut page weight and speed loading. WebP is universally supported; the shots render at well under a third of their native pixel size, so q88 is visually lossless here. The home-page map3d poster (/images/home/) is left untouched."
    },
    {
      "commit": "b7c204e8714146838848e39348f51757c099121c",
      "tree": "817e53e1e5fad8b4eadb640acf7a24b3677eb811",
      "parents": [
        "5805cd1e0774fb07a0c7ffb0f79599c76ca15cf1"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Jun 21 22:48:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 22:48:25 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI 3/16 — Topology \u0026 Service Dependency (#859)\n\n* docs(blog): add Horizon UI topology \u0026 service dependency post (Meet Horizon UI series, part 3)\n\nPart 3 of the Meet Horizon UI series: one template-driven topology engine (per-layer service map with hexagonal health-ring nodes, RPM-chipped edges, component icons), the by-layer filter and group-aware selector, instance-map drill-down, the endpoint API-dependency graph, and the Smartscape cross-layer overlay. Seven figures captured from the demo."
    },
    {
      "commit": "5805cd1e0774fb07a0c7ffb0f79599c76ca15cf1",
      "tree": "1dd0f3b5cb2e31c77ba14e89ec3ac66602710086",
      "parents": [
        "81c4e732f0bfef4044f397b919db3d2d6f97c07c"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Jun 21 21:01:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 21:01:41 2026 +0800"
      },
      "message": "docs(blog): pin \u0026 compare entities is official — add Figure 7 (cross-service compare) (#858)\n\nDrops the now-obsolete \u0027(preview)\u0027 framing and the feature-flag instructions for multi-entity lock \u0026 compare (the gate is being removed and it ships as an official feature), and adds Figure 7 showing two instances from different services compared inline."
    },
    {
      "commit": "81c4e732f0bfef4044f397b919db3d2d6f97c07c",
      "tree": "095ad3ec4fed8cc509e251f6999835487284f4c5",
      "parents": [
        "ecea76d042baaee8ff329746ba8969267d8d2c14"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Jun 21 20:25:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 20:25:00 2026 +0800"
      },
      "message": "Blog: Meet Horizon UI series — part 2 (Dashboards \u0026 MQE) + part-1 title alignment (#856)\n\n* docs(blog): add Horizon UI dashboards \u0026 MQE post (Horizon UI series, part 2)\n\nSecond post of the Horizon UI series: how dashboards are built from MQE expressions, hide widgets that don\u0027t apply to the selected entity (skipping their queries server-side), render coded and raw-byte values readably (enum / duration / SI suffixes), tie every chart on the page to one synced crosshair, and jump from a slow-statement record straight into its trace. Six figures captured from the demo deployment."
    },
    {
      "commit": "ecea76d042baaee8ff329746ba8969267d8d2c14",
      "tree": "3e237dde8511978991053b03d4977f6ea95e8c2b",
      "parents": [
        "0082d5bbc775a1d8883f62bd1b4855b4a0229e51"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Jun 21 17:23:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 17:23:51 2026 +0800"
      },
      "message": "docs(blog): add \u0027Meet Horizon UI\u0027 introduction (Horizon UI series, part 1) (#855)\n\nFirst post of a multi-part series introducing Apache SkyWalking Horizon UI, the next-generation web console. Covers the OAP-driven sidebar, honest empty states, the new Fastify BFF tier, a live interactive 3D infrastructure-map embed, and backend compatibility: full observability plus governance run on OAP 10.x today, while the operate tooling (DSL management, Live Debugger, Inspect) lands with OAP 11.0."
    },
    {
      "commit": "0082d5bbc775a1d8883f62bd1b4855b4a0229e51",
      "tree": "092f9dbd9985dc2970d7cc2845d1b8f20092844a",
      "parents": [
        "dd72494d7af2ef8861716ba5366eb8d617827f2f"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sat Jun 20 21:39:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 21:39:30 2026 +0800"
      },
      "message": "chore(fonts): self-host/system fonts only; drop Google Fonts + unused Font Awesome (#854)\n\n- remove Space Grotesk (Google Fonts) hook; unify hero/seal/pill text on\n  the theme\u0027s $font-family-base system stack\n- delete unused Font Awesome vendor + static/webfonts (~52.6 MB, never\n  loaded: SCSS imports were commented and nothing linked it)\n- tidy the now-dangling commented FA @imports and fa-font-path\n- remove stale topo_ui.png preload (fixes a 404 + \"preloaded but not used\"\n  console warning on every page)\n\nEvery font the site serves is now a system font (no download) or a\nself-hosted woff2 (iconfont, plus the 3D-map demo\u0027s bundled Inter/JetBrains\nMono). No fonts.googleapis.com / fonts.gstatic.com requests from our code."
    },
    {
      "commit": "dd72494d7af2ef8861716ba5366eb8d617827f2f",
      "tree": "02917a3a2587655f8dc42c1a1a7dba09c8678175",
      "parents": [
        "5930c9cd75be9841ab01095c9106be33ff5374a1"
      ],
      "author": {
        "name": "Huang Youliang",
        "email": "butterbright0504@gmail.com",
        "time": "Sat Jun 20 11:41:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 20 11:41:03 2026 +0800"
      },
      "message": "Release Apache SkyWalking BanyanDB 0.10.3 (#853)"
    },
    {
      "commit": "5930c9cd75be9841ab01095c9106be33ff5374a1",
      "tree": "1df4c611de9197bf040e1cc51097a5c1359cfc26",
      "parents": [
        "5ff2c76661fd0a4d9d1fb48aee44ae5d67f66e7f"
      ],
      "author": {
        "name": "kezhenxu94",
        "email": "kezhenxu94@apache.org",
        "time": "Mon Jun 08 20:35:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 20:35:47 2026 +0800"
      },
      "message": "Release swck 0.10.0 (#852)"
    },
    {
      "commit": "5ff2c76661fd0a4d9d1fb48aee44ae5d67f66e7f",
      "tree": "eb33ebb768e023bfe2eb5963648497b976a76261",
      "parents": [
        "0e19af2811471ca3be835cb6333955c473fc4ca0"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Jun 04 09:34:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 09:34:07 2026 +0800"
      },
      "message": "feat(home): 3D infrastructure map demo + /#demo deep-link; release Horizon UI 0.6.0 (#851)"
    },
    {
      "commit": "0e19af2811471ca3be835cb6333955c473fc4ca0",
      "tree": "a2540a52c0d7ef371682e236760f48da9e53563b",
      "parents": [
        "833ce2530bc899b7043df8af09c34a9cc23a32b6"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Jun 01 23:54:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 23:54:32 2026 +0800"
      },
      "message": "feat(home): add interactive 3D infrastructure map demo (#850)"
    },
    {
      "commit": "833ce2530bc899b7043df8af09c34a9cc23a32b6",
      "tree": "1a19e90f77847b45204eb6b5aa001962d17d54da",
      "parents": [
        "17b3b71ddf16ad3ac56fd5b4a6952cff02649dce"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon May 25 15:36:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 25 15:36:55 2026 +0800"
      },
      "message": "feat(blog): data-driven topics, sidebar, inline pills, taxonomy term pages (#849)\n\nTopics (name + EN/CN intro + label colors) now live in a single source of\ntruth: data/blog_topics.yml. The sidebar topic cards, inline post pills,\ngenerated .blog-label[data-label] color rules and /tags/\u003cterm\u003e/ pages are\nall driven from that file — adding a 12th topic is one edit, no\ntemplate/SCSS changes required.\n\nBlog index (EN + CN)\n- Hero + right \u0027Browse topics\u0027 sidebar showing one card per topic with\n  its description (data file), post count, and link to /tags/\u003cterm\u003e/.\n- Main column lists all posts grouped by year (pagination removed; the\n  per-tag pages paginate at 12).\n- Sidebar collapses above the grid as a horizontal scroll-snap row at\n  \u003c\u003d992px.\n\nBlog detail page\n- Shadowed themes/docsy/layouts/blog/content.html: \u0027Tags | …\u0027 link list\n  replaced with inline colored .blog-label pills, each linking to its\n  /tags/\u003cterm\u003e/ page.\n- Right sidebar shows only the TOC (tags moved inline); column widths\n  rebalanced to col-xl-9 + col-xl-3 and the awkward .td-toc border-left\n  removed so the natural prose/TOC gap doesn\u0027t read as a blank strip.\n- Polished .td-toc styling under .td-blog (uppercase label, brand-blue\n  active item, left-border accent on hovered items, +1 nesting depth).\n- Hidden the empty Docsy .td-page-meta that was leaving a gap above the\n  TOC.\n\nTag taxonomy pages (new)\n- layouts/tags/baseof.html + layouts/tags/term.html render /tags/\u003cterm\u003e/\n  styled like the blog list, filtered to Section\u003d\u003dblog (so docs frontmatter\n  tags can\u0027t bleed in), 12 cards per page with pagination.\n\nBlog content remap\n- Every blog post frontmatter (EN: 82 files, CN: 31 of 94) rewritten to\n  use only the canonical 11 labels (Release, AI, Tracing, Metrics,\n  Logging, Profiling, Storage, Agents, Cloud Native, Engineering,\n  Community), max 3 tags per post, deduped."
    },
    {
      "commit": "17b3b71ddf16ad3ac56fd5b4a6952cff02649dce",
      "tree": "4293df668f889a4561288218581b1023764a706b",
      "parents": [
        "0789ef9d1ebcbf61e9fce3af577a9acae1379f4c"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 14:26:52 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 14:26:52 2026 +0800"
      },
      "message": "fix(ci): authenticate team.js GitHub API calls with GITHUB_TOKEN\n\nscripts/team.js was making anonymous GitHub API calls and hitting the\n60-req/hr-per-IP unauthenticated rate limit (403). CI exposes\nGITHUB_TOKEN but only stars.js was reading it; team.js was left out.\nMirroring the auth header lifts the cap to 5000/hr.\n"
    },
    {
      "commit": "0789ef9d1ebcbf61e9fce3af577a9acae1379f4c",
      "tree": "4dc72ac6116d149e75606e02982492bcfea43ee2",
      "parents": [
        "e2d4785efdf5ab7f91d04765ee36c9d23e2bc498"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 14:07:24 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 14:07:24 2026 +0800"
      },
      "message": "feat(home/docs): surface total GitHub stars (build-time sum across all repos)\n\nscripts/stars.js already sums every (user/repo) in data/docs.yml into\ndata/stars.yml\u0027s totals.stars at build time; this just renders it:\n- new {{\u003c stars-total \u003e}} shortcode (compact form, e.g. \u002734.3K+\u0027)\n- 4th hero-stat on the home page linking to apache org repos search\n- extended /docs/ eyebrow with the same total + repo count\n"
    },
    {
      "commit": "e2d4785efdf5ab7f91d04765ee36c9d23e2bc498",
      "tree": "1424f0880032b64d7632f985cee2c630d7a67dbc",
      "parents": [
        "cf76243d4e9166089a34374567f5edfd1d546b6f"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 13:59:50 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 13:59:50 2026 +0800"
      },
      "message": "fix(ui): lift project cards above siblings while their dropdown is open\n\nThe \u0027versions\u0027 (docs) and \u0027+N more\u0027 (downloads) \u003cdetails\u003e dropdowns\nextend below the card; an adjacent card\u0027s stacking context could paint\nits own controls over the open list. Give .docs-card / .dl-card a\nbaseline z-index and raise the open card via :has(details[open]) so the\ndropdown always renders above its neighbors.\n"
    },
    {
      "commit": "cf76243d4e9166089a34374567f5edfd1d546b6f",
      "tree": "eaca5e398791c4aab73890410e502db176f3e225",
      "parents": [
        "0d047d8994d8288c6f551e905004c986ecf37002"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun May 24 08:54:50 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 24 08:54:50 2026 +0800"
      },
      "message": "release: Apache SkyWalking Horizon UI 0.5.0 (#848)\n\n- Add release event post.\n- Add source + distribution download blocks (releases.yml).\n- Add Latest and v0.5.0 docs entries pinned to the release commit (docs.yml)."
    },
    {
      "commit": "0d047d8994d8288c6f551e905004c986ecf37002",
      "tree": "f4ab1df390091c9d9aaa09f7c38748e2c3a7e72a",
      "parents": [
        "2d339cfa1e7e2162c6f58b284994d306782d44b4"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri May 22 09:15:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 09:15:41 2026 +0800"
      },
      "message": "feat(docs/downloads): card permalink hooks, date-sorted latest releases, content cleanup (#847)\n\n- Add clickable permalink hook + selectable :target highlight to docs and\n  download project cards; clicking copies the deep link, clicking the box\n  selects it and updates the URL hash.\n- Downloads \u0027Latest releases\u0027 now sorts projects by actual release date\n  (parsing both \u0027Mon. DDth, YYYY\u0027 and ISO dates) and shows the 5 newest with\n  dates; dropped the GPG/SHA-512/mirrors tag row.\n- Horizon UI: drop the inaccurate \u0027Included in the main repo release\u0027 note\n  (still on voting, not released).\n- docs.yml: remove the SkyWalking Servers and Database descriptionItem notes;\n  move SourceMarker to Ecosystem Retired Projects."
    },
    {
      "commit": "2d339cfa1e7e2162c6f58b284994d306782d44b4",
      "tree": "72636110c43df4d7395f34d97d9fbb875405d2b9",
      "parents": [
        "5825a77a93da38a8e29d749bca607b6019c91bc5"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu May 21 11:39:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 11:39:07 2026 +0800"
      },
      "message": "fix(ui): polish mobile navbar + slide-out drawer (light theme); hide desktop right-group below lg (#846)"
    },
    {
      "commit": "5825a77a93da38a8e29d749bca607b6019c91bc5",
      "tree": "d004a222c6a64e5b24f5cfc5d633bd6603a35b7e",
      "parents": [
        "eefba3ac67c53d72f2149784642db06f6536a7c4"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu May 21 11:14:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 11:14:24 2026 +0800"
      },
      "message": "Website redesign: unified light theme, polished docs, data-driven pages (#844)\n\nWebsite redesign: unified light theme, polished docs, data-driven pages\n\nA full light-theme redesign of the public site — every page now shares one\nvisual language (brand blue #3788D0, rounded cards, consistent hero / sticky\nnav / footer).\n\nPages\n- Home: fixed Horizon \"canyon\" backdrop (parallax, fades into content), ASF\n  oak-leaf seal stamp, display-font stats (contributors / 100B+ / 10+ yrs),\n  product-shot widget row (trace/logs/metrics/RBAC), capability cards with\n  aligned CTAs, richer ecosystem cards, polished get-started + community\n  cards. Quick-start CTAs jump to the docs Get-started section.\n- Docs landing: hero + category chips + project card grid with build-time\n  GitHub stars; a Get-started block with two OS-tabbed quickstarts (Run the\n  Showcase vs Run SkyWalking; bash / PowerShell; line-numbered, soft-wrapping\n  code); de-duplicated read-docs/versions control.\n- Generated docs reading view: prose scale, dark code blocks with copy +\n  language label, callouts, themed version selector, polished \"On this page\".\n- Events: year-grouped timeline cards + detail page with all-events sidebar.\n- Blog (EN + 中文): card grid with color-coded labels and preview.\n- Downloads: compact 4-up cards, latest source/distribution + older in a\n  dropdown, restyled Docker images and verify section.\n- Team: PMC/Committer roster moved to data/committee.yml (auto-built grids),\n  project-level contributor grid + search + modal.\n- Users: auto-scrolling logo marquee (grayscale → color).\n- Contributors: light Project/Contributions/Ranking table (search preserved).\n- Navbar: section-based active highlight, Apache dropdown with the new ASF\n  oak-leaf logo; redesigned announcement popup.\n\nData-driven content\n- data/quickstart.yml — homepage/docs quickstarts (mirror backend-docker + showcase).\n- data/committee.yml — PMC \u0026 Committer roster (one-line edits to add a member).\n- data/stars.yml + scripts/stars.js — build-time GitHub stars (token-aware,\n  retry, cached fallback); replaces the runtime github-buttons widget.\n  Build command signatures unchanged, so CI is unaffected.\n\nBlog labels\n- Consolidated ~90 ad-hoc tags into 11 clear labels (Release, Tracing,\n  Metrics, Logging, Profiling, Storage, Agents, Cloud Native, AI, Community,\n  Engineering); all 84 EN posts re-tagged (≤3 each).\n\nNotes\n- Existing data shapes (releases.yml, docs.yml, users.yml, generated team.yml)\n  preserved; release/docs/team flows unaffected. JS hooks (search/modals,\n  version switcher, event popup, lazy-load) kept intact."
    },
    {
      "commit": "eefba3ac67c53d72f2149784642db06f6536a7c4",
      "tree": "271f85cb31f2d0abeb8b0bf58531636cf3d01c53",
      "parents": [
        "c8b39b80d34a85043b86198d20817a89c694fc26"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon May 18 22:04:25 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon May 18 22:04:25 2026 +0800"
      },
      "message": "docs(ui): add Next docs entry for Horizon UI\n"
    },
    {
      "commit": "c8b39b80d34a85043b86198d20817a89c694fc26",
      "tree": "ba6d76c810d9413819dedc32713f0e96c8c3824d",
      "parents": [
        "d4d8d04a8a1498832c2536aa50f27633e3384b24"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon May 18 16:30:05 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon May 18 16:30:05 2026 +0800"
      },
      "message": "docs(ui): add Horizon UI and archive Booster UI\n\nAdd apache/skywalking-horizon-ui as the next-generation UI (natively\nsupports SkyWalking since v11, and partially v10). Move Booster UI\nfrom the active server list to Archived Repositories.\n"
    },
    {
      "commit": "d4d8d04a8a1498832c2536aa50f27633e3384b24",
      "tree": "0b972e4a2f2c65300a19e1fa2355aa1c309adfc3",
      "parents": [
        "b712dfe00de32caa06e76efc515096efc1cf2ce3"
      ],
      "author": {
        "name": "Gao Hongtao",
        "email": "hanahmily@gmail.com",
        "time": "Wed May 06 23:14:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 23:14:08 2026 +0800"
      },
      "message": "docs(team): move Youliang Huang from Committer to PMC (#842)"
    },
    {
      "commit": "b712dfe00de32caa06e76efc515096efc1cf2ce3",
      "tree": "de3dfa013e9e4de1e77e5fd76485f8221aad5198",
      "parents": [
        "51156eb8cc795dc3d1b1d5e1d8f3bc6264c22713"
      ],
      "author": {
        "name": "mrproliu",
        "email": "741550557@qq.com",
        "time": "Wed May 06 18:46:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 18:46:20 2026 +0800"
      },
      "message": "Release SkyWalking Helm 4.9.0 (#841)"
    },
    {
      "commit": "51156eb8cc795dc3d1b1d5e1d8f3bc6264c22713",
      "tree": "6407b75505febf92d8f430dd22208ca8649757b0",
      "parents": [
        "1007705a25b3e0a48ce572aaf9684be5277a439c"
      ],
      "author": {
        "name": "Gao Hongtao",
        "email": "hanahmily@gmail.com",
        "time": "Wed May 06 11:45:26 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 11:45:26 2026 +0800"
      },
      "message": "Release Apache SkyWalking BanyanDB 0.10.2 (#840)"
    },
    {
      "commit": "1007705a25b3e0a48ce572aaf9684be5277a439c",
      "tree": "f33b9a37f74d97534806dbc07a4961effa8e3d7b",
      "parents": [
        "a95e92f00f23b4338018390408dde0b5980cc6de"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Apr 30 22:01:01 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Apr 30 22:01:01 2026 +0800"
      },
      "message": "Fix and push event.\n"
    },
    {
      "commit": "a95e92f00f23b4338018390408dde0b5980cc6de",
      "tree": "37cf107b54d291b414696afc462a3b9c74f7d9c0",
      "parents": [
        "028f4177c77d6ed90107c190fa640181fb4af2d5"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Apr 30 21:48:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 21:48:46 2026 +0800"
      },
      "message": "Add mini-program monitoring blog (WeChat / Alipay) (#839)"
    },
    {
      "commit": "028f4177c77d6ed90107c190fa640181fb4af2d5",
      "tree": "3ec15eebf21922fc869c94c1f989771549f0dd54",
      "parents": [
        "05959b79a5a208c20dcdf723637e3b3c03523840"
      ],
      "author": {
        "name": "Gao Hongtao",
        "email": "hanahmily@gmail.com",
        "time": "Tue Apr 28 10:37:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:37:57 2026 +0800"
      },
      "message": "Update BanyanDB Helm version to 0.6.0 in docs and releases files, including updated download links. (#838)\n\nCo-authored-by: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "05959b79a5a208c20dcdf723637e3b3c03523840",
      "tree": "e69802bf9d9473f7cc47fb8cecff2d5ec0a7e3d7",
      "parents": [
        "142420f26420d8e6e35ada7da4eeee16d3c4b98b"
      ],
      "author": {
        "name": "OmCheeLin",
        "email": "19563671928@163.com",
        "time": "Mon Apr 20 21:13:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 21:13:23 2026 +0800"
      },
      "message": "update v0.10.0 doc graph (#837)\n\n* v0.10.0"
    },
    {
      "commit": "142420f26420d8e6e35ada7da4eeee16d3c4b98b",
      "tree": "c72e04ef415bc3ffa28a31d585f32e9382edf954",
      "parents": [
        "6c9a3ad2c3fd169612da9406d6ac64ea9a868b7d"
      ],
      "author": {
        "name": "Wan Kai",
        "email": "wankai123@foxmail.com",
        "time": "Wed Apr 15 08:56:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 08:56:05 2026 +0800"
      },
      "message": "Add more Grafana screen-shots for traceQL docs (#836)"
    },
    {
      "commit": "6c9a3ad2c3fd169612da9406d6ac64ea9a868b7d",
      "tree": "cd62aa62dcbd9221feb62f2a8a2ea7cd42166bdd",
      "parents": [
        "52c817e252da7fafb708857969983918a10276d3"
      ],
      "author": {
        "name": "Fine0830",
        "email": "fanxue0830@gmail.com",
        "time": "Sun Apr 12 22:24:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 22:24:07 2026 +0800"
      },
      "message": "release skywalking mcp 0.2.0 (#835)"
    },
    {
      "commit": "52c817e252da7fafb708857969983918a10276d3",
      "tree": "822f0e4d30afee2b002841b6a4e90ca9c9414fc5",
      "parents": [
        "0acd6d7d65b55e11e5ba4e86cd6ed0c9df3090be"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Apr 10 09:10:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 09:10:48 2026 +0800"
      },
      "message": "Add SkyWalking GraalVM Distro 0.3.0 release (#834)"
    },
    {
      "commit": "0acd6d7d65b55e11e5ba4e86cd6ed0c9df3090be",
      "tree": "af87cec5a0a928d79959e3f07638b02b22c0f393",
      "parents": [
        "a2a5d36f062a346d909b6649c92111cc5c0086d3"
      ],
      "author": {
        "name": "Wan Kai",
        "email": "wankai123@foxmail.com",
        "time": "Thu Apr 09 11:26:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:26:41 2026 +0800"
      },
      "message": "Add TraceQL blog (#833)"
    },
    {
      "commit": "a2a5d36f062a346d909b6649c92111cc5c0086d3",
      "tree": "95a76334bbd59654f7ad018433f72a83986f0746",
      "parents": [
        "d11ce403b67ddebe283128068a1a84a7d2810318"
      ],
      "author": {
        "name": "peachisai",
        "email": "2581009893@qq.com",
        "time": "Wed Apr 08 13:29:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 08 13:29:02 2026 +0800"
      },
      "message": "Update the committer list (#832)"
    },
    {
      "commit": "d11ce403b67ddebe283128068a1a84a7d2810318",
      "tree": "cea3d00451dce2c27e49ba77c9c28679e6654d4d",
      "parents": [
        "28732001236047d0a82841c263961bfe494f5c23"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Wed Apr 08 10:08:06 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Wed Apr 08 10:08:12 2026 +0800"
      },
      "message": "Fix clickable links for retired project replacements on docs page\n\nUse markdownify filter in docs template and convert bare URLs to\nmarkdown anchor links so they trigger the blue box highlight on click.\n"
    },
    {
      "commit": "28732001236047d0a82841c263961bfe494f5c23",
      "tree": "76eac4a6b3f424ba980ec7e9acd4ff930b4b94b0",
      "parents": [
        "28acb73b4bda8dd8d7914788e3ceffe18e0d12cd"
      ],
      "author": {
        "name": "Wan Kai",
        "email": "wankai123@foxmail.com",
        "time": "Tue Apr 07 15:52:49 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 15:52:49 2026 +0800"
      },
      "message": "Add images for docs ui-grafana.md (#831)"
    },
    {
      "commit": "28acb73b4bda8dd8d7914788e3ceffe18e0d12cd",
      "tree": "067628410ed186fc8720dd7540a7392cec89b106",
      "parents": [
        "e3b6e6b333463464e5b354385484f536e4b25c87"
      ],
      "author": {
        "name": "Wan Kai",
        "email": "wankai123@foxmail.com",
        "time": "Tue Apr 07 15:35:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 15:35:19 2026 +0800"
      },
      "message": "Add images for docs ui-grafana.md (#830)"
    },
    {
      "commit": "e3b6e6b333463464e5b354385484f536e4b25c87",
      "tree": "58cc381542814c19cf37f126ad8100006cad197c",
      "parents": [
        "02db835d0db4c4360f6c1ce716117714c0eb8ea3"
      ],
      "author": {
        "name": "Gao Hongtao",
        "email": "hanahmily@gmail.com",
        "time": "Mon Apr 06 15:17:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 15:17:03 2026 +0800"
      },
      "message": "Release Apache SkyWalking BanyanDB 0.10.1 (#829)"
    },
    {
      "commit": "02db835d0db4c4360f6c1ce716117714c0eb8ea3",
      "tree": "9df43d369c8c3d2c6f56a9da21ca6c2cc6a5944b",
      "parents": [
        "8b8e8b3b9424e3c857681dae09eeaa30e1ec63c6"
      ],
      "author": {
        "name": "peachisai",
        "email": "2581009893@qq.com",
        "time": "Mon Apr 06 13:33:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 06 13:33:34 2026 +0800"
      },
      "message": "Add the blog: Virtual GenAI Observability (#828)"
    },
    {
      "commit": "8b8e8b3b9424e3c857681dae09eeaa30e1ec63c6",
      "tree": "93b38d4b50a17a88d5074e38afb4573c89f91bf6",
      "parents": [
        "7d0ab9f748e4a0405bf5fa30239fa5a09281f5d0"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Apr 03 15:00:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 15:00:25 2026 +0800"
      },
      "message": "Release Apache SkyWalking APM 10.4.0 (#823)"
    },
    {
      "commit": "7d0ab9f748e4a0405bf5fa30239fa5a09281f5d0",
      "tree": "46fb5be54c5e793754b7d2dfd2049338dd0c6be0",
      "parents": [
        "ced661ba131406000a0cdf045e319736fc7164d4"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Apr 03 11:45:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 03 11:45:43 2026 +0800"
      },
      "message": "Add blog: Monitoring Envoy AI Gateway with SkyWalking (#824)"
    },
    {
      "commit": "ced661ba131406000a0cdf045e319736fc7164d4",
      "tree": "70ec76036b8cacb2e7cb9801d3010ee4a75851a9",
      "parents": [
        "d2bc870f93634d11794172efe806e74cffcc1596"
      ],
      "author": {
        "name": "Gao Hongtao",
        "email": "hanahmily@gmail.com",
        "time": "Tue Mar 31 08:39:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 31 08:39:03 2026 +0800"
      },
      "message": "Release BanyanDB 0.10.0 (#822)\n\n- Update releases.yml: BanyanDB Server and bydbctl to v0.10.0\n- Update docs.yml: Add BanyanDB v0.10.0 docs version\n- Add release event page for BanyanDB 0.10.0"
    },
    {
      "commit": "d2bc870f93634d11794172efe806e74cffcc1596",
      "tree": "b754ed99aeacc8fbcc042b7484bf1f4a78877c4a",
      "parents": [
        "8ea871b1a032ea42358bb1f47f537b10f1c0b7bd"
      ],
      "author": {
        "name": "Fine0830",
        "email": "fanxue0830@gmail.com",
        "time": "Mon Mar 30 21:45:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 30 21:45:34 2026 +0800"
      },
      "message": "docs: release client js v1.1.0 (#821)"
    },
    {
      "commit": "8ea871b1a032ea42358bb1f47f537b10f1c0b7bd",
      "tree": "ac07b5a3345e51e12d510916dae899131ed427ed",
      "parents": [
        "d69fdb812ec8b966d71808f2bdf4aba1dee1cc29"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 30 15:01:41 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 30 15:01:41 2026 +0800"
      },
      "message": "Add release event post for SkyWalking GraalVM Distro 0.2.1 and fix typo in releases.yml\n"
    },
    {
      "commit": "d69fdb812ec8b966d71808f2bdf4aba1dee1cc29",
      "tree": "e3141bf5ec7695d5c937d0f6c4d4aecfcced1f76",
      "parents": [
        "1e776a507d161a7d46a5e057453e1bf76180e33e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Mar 26 20:00:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 20:00:18 2026 +0800"
      },
      "message": "Bump picomatch from 2.3.1 to 2.3.2 in /themes/docsy/userguide (#819)\n\nBumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.\n- [Release notes](https://github.com/micromatch/picomatch/releases)\n- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: picomatch\n  dependency-version: 2.3.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "1e776a507d161a7d46a5e057453e1bf76180e33e",
      "tree": "dfe6f0e5be17293752f5bc86cd30224da07fb4cb",
      "parents": [
        "179d135fe7f61efb3a877020a968276fa63ec4b3"
      ],
      "author": {
        "name": "Fine0830",
        "email": "fanxue0830@gmail.com",
        "time": "Thu Mar 26 17:49:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 26 17:49:48 2026 +0800"
      },
      "message": "release SkyWalking MCP v0.1.0 (#820)"
    },
    {
      "commit": "179d135fe7f61efb3a877020a968276fa63ec4b3",
      "tree": "94297c130c9c31cc500f63bc6a05d4a98df431d5",
      "parents": [
        "aa7d9a21b8ce8984c4020663321172d97cc7ecfa"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Mar 26 08:36:22 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Thu Mar 26 08:36:22 2026 +0800"
      },
      "message": "Fix Node.js 20 deprecation warning in GitHub Actions\n\nUpgrade actions/checkout from v4 to v6 and set\nFORCE_JAVASCRIPT_ACTIONS_TO_NODE24\u003dtrue for peaceiris/actions-gh-pages.\n"
    },
    {
      "commit": "aa7d9a21b8ce8984c4020663321172d97cc7ecfa",
      "tree": "36cac802365acf97c079c9c31bc061c73837d047",
      "parents": [
        "0b8239e30624f0ef9c5f9c317bbd59d7ba5f0c1b"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Mar 24 16:19:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 24 16:19:36 2026 +0800"
      },
      "message": "Bump Hugo to v0.159.0 and improve UI (#818)\n\nHugo Upgrade (v0.80.0 → v0.159.0)\n- CI: Updated Hugo download URL in .github/workflows/deploy.yaml\n- Netlify: Added netlify.toml to pin Hugo version for PR previews\n- Deprecated APIs fixed:\n  - .Site.IsServer → hugo.IsServer (3 template files)\n  - .Site.DisqusShortname → .Site.Config.Services.Disqus.Shortname (8 template files)\n  - .Site.Author removed from RSS (unused, no author configured)\n  - .Scratch → .Store in RSS template\n- Layout compatibility: Hugo 0.159.0 normalizes type to lowercase and\n  no longer allows layout: baseof. Fixed by creating project-level\n  layouts/projectdoc/ (lowercase) with proper single.html, using\n  index function for .Site.Data access, and hasPrefix for path matching\n- Content fix: Merged duplicate description key in skywalkingday-2021 event\n\ndocs.js Improvements\n- Derive doc localPath from link field instead of version, allowing\n  version display names with special characters like parentheses\n- Quote shell arguments in execSync calls\n- Fix skywalking-python v1.2.0 link pointing to /next/ instead of /v1.2.0/\n\nUI Improvements\n- Download page: Highlight main downloads (src/tar), dim auxiliary links (asc/sha512)\n- Docs listing dropdown: Added hover effect on dropdown items\n- Scrollbar: Improved styling with track background and better visibility\n- Version selector: Simplified inline layout"
    },
    {
      "commit": "0b8239e30624f0ef9c5f9c317bbd59d7ba5f0c1b",
      "tree": "f69bdee9120262579f4e2d71cd8d022f9555349e",
      "parents": [
        "0f2831a57ce596705419cea497fe8da8973b1120"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Mar 24 09:11:06 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Mar 24 09:11:06 2026 +0800"
      },
      "message": "Derive doc localPath from link field instead of version, allowing version to contain display names with special characters like parentheses.\n\n- Fix skywalking-python v1.2.0 link pointing to /next/ instead of /v1.2.0/\n- Quote shell arguments in doc.sh execSync call\n"
    },
    {
      "commit": "0f2831a57ce596705419cea497fe8da8973b1120",
      "tree": "acbdffe2e38c7b691fe69fb5e7de683eb7e65d39",
      "parents": [
        "4c40d82ea267e5c8926daccc49d810ff8bcf5d3d"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Mar 24 08:53:21 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Tue Mar 24 08:53:21 2026 +0800"
      },
      "message": "Fix version.\n"
    },
    {
      "commit": "4c40d82ea267e5c8926daccc49d810ff8bcf5d3d",
      "tree": "ef38a856b18448c2b495db5543d4296a40db0f1b",
      "parents": [
        "c08115da25fbccdce5851cb77fd0902daadc5a6e"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:42:53 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:42:53 2026 +0800"
      },
      "message": "update version.\n"
    },
    {
      "commit": "c08115da25fbccdce5851cb77fd0902daadc5a6e",
      "tree": "acbdffe2e38c7b691fe69fb5e7de683eb7e65d39",
      "parents": [
        "41630f69b6adc47d1578932873f6be8cf11f505a"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:24:28 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:24:28 2026 +0800"
      },
      "message": "Support new line.\n"
    },
    {
      "commit": "41630f69b6adc47d1578932873f6be8cf11f505a",
      "tree": "3275e96a6c84f044697d8b13ba785ab7f1a5ebef",
      "parents": [
        "0ef4dd24fe39dd3143523987d3f6d575525d480e"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:09:35 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:09:35 2026 +0800"
      },
      "message": "Fix link.\n"
    },
    {
      "commit": "0ef4dd24fe39dd3143523987d3f6d575525d480e",
      "tree": "9d3ff536ebb042ad1721abfcf6ddf1aed2b554f0",
      "parents": [
        "7b55ac23ebd3e37ad5d0568871b27c357afac36f"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:05:42 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 16:05:42 2026 +0800"
      },
      "message": "Update docker image repos.\n"
    },
    {
      "commit": "7b55ac23ebd3e37ad5d0568871b27c357afac36f",
      "tree": "59c237492eab772a72e1fb23bec2fa953d1fdf9b",
      "parents": [
        "08f22a17f15739153076e63b0ee86ffb44ee65df"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 15:47:07 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 15:47:07 2026 +0800"
      },
      "message": "Release graalvm-distro 0.2.1\n"
    },
    {
      "commit": "08f22a17f15739153076e63b0ee86ffb44ee65df",
      "tree": "3b636f5810aa1a2ce12892f77fea605796ed626a",
      "parents": [
        "3525789df0fd3c95d3f9db662f52d285abccd1a6"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 15:31:34 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 23 15:31:34 2026 +0800"
      },
      "message": "Add a new release.\n"
    },
    {
      "commit": "3525789df0fd3c95d3f9db662f52d285abccd1a6",
      "tree": "e8afc3481d74f0dad7a778605ffa64597bb7c301",
      "parents": [
        "c19635c2c480c35c497b9bfd8c6c20f480340758"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sat Mar 21 14:12:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 21 14:12:13 2026 +0800"
      },
      "message": "fix: Undo the code modification of #815 (#817)"
    },
    {
      "commit": "c19635c2c480c35c497b9bfd8c6c20f480340758",
      "tree": "37a0756a262300bfe0c30936512c165880a78d86",
      "parents": [
        "845283c7c960aec88d7170df003541316721d779"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sat Mar 21 13:31:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 21 13:31:45 2026 +0800"
      },
      "message": "fix: CSP_PROJECT_DOMAINS config to load recaptcha resource (#816)"
    },
    {
      "commit": "845283c7c960aec88d7170df003541316721d779",
      "tree": "0673d6814f53b11146f38898064e724ca7c8e7b5",
      "parents": [
        "676041e60c8ef416c535f2f6a06c3813a083a5ce"
      ],
      "author": {
        "name": "Senrian",
        "email": "47714364+Senrian@users.noreply.github.com",
        "time": "Sat Mar 21 11:51:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 21 11:51:42 2026 +0800"
      },
      "message": "fix: use SetEnv CSP_PROJECT_DOMAINS instead of overriding CSP header (#815)\n\nFollow Apache Infra standard CSP handling per https://infra.apache.org/tools/csp.html\nThe Content-Security-Policy header must not be overridden directly.\nInstead, use SetEnv CSP_PROJECT_DOMAINS to add project-specific domains\nto the default Apache CSP base policy.\n\nCo-authored-by: Zhang Juntao \u003czhangjuntao@apache.org\u003e"
    },
    {
      "commit": "676041e60c8ef416c535f2f6a06c3813a083a5ce",
      "tree": "78d78bcf7e0c8ce1ebd78af2fa2e78a1bc5217a3",
      "parents": [
        "d22d3b92c3dac89584b8a589d7ef8375ed49b290"
      ],
      "author": {
        "name": "jmjoy",
        "email": "jmjoy@apache.org",
        "time": "Mon Mar 16 10:32:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 16 10:32:55 2026 +0800"
      },
      "message": "Release SkyWalking PHP 1.1.0 (#814)"
    },
    {
      "commit": "d22d3b92c3dac89584b8a589d7ef8375ed49b290",
      "tree": "ae07da1b57dc362867a1aa5462fe7166bb3a4ffc",
      "parents": [
        "afb064a44cd0f8a317f8d13e50ea452a546067ce"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 16 08:11:47 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 16 08:11:47 2026 +0800"
      },
      "message": "Update graphs.\n"
    },
    {
      "commit": "afb064a44cd0f8a317f8d13e50ea452a546067ce",
      "tree": "203acbcb8ec4d771986541083750170a5944be7f",
      "parents": [
        "8cab346ee884653d6a13761a8bbff3b83fad7ec5"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 23:01:08 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 23:01:08 2026 +0800"
      },
      "message": "Push images.\n"
    },
    {
      "commit": "8cab346ee884653d6a13761a8bbff3b83fad7ec5",
      "tree": "784b4a9392d7227b9c0ac094a02be18fd245e713",
      "parents": [
        "e86cfb144413e71714ed37b07f65dd4354b6a8c9"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 22:33:54 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 22:33:54 2026 +0800"
      },
      "message": "Push CN blogs\n"
    },
    {
      "commit": "e86cfb144413e71714ed37b07f65dd4354b6a8c9",
      "tree": "6990d6c5014f77f657edac35eae72672a15e5dd5",
      "parents": [
        "d9978f753f2324540646bd17e1a1a0d74f0c52a7"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 11:24:16 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 15 11:24:16 2026 +0800"
      },
      "message": "Publish two blogs. `How AI Changed the Economics of Architecture`  and `SkyWalking GraalVM Distro: Design and Benchmarks`.\n"
    },
    {
      "commit": "d9978f753f2324540646bd17e1a1a0d74f0c52a7",
      "tree": "168e0bc984b982f3bd287330b0a614d106b54929",
      "parents": [
        "7ab57b786c403c3d174a05ec2fbbefe4a13dc2b0"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 09 08:23:13 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Mon Mar 09 08:23:13 2026 +0800"
      },
      "message": "Add Chinese version of agentic vibe coding blog post\n"
    },
    {
      "commit": "7ab57b786c403c3d174a05ec2fbbefe4a13dc2b0",
      "tree": "8e017a768b3857c6ebf9628ace95893cbe27612b",
      "parents": [
        "41cc116f8f44f4259aa4524bdf13cf489953baa0"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 08 23:40:18 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Mar 08 23:40:18 2026 +0800"
      },
      "message": "Add blog post: Agentic Vibe Coding in a Mature OSS Project\n"
    },
    {
      "commit": "41cc116f8f44f4259aa4524bdf13cf489953baa0",
      "tree": "47e2e4df7ce2d610d6c938814fc045c4c84fd495",
      "parents": [
        "8da4b0c5de42fbc715cc7799a4c4065bfd8a8b84"
      ],
      "author": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Feb 27 08:52:48 2026 +0800"
      },
      "committer": {
        "name": "Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Fri Feb 27 08:52:48 2026 +0800"
      },
      "message": "Add experimental GraalVM Distro project to docs\n"
    },
    {
      "commit": "8da4b0c5de42fbc715cc7799a4c4065bfd8a8b84",
      "tree": "04382374dfe4ddd8b6645029488206acec9b6f46",
      "parents": [
        "3129932829a93ce609fcc8dcb7f22b91967ea9c3"
      ],
      "author": {
        "name": "吴晟 Wu Sheng",
        "email": "wu.sheng@foxmail.com",
        "time": "Sun Feb 22 11:19:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 11:19:25 2026 +0800"
      },
      "message": "Add Java Agent 9.6.0 release event, docs, and download links (#813)\n\n"
    },
    {
      "commit": "3129932829a93ce609fcc8dcb7f22b91967ea9c3",
      "tree": "a06af3b0a6615a3d0d02626ad1de45d0491f36d5",
      "parents": [
        "9e691afd0ce93421500acc34998f1e6037b008e9"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sun Jan 25 16:04:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 25 16:04:52 2026 +0800"
      },
      "message": "Rollback configuration"
    },
    {
      "commit": "9e691afd0ce93421500acc34998f1e6037b008e9",
      "tree": "aa85eec05a30991d8da05b20d9f95b8edaed1f6b",
      "parents": [
        "78d86cc8658f404e1ef5deb51aae6a113b79a575"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sun Jan 25 16:02:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 25 16:02:53 2026 +0800"
      },
      "message": "Rollback configuration"
    },
    {
      "commit": "78d86cc8658f404e1ef5deb51aae6a113b79a575",
      "tree": "6b338b5162e578c75d627b5c55785cc54643b780",
      "parents": [
        "5835726f5a605093e46c5e8007468097f1e1587f"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sun Jan 25 15:43:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 25 15:43:54 2026 +0800"
      },
      "message": "Modify Content-Security-Policy in .htaccess (#812)\n\nUpdated Content-Security-Policy to include js.hcaptcha.com."
    },
    {
      "commit": "5835726f5a605093e46c5e8007468097f1e1587f",
      "tree": "6558ffaed24e1c69cf5385e6b1452b36d8e79edb",
      "parents": [
        "c9cf4d1662f9a0ff2dafaed6e60d14ec19100dea"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sun Jan 25 15:22:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 25 15:22:32 2026 +0800"
      },
      "message": "Refactor Content-Security-Policy in .htaccess (#811)\n\n* Refactor Content-Security-Policy in .htaccess\n\nUpdated Content-Security-Policy to simplify directives and enhance security.\n\n* update .htaccess"
    },
    {
      "commit": "c9cf4d1662f9a0ff2dafaed6e60d14ec19100dea",
      "tree": "c6c36db48ff8dc2261c68c7de3eba0a3d5b64da2",
      "parents": [
        "59586eeb1064c055d80b7c10976848ebf3edbc21"
      ],
      "author": {
        "name": "Zhang Juntao",
        "email": "zhangjuntao@apache.org",
        "time": "Sun Jan 25 12:41:37 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jan 25 17:41:37 2026 +1300"
      },
      "message": "Fix .htaccess to enable hCaptcha (#810)\n\n"
    }
  ],
  "next": "59586eeb1064c055d80b7c10976848ebf3edbc21"
}
