Repository navigation
feat: publish interactive universe graph - #114
Conversation
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| JavaScript | Oct 3, 2026 1:07p.m. | Review ↗ | |
| Python | Oct 3, 2026 1:07p.m. | Review ↗ | |
| Shell | Oct 3, 2026 1:07p.m. | Review ↗ | |
| SQL | Oct 3, 2026 1:07p.m. | Review ↗ | |
| Secrets | Oct 3, 2026 1:07p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
|
This pull request does not currently match the merge queue conditions, so it cannot be queued from here. The box comes back if it matches again. |
✅MegaLinter analysis: Success
See detailed reports in MegaLinter artifacts MegaLinter is provided by OX Security |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 📝 WalkthroughWalkthrough新增交互式基础设施拓扑页面,展示 TRVNY / TRAVNIE 的仓库、组件、Worker、存储资源和外部系统及其连接。页面支持节点选择、预设筛选、搜索,以及 JSON 和 SVG 下载。现有页面新增指向拓扑页面的链接。页面标注快照日期为 2026-10-03,并说明图中不展示密钥及其值。 Sequence Diagram(s)sequenceDiagram
actor User
participant TopologyPage
participant TopologySVG
participant DetailsPanel
User->>TopologyPage: 选择节点
TopologyPage->>TopologySVG: 突出显示节点及其直接连接
TopologyPage->>DetailsPanel: 显示节点详情
Priority: ➖ Normal Change: Feature Merge Risk: 🔵 Low · up to The new infrastructure map page is mostly usable, but screen-reader users may not be able to reach the node buttons. Highlight state can also look inconsistent after filtering. These are small fixes that can be made before or shortly after merge. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches✨ Simplify code
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 小兔点开拓扑图, Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
5dbede37-fd61-4813-992b-ff6c1914cafd
📒 Files selected for processing (2)
site/teksty/githubowa-kraina/index.htmlsite/teksty/githubowa-kraina/universe.html
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
|
|
||
| <div class="layout"> | ||
| <div class="canvas"> | ||
| <svg id="graph" viewBox="0 0 1330 930" role="img" aria-label="Interactive graph of TRVNY and TRAVNIE repositories and infrastructure"> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
不要将可交互的图谱声明为单张图片。
role="img" 会使 SVG 的子元素成为呈现性内容。节点虽然设置了 role="button" 和键盘处理器,但部分浏览器的辅助技术无法识别这些节点按钮。请为图谱使用允许交互子元素的容器角色,并保留节点的名称和按钮角色。(w3.org)
| function select(id){ | ||
| const n=byId.get(id), keep=new Set([id,...neighbors.get(id)]); | ||
| document.querySelectorAll(".node").forEach(el=>{el.classList.toggle("active",el.dataset.id===id);el.classList.toggle("dim",!keep.has(el.dataset.id))}); |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
再次选择同一节点时恢复总览。
select(id) 每次都会激活节点,因此再次点击或按 Enter、空格选择同一节点时,视图不会重置。详情面板却明确提示这一操作可以重置。请记录当前选择,并在重复选择时调用 reset()。
| document.querySelectorAll("[data-preset]").forEach(b=>b.classList.toggle("active",b.dataset.preset===tag)); | ||
| if(tag==="all"){reset();return} | ||
| const keep=new Set(nodes.filter(n=>n.tags.includes(tag)).map(n=>n.id)); | ||
| document.querySelectorAll(".node").forEach(el=>el.classList.toggle("dim",!keep.has(el.dataset.id))); | ||
| document.querySelectorAll(".edge").forEach(el=>el.classList.toggle("dim",!(keep.has(el.dataset.a)&&keep.has(el.dataset.b)))); |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
切换筛选方式时清除旧的选中状态。
选择节点后,切换到非 all 预设只更新 .dim,不会移除原节点和边的 .active。搜索处理器也保留这些 .active 类。结果是新筛选结果仍显示上一次选择的高亮。请在应用预设或搜索结果前清除选中状态,再计算当前筛选的样式。
🧰 Tools
🪛 ast-grep (0.45.3)
[warning] 205-205: Avoid assigning untrusted data to innerHTML/outerHTML or document.write
Context: details.innerHTML='Preset
'+escapeHtml(tag[0].toUpperCase()+tag.slice(1))+'
'+keep.size+' nodes in this operational slice.
Note: [CWE-79] Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting').
(inner-outer-html)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5575e6ebbb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,229 @@ | |||
| <!doctype html> | |||
| <html lang="en"> | |||
There was a problem hiding this comment.
Preserve the English language declaration in production
This declaration is overwritten for every deployed HTML response by functions/_middleware.js:292-295, while the response header is also forced to content-language: pl at line 331. Consequently, this English-only page is exposed as Polish to screen readers and language-aware translation/indexing tools; exempt this route from the global override or make the middleware preserve the document language.
Useful? React with 👍 / 👎.
|
|
||
| <div class="layout"> | ||
| <div class="canvas"> | ||
| <svg id="graph" viewBox="0 0 1330 930" role="img" aria-label="Interactive graph of TRVNY and TRAVNIE repositories and infrastructure"> |
There was a problem hiding this comment.
Expose the interactive nodes to assistive technology
Giving the containing SVG role="img" makes its descendants presentational in the accessibility tree, so the focusable role="button" nodes created at line 176 are not exposed as individual controls to screen-reader users. Use a non-image container role for this interactive graph, or provide an equivalent accessible control list outside the image.
Useful? React with 👍 / 👎.
| function select(id){ | ||
| const n=byId.get(id), keep=new Set([id,...neighbors.get(id)]); | ||
| document.querySelectorAll(".node").forEach(el=>{el.classList.toggle("active",el.dataset.id===id);el.classList.toggle("dim",!keep.has(el.dataset.id))}); |
There was a problem hiding this comment.
Track and clear the selected graph node
The selection handler never reads or updates the declared selectedId, so selecting the same node always reapplies the neighborhood instead of performing the reset promised in the details panel. The same missing state cleanup leaves the old node and edges with their active styling when a non-all preset or a nonempty search is applied, producing stale highlights alongside the new filter details; toggle the current ID here and clear it when changing modes.
Useful? React with 👍 / 👎.
🐤 Kanarek · 🟣 merged
Frontend · 2 files |
Publishes the interactive TRVNY/TRAVNIE infrastructure map inside the existing GitHubowa Kraina atlas and links it from the atlas landing page.
The graph covers repositories, repo components, Cloudflare Workers/Pages, service bindings, D1/KV/R2/Queues/Durable Objects, and key external systems. It includes search, operational presets, node tracing, and JSON/SVG downloads.
Snapshot verified against GitHub and Cloudflare on 2026-10-03. Secret values are excluded.
Co-authored-by: GPTomek <314538226+gptomek[bot]@users.noreply.github.com>
Summary by CodeRabbit