Skip to content

docs(changelog): repoint the eight links ADR-0130's package move left dead - #2033

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-2030-changelog-dead-links
Oct 9, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-2030-changelog-dead-links

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #2030
Clause-②: no

What was wrong, measured at the door

Link Check concluded failure on every push to main from 36b27dd8 (the ADR-0130 package move, #1910, 2026-09-14T14:07Z) onward — the previous push, 3118ccff, was green — and on every weekly scheduled run since (2026-09-21, 09-28, 10-05). The card measured it from 2026-10-03; the real start is 25 days earlier.

The push run scans every .md file (folder-path: '.', check-modified-files-only: no). It was reproduced locally with the workflow's own tool before anything changed: gaurav-nelson/github-action-markdown-link-check@v1 (tag peels to 5c5dfc0, which installs markdown-link-check@3.8.7), the same find . -name '*.md' -not -path './node_modules/*' -exec markdown-link-check {} --config .github/markdown-link-check-config.json -q ';' over a git archive of 08cfa209 (932 files = 932 tracked, 120 .md):

FILE: ./CHANGELOG.md
46 links checked.
ERROR: 8 dead links found!
[✖] src/objects/opportunity.hook.ts → Status: 400
[✖] src/objects/quote.hook.ts → Status: 400
[✖] src/dashboards/executive.dashboard.ts → Status: 400
[✖] src/dashboards/crm.dashboard.ts → Status: 400
[✖] src/dashboards/sales.dashboard.ts → Status: 400
[✖] src/dashboards/service.dashboard.ts → Status: 400
[✖] src/flows/opportunity-approval.flow.ts → Status: 400
[✖] src/sharing/account.sharing.ts → Status: 400

One ERROR: block across all 120 files, and it is byte-for-byte the block in CI job 113435449891 (run 37813318528, main 08cfa209), whose scanned-file list is the same 120 files.

Proxy refusals told apart from dead links. The container's egress proxy answers 403 to CONNECT for 9 hosts these files link (keepachangelog.com, semver.org, docs.objectstack.ai, objectstack.ai, cloud.objectos.app, fumadocs.dev, nextjs.org, www.conventionalcommits.org, img.shields.io), and answers its own "GitHub access to this repository is not enabled for this session" 403 for two GitHub repos (changesets/changesets, fuma-nama/fumadocs). Those are refusals, not verdicts: locally they are NOT MEASURED, and CI's log above — open network, same commit — passes every one of them. Everything the proxy does reach was checked by the tool itself (37 github.com URLs, all 200).

The change, and why it is the minimal one

All eight targets still exist; git log --follow shows each is a pure rename in 36b27dd8 (R100; quote.hook.ts R099). So each link target now names the file's package home, and nothing else in the release history moves:

old target current path
src/objects/opportunity.hook.ts src/sales/objects/opportunity.hook.ts
src/objects/quote.hook.ts src/revenue/objects/quote.hook.ts
src/dashboards/executive.dashboard.ts (3 links) src/sales/dashboards/executive.dashboard.ts
src/dashboards/crm.dashboard.ts (3 links) src/sales/dashboards/crm.dashboard.ts
src/dashboards/sales.dashboard.ts src/sales/dashboards/sales.dashboard.ts
src/dashboards/service.dashboard.ts src/service/dashboards/service.dashboard.ts
src/flows/opportunity-approval.flow.ts src/sales/flows/opportunity-approval.flow.ts
src/sharing/account.sharing.ts src/sales/sharing/account.sharing.ts
  • 12 link targets (8 distinct), all in the closed pre-3.0.0 section. Proof that only targets changed: with every ](…) target masked, HEAD~1 and HEAD hash identically (97cca8ec…), and the byte delta (+76) is exactly the 12 inserted package segments.
  • The words stay as written, including the two link texts that spell the old path (src/flows/opportunity-approval.flow.ts, src/sharing/account.sharing.ts) and the prose code spans naming old paths: that is docs: keep the record, repoint the pointer — the ADR-0130 dead paths in docs/, scripts/ and the root configs #1932's rule — a record keeps where something WAS, a pointer a reader follows must be current. The section's "Nothing is added here" holds: nothing is added.
  • No ignore-list entry and no workflow change: every target is reachable, so the config's ignore list (for links legitimately unreachable from CI) is not the tool for this.
  • Changeset: .changeset/2030-changelog-dead-links.md with empty frontmatter — the package is private, and these lines sit in a section no release reads (publish-marketplace.mjs sends only the published version's own section), so this releases nothing to users (AGENTS.md's exception, on docs: keep the record, repoint the pointer — the ADR-0130 dead paths in docs/, scripts/ and the root configs #1932's precedent).

What pins it

No new test: AGENTS.md rule 3 (no gate farm) and a widened gate is the maintainer's call. The pin is the existing Link Check job: this PR modifies CHANGELOG.md, so this PR's own modified-files run re-reads it, and the next main push re-reads every .md. Measured locally on 5233301e with the same tool: 121 files (the new changeset is the 121st), 0 ERROR: blocks, FILE: ./CHANGELOG.md → 46 links checked., both with the network masked and through the proxy with only the refused targets above masked.

pnpm verify on 5233301e: exit 0 — ✓ Validation passed, typecheck, os lint --strict (18 suggestions, 0 errors), ✓ i18n lint gate: 0, ✓ source hygiene clean, token ratchet all ✓, ✓ Build complete, Test Files 172 passed (172), Tests 3575 passed | 1 skipped (3576).

Acceptance notes


Generated by Claude Code

… dead

Link Check has been red on every push to main since 36b27dd (#1910,
2026-09-14): the push run scans every .md file, and CHANGELOG.md's closed
pre-3.0.0 section still linked eight files at the flat src/<kind>/ paths
the package move renamed. Each target now names the file's package home
(git log --follow: every one is a pure rename in 36b27dd). Only the
link targets change - the record keeps its words, including the two link
texts that spell the old path, per #1932's keep-the-record,
repoint-the-pointer rule.

Claude-Session: https://claude.ai/code/session_012zh91QzFgePbkmuHnugLN3
Co-authored-by: Claude <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
hotcrm Ignored Ignored Oct 9, 2026 8:19am UTC

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

2 participants