Skip to content

fix(ci): exclude CHANGELOG.md from link-check and Prettier race - #143

Merged
dgtalbug merged 12 commits into
mainfrom
fix/ci-release-please-checks
May 31, 2026
Merged

fix(ci): exclude CHANGELOG.md from link-check and Prettier race#143
dgtalbug merged 12 commits into
mainfrom
fix/ci-release-please-checks

Conversation

@dgtalbug

Copy link
Copy Markdown
Owner

Problem

PR #142 (release-please) is blocked by two CI failures caused by the same file: CHANGELOG.md.

link-check — lychee finds a 404 on the compare URL in CHANGELOG.md:

[404] https://github.com/dgtalbug/dextree/compare/v1.16.0...v1.17.0

The tag doesn't exist yet — it's created after the release PR merges. The existing --exclude-path './CHANGELOG.md' arg has no effect because lychee's path matching doesn't resolve the ./ prefix against the glob input correctly.

static-checkspnpm format:check fails on the unformatted CHANGELOG. The release-please-prettier workflow exists to fix this, but it races with static-checks. Both fire simultaneously on the PR push event; static-checks is faster and sees the unfixed file.

Fix

  • _link-check.yml: change --exclude-path './CHANGELOG.md'--exclude-path 'CHANGELOG.md' so lychee actually skips the file.
  • .prettierignore: add CHANGELOG.md so pnpm format:check never touches it. The dedicated release-please-prettier workflow owns formatting that file; excluding it from the general check eliminates the race permanently.

Test plan

  • Merge this PR, then re-run CI on chore(main): release 1.17.0 #142 — both link-check and static-checks should pass
  • Verify a future release-please PR also passes both checks without manual intervention

dgtalbug added 11 commits May 30, 2026 17:39
…onstants

Establish the design-token and layout-constant groundwork for the GraphView
mockup replica (spec 033):

- Add --layer-* and --fw-* custom properties to the nonce-guarded :root block
  in html.ts (the only place global custom properties cascade under the CSP;
  a CSS Module :root would be scoped/hashed).
- Add components/shellLayout.ts with the grid templates the mockup pins
  (SHELL_COLUMNS/ROWS, MERMAID_ROWS/BODY_COLUMNS, TAB_STRIP_HEIGHT,
  WORKSPACES_CARD_MIN_WIDTH) plus co-located tests.
- Add App.module.css scaffolding for the tab strip + 3-column shell grid
  (wired into App.tsx in phase 2).
- Point .specify/feature.json at specs/033-graphview-mockup-replica.

Refs: #133
… shell

Restructure the webview shell to match the mockup (spec 033, US1+US2):

- App.tsx renders an editor-style 4-tab strip (GraphView / Mermaid Preview /
  Trace mode / Workspaces) above every scene. Active tab derives from the
  existing activeScene state — no new state machine, protocol unchanged
  (CC-007). GraphView tab shows the green workspace-loaded dot and appends the
  workspace name once loaded.
- The GraphView scene is wrapped in the 260px/1fr/320px CSS Grid shell
  (App.module.css) with canvas + right-rail columns. Left rail, toolbar, and
  status bar are populated in phase 3.
- Trace tab is disabled at the App level (trace state is owned internally by
  GraphView); the trace-active bridge lands in phase 5.
- 6 new App tests (tab order, active-state reflection, workspace-name label,
  disabled trace tab, tab→scene switching, shell-grid structure). Full
  extension suite: 462 passed, zero regressions.

Refs: #133
…tionality

- Updated INSPECTOR_BADGE_KEYS to include "kind" and "exported".
- Introduced InspectorNeighbor and InspectorNeighbors interfaces for neighbor data.
- Added rendering functions for new badge types in InspectorPanel.
- Implemented NeighborSection component to display related nodes.
- Adjusted PopulatedState to incorporate neighbor data and actions.

feat: improve LensesPanel with mockup structure tests

- Added tests for LensesPanel to verify lens row structure including icon, title, description, and count badge.
- Ensured correct activation state for lens rows.

style: update LensesPanel header title to uppercase

- Changed header title from "Lenses" to "LENSES" for consistency.

style: refactor NodeFilterPanel styles for improved layout

- Updated CSS for NodeFilterPanel to enhance layout and styling.
- Introduced new styles for section headers, actions, and filter rows.

test: enhance NodeFilterPanel tests for new features

- Added tests for section header with All/None links.
- Verified rendering of filter rows with checkbox, codicon, label, and count badge.
- Updated tests to reflect changes in component structure and behavior.

feat: extend GraphViewProps with new workspace actions

- Added onTraceActiveChange, onReindex, onClearWorkspace, onClearAll, onToggleSourceOnly, sourceOnly, and isIndexing props.

style: add edge-kind dot colors to webview CSS

- Introduced new CSS variables for edge colors based on edge types to enhance visual representation in the graph view.
…ustments

- Updated MermaidPreviewPanel to include a toolbar with "Re-render" and "Back to graph" actions.
- Modified export actions to remain visible even when the preview fails, disabling buttons as necessary.
- Added tests for new toolbar functionality and layout to ensure proper rendering order and accessibility.
- Refactored CSS for SearchBar and WorkspaceCard components to improve responsiveness and visual consistency.
- Introduced architecture strip in WorkspaceCard to visualize indexing status, with placeholder for future data.
- Enhanced WorkspacesPage header with actions for re-scanning and opening new workspaces, improving user interaction.
- Added unit tests for new header actions in WorkspacesPage to verify functionality.
- Implemented HTML generation tests to ensure correct linking of stylesheets and scripts in webview.
…fic badges and enhance camera behavior on node selection
… lenses

- Implemented the `entry-points` lens to highlight symbols based on their entry kind.
- Introduced the `architecture` lens to recolour nodes by their architectural layer.
- Updated the LensesPanel to enable both lenses and removed deprecated tooltips.
- Enhanced the GraphView component to support new lens functionalities, including recolouring and dimming logic.
- Added tests for new lens selectors and architecture helpers to ensure correct functionality.
- Updated styles to accommodate new lens features and improve UI consistency.
…sal docs

Mermaid:
- Add clampGranularityToScope so workspace exports never descend to symbol
  level (they fail-closed past the cap on any real repo). Symbol detail is
  gated behind a single-file / single-symbol scope. Legacy serializeToMermaid
  shim opts out via allowUnscopedSymbols to keep byte-identical output.
- Default preview granularity flips symbol -> file. Tests + fuzz oracle updated.

Docs:
- ROADMAP.md status-sync: Phase 2 (017-031) marked done, 032 + 033 added,
  §3.5 gap backlog with lens-v2 + GraphView bug fixes sequenced before S8.
- openspec/changes/graphview-lens-v2 proposal/design/tasks (planning only;
  no lens code in this commit — implementation lands in follow-up commits).
Lens system (entry-points + architecture lenses) shipped in 329add5; archive
the completed change. Its lenses delta spec was synced into the canonical
openspec/specs/lenses (gitignored, local only).
- Added test for opening a file when a search result is selected, ensuring the camera animates correctly.
- Implemented direction-aware edge coloring for CALLS based on node selection, distinguishing between inbound and outbound calls.
- Introduced a LensResultTable component to display ranked results for active lenses, including handling of categorical metrics.
- Updated LensesPanel to include new lens types and adjusted titles for clarity.
- Extracted camera fitting logic into a reusable function for better testability and maintainability.
- Enhanced GraphView to manage lens results and integrate with the new LensResultTable.
- Added tests for LensResultTable to verify rendering and interaction behavior.
@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ed6037e2-f2c6-4d97-aa00-aa37e4990a5c

📥 Commits

Reviewing files that changed from the base of the PR and between c49d31d and e1fed97.

📒 Files selected for processing (2)
  • .github/workflows/_link-check.yml
  • .prettierignore

📝 Walkthrough

Changes:

  • Fixed lychee link-check exclusion pattern for CHANGELOG.md by removing the ./ prefix in --exclude-path argument (now 'CHANGELOG.md' instead of './CHANGELOG.md'), allowing the exclusion to work correctly with lychee's path matching logic.

  • Added CHANGELOG.md to .prettierignore to exclude it from the static-checks formatting validation step, eliminating the race condition where static-checks failed before the release-please-prettier workflow had a chance to format the file.

Risks:

  • The .prettierignore change creates a workflow dependency: proper CHANGELOG.md formatting now relies entirely on the release-please-prettier workflow. If that workflow is disabled, broken, or skipped, CHANGELOG.md could merge to main unformatted.

Deferred Validation:

  • Solution effectiveness depends on re-running CI on PR #142 to confirm both link-check and static-checks pass without blocking.

Walkthrough

Lychee link-check exclusion pattern for CHANGELOG.md is updated from ./CHANGELOG.md to CHANGELOG.md, and CHANGELOG.md is added to .prettierignore with comments explaining the exclusion prevents formatting conflicts with the release-please workflow.

Changes

CHANGELOG tool exclusions

Layer / File(s) Summary
Lychee and Prettier CHANGELOG exclusions
.github/workflows/_link-check.yml, .prettierignore
Lychee link-check --exclude-path argument updated to CHANGELOG.md; CHANGELOG.md added to Prettier ignore list with release-please race-condition explanatory comments.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Suggested labels

area:ci, type:bug

Poem

📋 Two lines guard a CHANGELOG true,
From lychee's sight and Prettier's view—
Release workflows dance without a fight,
No race conditions in the night. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the main change: excluding CHANGELOG.md from both link-check and Prettier to resolve CI race conditions.
Description check ✅ Passed The description is directly related to the changeset, providing clear context on the problem (lychee 404, formatting race), the fix applied, and a test plan.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov-commenter

codecov-commenter commented May 31, 2026

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@dgtalbug
dgtalbug enabled auto-merge (squash) May 31, 2026 12:06
@dgtalbug
dgtalbug disabled auto-merge May 31, 2026 12:07
@dgtalbug
dgtalbug merged commit 216cb42 into main May 31, 2026
13 checks passed
@dgtalbug
dgtalbug deleted the fix/ci-release-please-checks branch May 31, 2026 12:07
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jun 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants