GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — docs: redistribute tutorials and rename top-level sidebar sections by coder[bot] · Pull Request #31647 · coder/coder

Conversation

@coder

@coder coder Bot commented Nov 2, 2026 •
edited by nickvigilante
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Note

Generated by Coder Agents. The branch and this description were written by an AI agent and need human review.

Summary

Third of three stacked PRs for the docs IA overhaul (Proposal 1, sections 1 and 4). This PR dissolves Tutorials and finishes the top-level nav.

  • Tutorials redistribution. Every remaining docs/tutorials/ page moves to the section it belongs to (git mv, table below). The tutorials/index.md and tutorials/best-practices/index.md hub pages are deleted, so docs/tutorials/ no longer exists. That matters for the folder-driven beta renderer: no stray "Tutorials" group is left. example-guide.md was already deleted on main in docs: delete unlisted tutorial example guide #30711.
  • Duplicate Tutorials entries are dropped. Each of these pages stays in the sidebar at its real location: Quickstart, Image management, JFrog Artifactory, Island browser integration, Deploy Coder on Azure with an Application Gateway, Pre-install JetBrains IDEs, and JetBrains IDEs air-gapped. Scale Coder was also a duplicate, already listed under Install > Validate > Scale testing, and it stays there.
  • Istio (admin/integrations/istio.md) gets its sidebar entry under Administration > Integrations, after Island. Before this PR, only Tutorials linked to it.
  • Nav renames.
    • About becomes Home, with no children; about.yml is renamed home.yml. A third commit, docs: title the docs landing page Home, changes the docs/README.md front matter title from About to Home and deletes the stale HTML comment that said the first section must be titled About.
    • Quickstart becomes Get started.
    • User guides becomes Workspaces.
    • Support (with Support bundle) becomes a top-level section and goes last; about/support.yml moves to support.yml.
  • Screenshots. Nothing to do here: docs: remove about/screenshots page #31465 already deleted about/screenshots.md on main and added its redirect.
  • Final top-level order: Home, Get started, Install, Templates, Workspaces, Coder Agents, AI Governance, Agent Relay, MCP server, Administration, Reference, Support.
  • Commit 2, chore: point in-product docs links at the new docs paths, makes two edits outside docs/. You can drop it.
    • README.md: the docs/about#why-coder link now points to docs#why-coder.
    • cli/server.go: the built-in PostgreSQL error message now links to install/server/external-database.
  • The last commit, fix: keep docs links healthy before the release, reverts both of those back to the URLs that are live today (https://coder.com/docs/about#why-coder and https://coder.com/docs/tutorials/external-database). Both are hardcoded, unversioned https://coder.com/docs/... URLs, and the new paths 404 on the live site until a release that includes this stack becomes the default. See "Post-release follow-up". No hand-written page in this PR's moves had an absolute coder.com/docs link to a moved page, so docs/ needed no changes. Net, this PR changes nothing outside docs/.

Stack: docs/ia-ai-sections (with Templates squash-merged in #31646) → this PR → docs/ia-workspaces-folder (folder rename).

Refs: Linear DOCS-1154, DOCS-1179.

Move map

Old New Sidebar position
tutorials/configuring-okta.md admin/users/oidc-auth/configuring-okta.md Administration > Users > OpenID Connect (last)
tutorials/best-practices/organizations.md admin/users/organizations-best-practices.md Administration > Users, after Organizations
tutorials/best-practices/security-best-practices.md admin/security/security-best-practices.md Administration > Security (last)
tutorials/reverse-proxy-apache.md admin/networking/reverse-proxy-apache.md Administration > Networking, before Troubleshooting
tutorials/reverse-proxy-caddy.md admin/networking/reverse-proxy-caddy.md same
tutorials/reverse-proxy-nginx.md admin/networking/reverse-proxy-nginx.md same
tutorials/gcp-to-aws.md install/operate/gcp-to-aws.md Install > Operate, before Uninstall
tutorials/azure-federation.md install/operate/azure-federation.md same
tutorials/image-pull-secret.md install/operate/image-pull-secret.md same
tutorials/postgres-ssl.md install/server/postgres-ssl.md Install > Install the control plane (last)
tutorials/external-database.md install/server/external-database.md same (deviation, see below)
tutorials/best-practices/scale-coder.md install/validate/scale-coder.md unchanged: Install > Validate > Scale testing
tutorials/faqs.md reference/faqs.md Reference (last)
tutorials/persistent-shared-workspaces.md user-guides/persistent-shared-workspaces.md Workspaces, after Shared workspaces
tutorials/cloning-git-repositories.md user-guides/cloning-git-repositories.md Workspaces (end)
tutorials/best-practices/speed-up-templates.md user-guides/speed-up-templates.md Workspaces (end)
tutorials/index.md deleted
tutorials/best-practices/index.md deleted

All paths are relative to docs/. Every relative link and image path is fixed, in moved pages and in pages that link to them, including the github.com/coder/coder/edit/main/docs/... link in the FAQ page and the link to the build timeline in templates/extending-templates/script-ordering.md, which is new on main.

Redirects added

Source Destination
/docs/tutorials/azure-federation /docs/install/operate/azure-federation
/docs/tutorials/best-practices/organizations /docs/admin/users/organizations-best-practices
/docs/tutorials/best-practices/scale-coder /docs/install/validate/scale-coder
/docs/tutorials/best-practices/security-best-practices /docs/admin/security/security-best-practices
/docs/tutorials/best-practices/speed-up-templates /docs/user-guides/speed-up-templates
/docs/tutorials/cloning-git-repositories /docs/user-guides/cloning-git-repositories
/docs/tutorials/configuring-okta /docs/admin/users/oidc-auth/configuring-okta
/docs/tutorials/external-database /docs/install/server/external-database
/docs/tutorials/faqs /docs/reference/faqs
/docs/tutorials/gcp-to-aws /docs/install/operate/gcp-to-aws
/docs/tutorials/image-pull-secret /docs/install/operate/image-pull-secret
/docs/tutorials/persistent-shared-workspaces /docs/user-guides/persistent-shared-workspaces
/docs/tutorials/postgres-ssl /docs/install/server/postgres-ssl
/docs/tutorials/reverse-proxy-apache /docs/admin/networking/reverse-proxy-apache
/docs/tutorials/reverse-proxy-caddy /docs/admin/networking/reverse-proxy-caddy
/docs/tutorials/reverse-proxy-nginx /docs/admin/networking/reverse-proxy-nginx
/docs/tutorials/best-practices /docs (deleted hub, please confirm)
/docs/tutorials /docs (deleted hub, please confirm)
/docs/about /docs

Exact rules are used instead of a /docs/tutorials/:path* wildcard, because the pages went to many different sections. The /docs/about rule stays: classic coder.com adds the /docs/about alias only when the first section is titled About, so after the rename that URL needs the redirect. /docs/about/screenshots → /docs is already on main (#31465), so this PR doesn't add it.

coder.com and router static redirects: a chain simulation of coder.com's and the router's static rules together with this branch's docs/redirects.json finds no loops or hidden pages from this PR. The static /docs/tutorials/... and /docs/about rules there still work; some now take two redirects. The only loops in the stack come from the Templates move; see #31645, coder/coder.com#1201, and coder/docs-engine#304.

Deviations from the proposal

  • external-database.md goes to install/server/, not templates/. The page covers the control plane's PostgreSQL database, so it sits next to postgres-ssl.md.
  • Dead links to the Tutorials hub.
    • admin/index.md linked to "Tutorials and FAQs"; it now links to the FAQs only.
    • The style guide's link-wording examples in docs/.style/style-guide/word-choice.md linked "Quickstart" to tutorials/index.md; they now link to get-started/index.md.
  • Support icon. Top-level sections have icons, so Support gets info.svg.
  • Home title. Titling the first section Home was checked against both renderers. Classic coder.com renders /docs from its own landing component, and docs-engine maps README.md to the root page and already titles it Home. docs/README.md stays in place, because classic serves /docs.md from it and docs-preview references it. Its front matter title is now Home, and the warning comment about the About title is gone.
  • Other page titles not changed. Only the sidebar titles changed. The front matter titles of get-started/index.md and user-guides/index.md stay as they are.
  • Proposal page count. The proposal expected 469 pages, measured against an older main. Current main already differs, so I report counts below instead of matching that number.

Open questions for Nick

  1. Confirm the redirect targets for the two deleted hubs (both /docs).
  2. speed-up-templates.md lands in Workspaces, as the proposal says, but it is mostly about template build performance. Should it go to Templates instead?
  3. Confirm external-database.md under Install (see PR B).
  4. The sidebar sources still live under docs/manifest/, mirroring the new folders (home.yml, support.yml, and so on). Moving them next to the Markdown files is the follow-up PR waiting on the naming decision (DOCS-1154).

Post-release follow-up

After a release that includes this stack becomes the default docs version on coder.com, point these hardcoded URLs at the new paths. They work today and redirect after the release.

Current (old) URL Post-release URL Files
https://coder.com/docs/about#why-coder https://coder.com/docs#why-coder README.md
https://coder.com/docs/tutorials/external-database https://coder.com/docs/install/server/external-database cli/server.go (built-in PostgreSQL error message)

Validation run

  • make gen/docs-manifest: clean diff afterward.
  • make lint/docs-manifest, lint/docs-redirects (-base docs/ia-templates: 34 rules OK), lint/docs-html, lint/emdash: pass.
  • pnpm check-docs (markdownlint + table formatter): pass.
  • Vale over docs/: the same 12 warnings and 1 error as main, all pre-existing (suggestions: 645, the same as PRs A and B).
  • Local relative-link check over docs/**/*.md: 0 unresolved.
  • Pre-commit hook: make pre-commit-light on both docs commits, and the full make pre-commit on the chore commit. make gen left a clean tree.
  • After the Home title commit, the full docs lint set above was re-run and passed again (34 redirect rules OK, 0 unresolved links). Vale on docs/README.md shows only its pre-existing alert.
  • Restacked on the rebased docs/ia-ai-sections (on main at ccf5ec74ae). After the restack, make gen/docs-manifest (clean), lint/docs-manifest, lint/docs-redirects (34 rules OK), lint/docs-html, lint/emdash, pnpm check-docs, and the relative-link and anchor check over the changed pages pass.
  • Link health (fix commit):
    • linkspector 0.5.6 with .github/.linkspector.yml over all of docs/, like the weekly docs job, run locally.
    • origin/main: 0 errors. This branch before the fix (5fe2b627df, on the pre-fix docs/ia-ai-sections): the same 6 https://coder.com/docs/<new path> 404s as docs: promote the AI sections and Templates to the top level of the sidebar #31645, plus a transient Red Hat URL failure in install/server/openshift.md. That URL is unchanged from main, and it passed on reruns. After rebasing onto the fixed docs/ia-ai-sections and adding this fix (c664641e1e): 0 errors. Nothing is new compared with main.
    • After the fix: make gen/docs-manifest (clean), lint/docs-manifest, lint/docs-redirects (34 rules OK against docs/ia-ai-sections), lint/docs-html, lint/emdash, pnpm check-docs, and the relative-link check (0 unresolved) pass. The full make pre-commit passed on the commit.
  • Page counts across the stack:
main after A after B after C
docs/**/*.md (excl. .style) 490 487 487 485
manifest.json routes 495 492 492 482

The 10 routes removed in C are the 2 Tutorials hubs, 7 duplicate Tutorials entries, and the duplicate Scale Coder entry. The Istio entry moved, so it nets to zero.

  • Skipped: the docs-engine sync check, which was not available in this environment.
Implementation notes
  • Rebuilt on the new docs/ia-templates, which is based on main at 9839406ff7 (2026-11-02). After docs: promote Templates to a top-level sidebar section #31646 squash-merged PR B into docs/ia-ai-sections, this branch was rebased onto it with git rebase --onto; the tree didn't change. It was rebased again onto docs/ia-ai-sections after docs: promote the AI sections and Templates to the top level of the sidebar #31645's link-health fix commit (def074caab), which applied cleanly.
  • Restacked on 2026-11-03 onto docs/ia-ai-sections at 4c356c6314, after docs: promote the AI sections and Templates to the top level of the sidebar #31645 was rebased onto main at ccf5ec74ae. The restack applied cleanly. Folded into the docs commit: the links between shared-workspaces.md and persistent-shared-workspaces.md that main added in docs: explain git identity and credentials in shared workspaces #31152 now resolve from the moved page. git range-diff against the previous head (c664641e1e) shows only those changes and the sidebar entry main added for Bring your own MCP servers.
  • The same one-shot move script as PRs A and B did the move and link pass from a clean tree. Run on the old base, it reproduced the old commit except for the three hand edits listed under Deviations (dead Tutorials hub links), which were reapplied by hand.
  • The sidebar changes were applied with a three-way merge of each YAML file from the earlier version of this branch onto the current files, so entries added on main since then (for example Nix(OS) under Integrations) stay in place.
  • Changes from the earlier version of this branch: the Screenshots page and its redirect are gone from this PR, because docs: remove about/screenshots page #31465 did both on main. admin/index.md was reworded on main, and the Tutorials hub link was removed from the new wording. One more page link is fixed (script-ordering.md).
CI flake on 70232dbbfb

The fmt job failed because GitHub canceled the step on the Depot runner, before any formatting ran. A rerun of the failed jobs passed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@coder coder Bot assigned nickvigilante Nov 2, 2026
@github-actions github-actions Bot added the community Pull Requests and issues created by the community. label Nov 2, 2026
@coder
coder Bot requested a review from nickvigilante November 2, 2026 21:17
Base automatically changed from docs/ia-templates to docs/ia-ai-sections November 2, 2026 21:58
@coder
coder Bot force-pushed the docs/ia-tutorials-nav branch from dd13399 to a92128d Compare November 2, 2026 22:02
@coder coder Bot mentioned this pull request Nov 2, 2026
docs: rename the user-guides folder to workspaces #31650
Merged
@coder
coder Bot force-pushed the docs/ia-tutorials-nav branch from 5fe2b62 to c664641 Compare November 2, 2026 22:24
@coder coder Bot mentioned this pull request Nov 2, 2026
docs: promote the AI sections and Templates to the top level of the sidebar #31645
Merged
@nickvigilante
nickvigilante force-pushed the docs/ia-ai-sections branch from def074c to 8f1e7ee Compare November 3, 2026 18:48
@nickvigilante
nickvigilante requested a review from a team as a code owner November 3, 2026 18:48
@nickvigilante
nickvigilante force-pushed the docs/ia-tutorials-nav branch from c664641 to 70232db Compare November 3, 2026 18:52
@linear-code

linear-code Bot commented Nov 3, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

DOCS-1154

DOCS-1179

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

coder Bot and others added 10 commits November 3, 2026 22:07
@coder @nickvigilante
docs: promote the AI sections to the top level of the sidebar
9f51d52
Dissolve docs/ai-coder into four top-level sections: Coder Agents,
AI Governance (with Agent Firewall and AI Gateway), Agent Relay, and
MCP server. Delete the ai-coder hub, best practices, and IDE agents
pages, and redirect every moved or removed URL.
@coder @nickvigilante
chore: point in-product docs links at the new docs paths
f87658d
@coder @nickvigilante
docs: promote Templates to a top-level sidebar section (#31646)
98377a3
> [!NOTE]
> Generated by Coder Agents. The branch and this description were
written by an AI agent and need human review.

Second of three stacked PRs for the docs IA overhaul (Proposal 1,
section 2). This PR promotes **Templates** out of Administration to a
top-level sidebar section between Install and User guides.

- `docs/admin/templates/**` moves to `docs/templates/**` with `git mv`:
46 files, including pages that are not in the sidebar, such as
`extending-templates/external-auth.md`, and
`extending-templates/script-ordering.md`, which was added to `main`
after the first version of this PR.
- Two of the three tutorials the proposal names still exist on `main`,
and both move into the new section. `template-from-scratch.md` goes
after "Creating templates" and `testing-templates.md` goes before
"Troubleshoot templates". Their Tutorials sidebar entries are removed.
- `docs/manifest/admin/templates.yml` and
`docs/manifest/admin/templates/` move to `docs/manifest/templates.yml`
and `docs/manifest/templates/`. `admin.yml` no longer includes them, and
`index.yml` lists `templates.yml` after `install.yml`. The Script
ordering entry from `main` moves with them.
- Every relative link and image path is fixed, in moved pages and in
pages that link to them. This includes repo-relative links out of
`docs/`, such as `../../../examples/templates`, whose depth changed.
`docs/images/` stays where it is.
- Commit 2, `chore: point in-product docs links at the new docs paths`,
updates docs URLs outside `docs/`, then regenerates the files built from
them with `make gen`. You can drop that commit; the redirects cover the
old URLs.
- Updated sources: `site/` `docs()` links, `cli/cliui` troubleshooting
links, CLI flag help, the `agentFallbackTroubleshootingURL` default, the
prebuilds metric help text, `examples/`, and templatebuilder READMEs.
- Regenerated files: CLI golden files,
`docs/reference/cli/templates/{create,edit}.md`,
`scripts/metricsdocgen/generated_metrics`, and the generated table in
`docs/admin/integrations/prometheus.md`.

Stack: `docs/ia-ai-sections` → **this PR** → `docs/ia-tutorials-nav`.

Refs: Linear DOCS-1154, DOCS-1179.

| Old | New |
| --- | --- |
| `docs/admin/templates/**` (46 files) | `docs/templates/**` |
| `docs/tutorials/template-from-scratch.md` |
`docs/templates/template-from-scratch.md` |
| `docs/tutorials/testing-templates.md` |
`docs/templates/testing-templates.md` |

| Source | Destination |
| --- | --- |
| `/docs/tutorials/template-from-scratch` |
`/docs/templates/template-from-scratch` |
| `/docs/tutorials/testing-templates` |
`/docs/templates/testing-templates` |
| `/docs/admin/templates/:path*` | `/docs/templates/:path*` |

The wildcard also covers `script-ordering`, which is new on `main`.

Updated an existing rule to avoid a chain:
`/docs/admin/templates/extending-templates/dynamic-parameters` now
points to `/docs/templates/extending-templates/parameters`. It stays
above the new wildcard so it still applies first.

**coder.com `redirects.json`:** I could not check it, because the file
is not readable anonymously and the provided credentials cover only
`coder/coder`. Someone with access should look for `/docs` destinations
under `/docs/admin/templates/...` or
`/docs/tutorials/{template-from-scratch,testing-templates}`.

- **`tutorials/external-database.md` is not in this PR.** The proposal
puts it under Templates, but the page is about pointing the Coder
control plane at an external PostgreSQL database, not about templates.
PR C moves it to `install/server/external-database.md`, next to
`postgres-ssl.md`. If you want it under Templates, it's a one-line
change.
- **Manifest position of the two tutorials.** The proposal doesn't say
where they go, so I placed them as described in the Summary.
- **Generated files belong to commit 2.** Commit 1 doesn't edit
generated docs. Those files change only through their sources and `make
gen`, so `lint/docs-gen-filter` stays clean.
- **Left unchanged on purpose:**
- Database migrations, the notification `.golden` files rendered from
them, and the matching `site/src/testHelpers/entities.ts` fixtures still
contain `coder.com/docs/admin/templates/...` URLs. Existing migrations
can't be edited, so those links rely on the wildcard redirect.
- Test fixtures in `scripts/docsredirectscheck`,
`site/scripts/audit-docs-paths.test.mjs`, and
`.github/workflows/test-docs-preview-mapper.sh` are synthetic.
`Tool.stories.tsx` uses `https://coder.com/docs/admin/templates` as a
sample web search result.
- The style guide's "What's next?" example in
`docs/.style/style-guide/word-choice.md` shows a link to
`admin/templates/...` inside a fenced code block. It is sample Markdown,
not a live link.

1. Should `external-database.md` go under Install (as in PR C) or
Templates (as in the proposal)?
2. Templates keeps its `picture.svg` icon. Is that OK at the top level?
3. Frontend review nits on existing code that this PR only touched; I
didn't change them:
- `TemplatesFilter.tsx` has a commented-out `learnMoreLink` to the
`#template-filtering` anchor, which doesn't exist.
- `TemplateAlternatives.tsx` hardcodes a `https://coder.com/docs/...`
URL instead of using `docs()`.
- The `CreateWorkspacePageView` story's `play` function only asserts
link attributes.

- `make gen/docs-manifest`: clean diff afterward.
- `make lint/docs-manifest`, `lint/docs-redirects` (`-base
docs/ia-ai-sections`: 15 rules OK), `lint/docs-html`, `lint/emdash`:
pass.
- `pnpm check-docs` (markdownlint + table formatter): pass.
- Vale over `docs/`: the same 12 warnings and 1 error as `main`, all
pre-existing (suggestions: 645, the same as PR A).
- Local relative-link check over `docs/**/*.md`: 0 unresolved.
- Pre-commit hook: `make pre-commit-light` on the docs commit, and the
full `make pre-commit` on the chore commit. `make gen` left a clean
tree. Targeted tests passed:
- Go: `go test ./cli -run 'TestCommandHelp|TestServerYAMLConfig'`,
`./enterprise/cli -run TestEnterpriseCommandHelp`, `./coderd/render`,
`./cli/cliui`, `./agent/agentscripts`, `./coderd/prebuilds`,
`./enterprise/coderd/prebuilds`.
- Site: Vitest for the touched directories (17 files, 188 tests), and
the `CreateWorkspacePageView` story tests (14 tests).
- Frontend deep review (all 8 roles) on the `site/` diff: no blocking or
should-fix findings, and every new `docs()` path and anchor resolves,
except the pre-existing commented-out anchor in question 3.
- Page counts: `docs/**/*.md` 486 → 486 (moves only); `manifest.json`
routes 491 → 491.
- **Skipped:** the docs-engine sync check, which was not available in
this environment.

<details>
<summary>Implementation notes</summary>

- Rebuilt on the new `docs/ia-ai-sections`, which is based on `main` at
`9839406ff7` (2026-11-02).
- The same one-shot move script as PR A did the move and link pass from
a clean tree. Run on the old base, it reproduced the old commit exactly
(apart from the generated files, which belong to commit 2), so no hand
edits were needed in this PR's docs commit.
- The chore commit uses the same rewrite over the files outside `docs/`
that link to moved pages. Its diff for `site/`, `cli/cliui`, and the
other sources matches the earlier version of this branch line for line.
- Changes from the earlier version of this branch: 1 more page moves
(`extending-templates/script-ordering.md`), with its sidebar entry.
`docs/install/cli.md` no longer exists on `main` (#31513), so its link
fix is gone.

</details>

---------

Co-authored-by: coder[bot] <137810501+coder[bot]@users.noreply.github.com>
@coder @nickvigilante
fix: keep docs links healthy before the release
7b77b38
Turn absolute coder.com/docs URLs to moved pages in hand-written docs
into relative links, and point unversioned coder.com/docs URLs outside
docs/ back at the paths that are live today. The redirects carry them
to the new pages after the release. Regenerate the files built from
them.
@nickvigilante
docs: prefix relative links in the moved pages with ./
5ea4b90
The move script wrote links to targets in or below the page's own folder without a ./ prefix. They resolved, but every other relative link in the docs starts with ./ or ../.
@nickvigilante
docs: keep the coding agent module guidance in the templates docs
4c356c6
Deleting docs/ai-coder/index.md removed the only instructions for installing a terminal-based coding agent in a template with a registry module. Move that guidance to the Reuse template code page, next to the other Coder modules.
@coder @nickvigilante
docs: redistribute tutorials and rename top-level sidebar sections
5a73946
Move every remaining docs/tutorials page into the section it belongs
to and delete the Tutorials and Best practices hub pages. Rename the
About, Quickstart, and User guides sections to Home, Get started, and
Workspaces, and make Support the last top-level section. Redirect every
moved or removed URL.
@coder @nickvigilante
chore: point in-product docs links at the new docs paths
43b757c
@coder @nickvigilante
docs: title the docs landing page Home
44f8541
Match the Home sidebar title in the README front matter and drop the
stale warning that the first section must be titled About.
@coder @nickvigilante
fix: keep docs links healthy before the release
76aed1a
Turn absolute coder.com/docs URLs to moved pages in hand-written docs
into relative links, and point unversioned coder.com/docs URLs outside
docs/ back at the paths that are live today. The redirects carry them
to the new pages after the release. Regenerate the files built from
them.
@nickvigilante
nickvigilante force-pushed the docs/ia-ai-sections branch from 8f1e7ee to 4c356c6 Compare November 3, 2026 22:10
@nickvigilante
nickvigilante force-pushed the docs/ia-tutorials-nav branch from 70232db to 76aed1a Compare November 3, 2026 22:10
nickvigilante added 2 commits November 4, 2026 21:22
@nickvigilante
Merge branch 'main' into docs/ia-ai-sections
d1c4ff0
@nickvigilante
Merge branch 'docs/ia-ai-sections' into docs/ia-tutorials-nav
ba9f517
nickvigilante added a commit that referenced this pull request Nov 4, 2026
@coder @nickvigilante
docs: promote the AI sections and Templates to the top level of the s…
a7f3e3b
…idebar (#31645)

> [!NOTE]
> Generated by Coder Agents. The branch and this description were
written by an AI agent and need human review.

## Summary

First of three stacked PRs for the docs IA overhaul (Proposal 1, section
3). This PR dissolves `docs/ai-coder/` into four top-level sidebar
sections, in this order, where "Run AI coding agents in Coder" used to
be: **Coder Agents**, **AI Governance** (with Agent Firewall and AI
Gateway nested under it), **Agent Relay**, and **MCP server**.

- Files move with `git mv`, so `git log --follow` keeps their history.
The move includes every file in the moved folders, including pages that
are not in the sidebar, such as `agent-firewall/example-policy.md`, and
pages added to `main` after the first version of this PR, such as
`agents/projects.md` (#30684) and `agents/acp-subagents.md` (#31430).
- `docs/ai-coder/index.md`, `best-practices.md`, and `ide-agents.md` are
deleted. Each has a redirect (see below).
- `docs/manifest/` mirrors the new folders: `coder-agents.yml` (+
`coder-agents/`), `ai-governance.yml` (+ `ai-governance/`),
`agent-relay.yml`, and `mcp-server.yml`. `ai-coder.yml` is deleted. The
Projects and ACP subagents entries from `main` move with Coder Agents.
- Every relative link and image path is fixed, both in the moved pages
(their base directory changed) and in pages that link to them. This was
done in one scripted pass from a clean `main` checkout. Every link was
then checked to resolve on disk.
- Commit 2, `chore: point in-product docs links at the new docs paths`,
updates docs URLs outside `docs/`: `site/` `docs()` links, Go error
strings and comments, `README.md`, `server.json`, templatebuilder
modules, and the doc-check skill. Commit 4 reverts the unversioned
`https://coder.com/docs/...` URLs among them (see below), so after this
PR only these differ from `main` outside `docs/`: the `site/` `docs()`
links, the versioned `cli/cliui` troubleshooting links, and repo file
paths in comments and the doc-check skill's examples
(`docs/coder-agents/...`, `docs/templates/...`). You can drop commit 2;
the redirects cover the old URLs.
- **#31646 (Templates) was squash-merged into this branch** as
`98377a3a3b`. This PR now also carries the Templates move
(`docs/admin/templates/**` → `docs/templates/**`, plus
`template-from-scratch.md` and `testing-templates.md`) and its chore
changes. Refer to #31646 for that part's move map, redirects, and
review.
- Commit 4, `fix: keep docs links healthy before the release`, keeps
links working on the live site until a release that includes this stack
becomes the default docs version:
- Hand-written pages that linked to moved pages with absolute
`https://coder.com/docs/...` URLs now use relative links, anchors kept.
The new paths 404 on the live site today, but relative links resolve for
every version and are checked locally.
- Hardcoded, unversioned `https://coder.com/docs/<new path>` URLs
outside `docs/` that the chore commits introduced (Go strings including
the prebuilds metric help, CLI help, the
`agentFallbackTroubleshootingURL` default, `README.md`, `server.json`,
examples, templatebuilder files, and one `site/` constant) go back to
their current paths. Then `make gen` regenerated the generated table in
`docs/admin/integrations/prometheus.md`,
`scripts/metricsdocgen/generated_metrics`, the CLI golden files, and
`docs/reference/cli/templates/{create,edit}.md`. See "Post-release
follow-up".
- The `site/` `docs()` changes and the `cli/cliui` links stay, because
those URLs are versioned (`/docs/@vX.Y.Z/...`) and resolve once the
release ships.
- Commit 5, `docs: prefix relative links in the moved pages with ./`,
adds `./` to 13 relative links that the move script wrote without it, in
`docs/mcp-server.md` and three Templates pages.
They resolved, but every other relative link in the docs starts with
`./` or `../`.
- Commit 6, `docs: keep the coding agent module guidance in the
templates docs`, adds an **AI agent modules** section to
`docs/templates/extending-templates/modules.md`.
Deleting `docs/ai-coder/index.md` removed the only instructions for
adding a terminal coding agent to a template with a registry module.
The example (`registry.coder.com/coder/claude-code/coder`, `version =
"~> 5.2"`) passes `terraform validate`, and the Template Builder labels
it cites match `site/src/pages/TemplateBuilder/ModuleSelectStep.tsx`.

Stack: **this PR** (with #31646 squash-merged in) →
`docs/ia-tutorials-nav` (#31647, Tutorials + nav renames) →
`docs/ia-workspaces-folder` (#31650, folder rename).

Refs: Linear DOCS-1154, DOCS-1179, and DOCS-1479 for the coder.com and
router redirect fix.

## Move map

| Old | New |
| --- | --- |
| `docs/ai-coder/agents/**` (25 files) | `docs/coder-agents/**` |
| `docs/ai-coder/ai-governance.md` | `docs/ai-governance/index.md` |
| `docs/ai-coder/agent-firewall/**` (9 files) |
`docs/ai-governance/agent-firewall/**` |
| `docs/ai-coder/ai-gateway/**` (26 files) |
`docs/ai-governance/ai-gateway/**` |
| `docs/ai-coder/agent-relay/**` (3 files) | `docs/agent-relay/**` |
| `docs/ai-coder/mcp-server.md` | `docs/mcp-server.md` |
| `docs/ai-coder/index.md` | deleted |
| `docs/ai-coder/best-practices.md` | deleted |
| `docs/ai-coder/ide-agents.md` | deleted |

## Redirects added

Appended to `docs/redirects.json`, using the absolute `/docs/...` format
that `main` validates today. Wildcards cover every page under each moved
folder, including pages that are not in the sidebar and the pages added
to `main` since the first version of this PR.

| Source | Destination |
| --- | --- |
| `/docs/ai-coder` | `/docs/coder-agents` (deleted hub, **please
confirm**) |
| `/docs/ai-coder/best-practices` | `/docs/coder-agents` (deleted,
**please confirm**) |
| `/docs/ai-coder/ide-agents` | `/docs/user-guides/workspace-access`
(deleted, **please confirm**) |
| `/docs/ai-coder/ai-governance` | `/docs/ai-governance` |
| `/docs/ai-coder/mcp-server` | `/docs/mcp-server` |
| `/docs/ai-coder/agents/:path*` | `/docs/coder-agents/:path*` |
| `/docs/ai-coder/agent-firewall/:path*` |
`/docs/ai-governance/agent-firewall/:path*` |
| `/docs/ai-coder/ai-gateway/:path*` |
`/docs/ai-governance/ai-gateway/:path*` |
| `/docs/ai-coder/agent-relay/:path*` | `/docs/agent-relay/:path*` |

None of the 3 existing rules in `docs/redirects.json` points into
`ai-coder/`, so no destinations needed updating.

**coder.com and router static redirects.**
coder.com applies its own `redirects.json` and the rules it generates
from this file before it hands `/docs` to the docs-engine router, which
applies its own static `redirects.json` before the page.
Three older static rules in both repos send `/docs/templates`,
`/docs/templates/open-in-coder`, and `/docs/templates/troubleshooting`
to `/docs/admin/templates/...`, and the `/docs/admin/templates/:path*`
rule here sends them back, so each loops once a release with this layout
is the docs mainline.
A static `/docs/workspaces` rule would also hide the new
`docs/workspaces/index.md` page from #31650.
coder/coder.com#1201 and coder/docs-engine#304 (draft, DOCS-1479) remove
those rules; they must merge when that release becomes the mainline, not
before, because the old-layout mainline still needs them.
A chain simulation of every page and static source on each branch of
this stack finds no other loops or hidden pages.
The `/docs/ai-coder/...` and other legacy rules there still work; some
now take two redirects.

## Deviations from the proposal

- **Glossary "IDE agent" entry.** The proposal says to remove this link
and leave plain text. I pointed it at Access your workspace
(`docs/user-guides/workspace-access/index.md`) instead, the same page
the `ide-agents` redirect uses, because "Refer to IDE agents." with no
link reads as a dead end. The "Coding agent" entry now links to Coder
Agents, as the proposal says.
- **Top-level icons.** The new sections need icons. I chose `wand.svg`
(Coder Agents, the old ai-coder icon), `ai_intelligence.svg` (AI
Governance), `link.svg` (Agent Relay), and `plug.svg` (MCP server).
- **Coding agent module guidance.** Kept on the Reuse template code page
(commit 6) instead of deleted with `docs/ai-coder/index.md`. The
best-practices and IDE-agent pages are deleted as proposed.
- **Order relative to Administration.** In this PR the four sections sit
where `ai-coder` was, after Administration. PR C moves Administration
after MCP server to reach the final order.
- **`docs/mcp-server.md` repo link.** A relative link to
`codersdk/toolsdk/toolsdk.go`, outside `docs/`, was re-based for the new
depth.
- **Left unchanged on purpose:**
- Database migrations and the notification `.golden` files rendered from
them still contain `coder.com/docs/ai-coder/...` URLs. Existing
migrations can't be edited, so those links rely on the redirects.
- `aibridge/client/client.go` links to a commit-pinned GitHub permalink,
which still resolves.
- Test fixtures in `scripts/docsredirectscheck` and
`.github/workflows/test-docs-preview-mapper.sh` use `ai-coder` as sample
data.
-
`site/src/pages/AgentsPage/components/ChatElements/tools/Tool.stories.tsx`
uses `https://coder.com/docs/ai-coder/ai-gateway` as a sample web search
result. Changing it would only change a visual snapshot.

## Open questions for Nick

1. Do you agree with the three redirect targets for the deleted pages
above?
2. Should the "IDE agent" glossary entry link to Access your workspace
(current) or be plain text (proposal)?
3. Are the icons for the new top-level sections OK?
4. Open PRs that touch the moved files, checked with `git merge-tree`
against this branch. I didn't change them.
- #31169 merges cleanly: Git's rename detection carries its edit to
`docs/ai-governance/ai-gateway/clients/claude-code.md`, and its new
relative link still resolves at the new path.
- #30262 now targets `tk/ai-gateway-responses-ws-endpoint` and conflicts
with `main` in 21 files. Against this branch it conflicts in the same 21
files, with `codex.md` at its new path, so this PR doesn't add new
conflicts. Its new relative links still resolve after the move.
- #30805 conflicts in `docs/redirects.json`. It already conflicts with
`main` there, because `main` added the `/docs/about/screenshots` and
`/docs/install/cli` rules.

## Release

No backport to `release/2.39` for now; Nick may apply it by hand later.
A cherry-pick of this branch onto `release/2.39` conflicts in 25 files,
and #31647 and #31650 would need the same treatment to keep the stack
together.
coder/coder.com#1201 and coder/docs-engine#304 merge when the first
release line that carries this layout becomes the docs mainline (2.38
today).

## Known limitations

- **CLI newer than its server.** The `cli/cliui` troubleshooting links
append `/templates/troubleshooting#...` to the server's versioned docs
URL.
A CLI from this release against an older server prints
`/docs/@v2.38.x/templates/troubleshooting#...`.
The router's static
`/docs/templates/:page(open-in-coder|troubleshooting)` rule redirects
that to the old page today, but coder/docs-engine#304 removes that rule
to fix the loop, so after the cutover that case gets the version's
not-found page.

## Post-release follow-up

After a release that includes this stack becomes the default docs
version on coder.com, point these hardcoded URLs at the new paths. They
work today and redirect after the release, so nothing breaks in the
meantime. Anchors are unchanged. Rerun `make gen` afterward to update
`docs/admin/integrations/prometheus.md`,
`scripts/metricsdocgen/generated_metrics`, the CLI golden files, and
`docs/reference/cli/templates/{create,edit}.md`.

| Current (old) URL | Post-release URL | Files |
| --- | --- | --- |
| `https://coder.com/docs/ai-coder/agents` |
`https://coder.com/docs/coder-agents` |
`.claude/skills/doc-check/output.md`, `README.md` |
| `https://coder.com/docs/ai-coder/agents/architecture` |
`https://coder.com/docs/coder-agents/architecture` |
`coderd/x/chatd/chattool/execute_test.go`,
`codersdk/toolsdk/workspacetools/execute.go` |
| `https://coder.com/docs/ai-coder/ai-gateway` |
`https://coder.com/docs/ai-governance/ai-gateway` | `README.md`,
`coderd/templatebuilder/modules/claude-code/module.json`,
`coderd/templatebuilder/modules/codex/module.json` |
| `https://coder.com/docs/ai-coder/mcp-server` |
`https://coder.com/docs/mcp-server` | `server.json` |
| `https://coder.com/docs/admin/templates` |
`https://coder.com/docs/templates` | `README.md` |
|
`https://coder.com/docs/admin/templates/extending-templates/docker-in-workspaces`
|
`https://coder.com/docs/templates/extending-templates/docker-in-workspaces`
| `examples/templates/docker-devcontainer/main.tf` |
|
`https://coder.com/docs/admin/templates/extending-templates/parameters`
| `https://coder.com/docs/templates/extending-templates/parameters` |
`examples/parameters-dynamic-options/README.md`,
`examples/parameters/README.md`, `examples/parameters/main.tf`,
`examples/templates/kubernetes-envbox/README.md`,
`examples/workspace-tags/README.md` |
|
`https://coder.com/docs/admin/templates/extending-templates/prebuilt-workspaces`
|
`https://coder.com/docs/templates/extending-templates/prebuilt-workspaces`
| `coderd/prebuilds/api.go`,
`enterprise/coderd/prebuilds/metricscollector.go` (metric help text) |
|
`https://coder.com/docs/admin/templates/extending-templates/workspace-tags`
| `https://coder.com/docs/templates/extending-templates/workspace-tags`
| `examples/workspace-tags/README.md` |
| `https://coder.com/docs/admin/templates/managing-templates` |
`https://coder.com/docs/templates/managing-templates` |
`cli/templatecreate.go`, `cli/templateedit.go` (CLI help) |
|
`https://coder.com/docs/admin/templates/managing-templates/image-management`
| `https://coder.com/docs/templates/managing-templates/image-management`
| `coderd/templatebuilder/bases/docker/README.md`,
`coderd/templatebuilder/bases/kubernetes/README.md` |
| `https://coder.com/docs/admin/templates/troubleshooting` |
`https://coder.com/docs/templates/troubleshooting` |
`agent/agentscripts/agentscripts.go`,
`coderd/render/escape_internal_test.go`, `codersdk/deployment.go`
(`agentFallbackTroubleshootingURL` default) |
| `https://coder.com/docs/tutorials/template-from-scratch` |
`https://coder.com/docs/templates/template-from-scratch` |
`site/src/pages/TemplateBuilder/TemplateAlternatives.tsx` |

## Validation run

- `make gen/docs-manifest`: clean diff afterward.
- `make lint/docs-manifest`, `lint/docs-redirects` (`go run
./scripts/docsredirectscheck -base origin/main`: 15 rules OK, no
removed-route warning), `lint/docs-html`, `lint/emdash`: pass.
- `pnpm check-docs` (markdownlint + table formatter): pass.
- Vale (`vale --no-exit docs/`): the same 12 warnings and 1 error as
`main`, all pre-existing. Suggestions drop from 646 to 645; the one
removed was in the deleted `ide-agents.md`.
- Local relative-link check over `docs/**/*.md`: 0 unresolved links or
images (also 0 on `main`).
- Pre-commit hook: `make pre-commit-light` on the docs commit, and the
full `make pre-commit` (gen, fmt, lint/go, lint/ts, build, and others)
on the chore commit. Both passed.
- Targeted tests:
- Go: `go test ./coderd/x/chatd/chattool/... ./codersdk/toolsdk/...
./coderd/templatebuilder/...`.
- Site: Vitest for the touched directories (107 files, 1879 tests), and
the story tests for `CoderAgentsProductCard`, `GroupSettingsPageView`,
`GatewayKeysPageView`, and `ModelForm` (4 files, 63 tests).
- Every `docs()` path and anchor in the `site/` and Go diff resolves to
a page and heading in this branch.
- Frontend deep review (all 8 roles) on the `site/` diff of PRs A and B:
no blocking or should-fix findings. Nits on existing code that this PR
only touched, not changed here: a single-use `docsLink` constant in
`ChatAccessDeniedAlert.tsx`, and assertion-only `play` functions in the
`GatewayKeysPageView`, `ModelForm`, `CoderAgentsProductCard`, and
`GroupSettingsPageView` stories.
- Page counts: `docs/**/*.md` (excluding `.style`) 490 → 487;
`manifest.json` routes 495 → 492. With #31646 squash-merged in, the
counts don't change, because the Templates move only moves files.
- **Link health (commit 4):**
- linkspector 0.5.6 with `.github/.linkspector.yml` over all of `docs/`,
like the weekly docs job (`umbrelladocs/action-linkspector`, `reporter:
local`, `filter_mode: nofilter`). I ran it locally with Chrome in
`--no-sandbox` mode.
- `origin/main`: 0 errors. Before the fix (`17e54ad555`): 6 errors, all
`https://coder.com/docs/<new path>` 404s (`shared-workspaces.md:19`,
`esr-2.24-2.29-upgrade.md:80-82`, `tasks-to-chats-migration.md:73`,
`prometheus.md:298`). After the fix (`def074caab`): 0 errors. A first
run after the fix also flagged a Red Hat URL in
`install/server/openshift.md`. That URL is unchanged from `main`, and it
passed on a rerun, so the failure was transient.
- After the fix: `make gen/docs-manifest` (clean), `lint/docs-manifest`,
`lint/docs-redirects` (15 rules OK against `origin/main`),
`lint/docs-html`, `lint/emdash`, `pnpm check-docs`, and the
relative-link check (0 unresolved in 3416 links) pass. The full `make
pre-commit`, including `make gen`, passed on the commit.
  - Tests after the fix:
- Go: `go test ./cli -run 'TestCommandHelp|TestServerYAMLConfig'`,
`./enterprise/cli -run TestEnterpriseCommandHelp`, `./coderd/render`,
`./agent/agentscripts`, `./coderd/prebuilds`,
`./enterprise/coderd/prebuilds`, `./coderd/x/chatd/chattool/...`,
`./codersdk/toolsdk/...`, `./coderd/templatebuilder/...`.
    - Site: Vitest for `src/pages/TemplateBuilder` (7 files, 67 tests).
- **After the rebase onto `ccf5ec74ae`** (commits 5 and 6 included):
`make gen/docs-manifest` (clean), `lint/docs-manifest`,
`lint/docs-redirects` (15 rules OK), `lint/docs-html`, `lint/emdash`,
`pnpm check-docs`, and a relative-link and anchor check over the changed
pages pass.
The only unresolved anchor,
`docs/ai-governance/ai-gateway/cost-controls.md` →
`enterprise.md#list-organization-ai-spend-by-user`, is also broken on
`main`.
The pre-commit hook (`make pre-commit-light`, because both new commits
touch only `docs/`) passed on commits 5 and 6. The rebased code commits
rely on CI for Go and TypeScript checks.
- **Redirect chains:** a Node simulation of coder.com's static rules,
its generated rules from this branch's `docs/redirects.json`, the
router's static rules, the page, then this branch's rules on a miss,
over every page and exact static source, reports the 3 loops above and
nothing else new; with coder/coder.com#1201 and coder/docs-engine#304
applied, 0.
- **Skipped:** the docs-engine sync check, which was not available in
this environment.

<details>
<summary>Implementation notes</summary>

- Rebuilt on `main` at `ccf5ec74ae` (2026-11-03) to clear conflicts with
`main`, after an earlier rebase the same day onto `1a963c628d`. The
previous rebuild was on `9839406ff7` (2026-11-02), and the first version
on `9b8d880d63` (2026-10-23).
- Rebase conflicts with #31603, which added `target="_blank"
rel="noreferrer"` to docs links: 4 `site/` files in the chore commit and
5 in the Templates commit. Each kept `main`'s version of the link with
only the docs path changed. Vitest for the 7 affected page directories
(233 tests) and the story tests for the 8 changed or affected stories
(102 tests) pass, and every `docs()` path in `site/src` resolves except
the same 13 that are unresolved on `main`.
- Rebase conflict: `docs/manifest/coder-agents.yml`. `main` added
`docs/ai-coder/agents/bring-your-own-mcp-servers.md`; it moves to
`docs/coder-agents/` with its sidebar entry, and its
`../../user-guides/` links become `../user-guides/`.
- Folded into the Templates commit: a link that `main` added to
`docs/user-guides/workspace-dotfiles.md` (#31606) now points at
`../templates/extending-templates/environment-variables.md`.
- `git range-diff` against `def074caab`, the head before both rebases,
shows only those changes.
- The move script reads every page from the clean `main` checkout and
resolves each relative link (inline, reference-style, and HTML
`src`/`href`) against the page's **old** directory. It maps the target
through the move map and recomputes the link from the page's **new**
directory. It runs once and refuses to run on a dirty `docs/` tree, so
it can't apply the path math twice. It also rewrites absolute
`coder.com/docs/...` and
`github.com/coder/coder/(blob|edit|tree)/main/docs/...` URLs, and skips
fenced code blocks and inline code.
- Before reusing the script, I ran it on the old base and diffed the
result against the old commit. The only differences were the two
hand-edited glossary entries and table padding from the formatter, so
the rebuild applies the same changes to the current `main`.
- Afterward, `grep -r ai-coder docs/` finds matches only in
`docs/redirects.json`.
- Changes from the earlier version of this branch: 2 more pages move
(`agents/projects.md`, `agents/acp-subagents.md`) and their sidebar
entries move with them. The chore commit also updates
`SessionSummaryTable.tsx` (new on `main`) and the doc-check skill's
`output.md` (its examples moved there from `SKILL.md`). The
`AICostControl.tsx` anchor question is gone, because `main` fixed it.

</details>

---------

Co-authored-by: coder[bot] <137810501+coder[bot]@users.noreply.github.com>
Co-authored-by: Nick Vigilante <[email protected]>
Base automatically changed from docs/ia-ai-sections to main November 4, 2026 22:15
@nickvigilante
Merge branch 'main' into docs/ia-tutorials-nav
1f22f5e
nickvigilante
nickvigilante approved these changes Nov 4, 2026
View reviewed changes

@nickvigilante nickvigilante left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after review. Disclosure: this review was generated by Coder Agents on behalf of @nickvigilante.

#31645 was squash-merged, which left this branch conflicting with main. I merged main into the branch (1f22f5ed75) and resolved the conflicts as follows:

  • Kept this PR's side for the moved Tutorials links, including the speed-up-templates links that main added in esr-2.29-2.34-upgrade.md, script-ordering.md and troubleshooting.md.
  • Kept the top-level section order and the tutorials.yml deletion.
  • Kept the Tutorials redirect rules.
  • Regenerated docs/manifest.json.

Checked locally:

  • lint/docs-manifest passes.
  • lint/docs-redirects passes with 34 rules OK, and every redirect destination resolves to a page.
  • lint/docs-html and lint/emdash pass.
  • A relative-link check over docs/ finds no new misses.
  • No docs/tutorials/ pages remain, and the manifest has no duplicate or missing paths.
  • The top-level order is Home, Get started, Install, Templates, Workspaces, Coder Agents, AI Governance, Agent Relay, MCP server, Administration, Reference, Support.
  • The full pre-commit hook passed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@nickvigilante
nickvigilante merged commit f97eee3 into main Nov 4, 2026
28 of 29 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@nickvigilante
nickvigilante deleted the docs/ia-tutorials-nav branch November 4, 2026 22:30
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@nickvigilante nickvigilante nickvigilante approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@nickvigilante nickvigilante

Labels

community Pull Requests and issues created by the community.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@nickvigilante
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.