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 — feat: send RFC 8707 resource parameter on MCP server OAuth2 flows by ibetitsmike · Pull Request #30651 · coder/coder

Conversation

@ibetitsmike

@ibetitsmike ibetitsmike commented Oct 12, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Collaborator

Coder's MCP OAuth2 client never sent the RFC 8707 resource parameter, which the MCP authorization spec requires on authorization and token requests. Authorization servers that enforce it cannot be connected: with Dagster+, discovery and dynamic client registration succeed, then the authorize request fails with "MCP OAuth requests must include resource".

MCP server configs get an oauth2_resource field (migration 000618, admin-only in API responses, audited). Coder sends it on the authorize redirect, the authorization-code exchange, and token refresh. Refresh now goes through clientcredentials with grant_type=refresh_token, because oauth2.Config cannot add parameters to refresh requests; it keeps the same auth-style detection and error types, and adds no dependency.

Auto-discovery fills the field with the most specific Protected Resource Metadata resource that covers the server URL, stored as advertised. As in the MCP SDKs, a resource covers URLs on its origin at or under its path, so /mcp covers /mcp/ but /mcp/ does not cover /mcp. URLs compare in RFC 3986 normal form (default ports, percent-encodings, dot segments, and an empty path as /), ports ignore leading zeros, IPv6 literals compare by address, and %2F stays inside its segment. Unlike the SDKs, a resource with a query, even an empty one, only covers a server URL with the same query. When none covers it, Coder uses the server URL with the scheme and host lowercased and user information and fragment removed, or sends no resource when that is not a valid resource indicator. An explicit value in the create request wins.

Manual configurations send no resource unless an admin sets one, because some providers reject it (Microsoft Entra ID v2 fails with AADSTS901002). Values must be absolute RFC 3986 URIs without a fragment, user information, or an IPv6 zone identifier.

The resource binds grants like the other OAuth settings: changing it deletes stored user tokens, and a callback whose config resource changed after the user started connecting returns 409 before the code is redeemed. The connect step records the resource in a callback-scoped cookie for that check.

Discovery only runs when a configuration is created, so existing auto-discovered configurations, including the Dagster+ one that prompted this, keep an empty resource until an admin sets the new "Resource URL" field or re-creates the server.

MCP server edit form showing the Resource URL field filled by auto-discovery

Testing

  • Go: discovery (most specific match, path and trailing-slash boundaries, query matching including empty queries, equivalent ports, IPv6 literals, escapes, and dot segments including escaped ones, the normalized fallback and an invalid one, explicit override), validation (URI characters, brackets, IP literals, user information, trimming), grant deletion on change, clearing on an auth type change, redaction for members, refresh with and without a resource, the 409 when the resource changes mid-flow (the authorization server never receives the code), and a connect and callback flow against an authorization server that rejects requests without the resource. Each new test was checked to fail when the behavior it covers is broken, except two malformed IP literal hosts that Go's URL parser already rejects.
  • Vitest: the form round-trips the stored value, and clearing the field sends "" on update.
  • Remote UAT through Coder Agents (chat) on a test deployment with loopback MCP and authorization server mocks:
    • Round 1 on 2b87506: literal verdict FAIL. When the resource changed between connect and callback, the callback redeemed the code for the new resource and stored a grant. The 409 binding fixes it.
    • Round 2 on 4b54ffb: PASS. The mid-flow change returned 409 with no token request in every variant (strict and lenient servers, set, cleared, abandoned flows, parallel configs); auto-discovery, connect, refresh, validation, and the docs matched. Minor observations: the binding cookie is an unkeyed digest, so a member who edits their own HttpOnly cookie can redeem a code with the current resource, which a fresh connect also gives them; other settings changed mid-flow still reach the token endpoint, as on main; the 409 popup shows raw JSON; the UI does not warn that a resource change disconnects users; validation toasts omit the server's detail.
    • Round 3 on the final head 2d6abfa: PASS. The head moved during the round, so it ran in four parts, the last on 2d6abfa. That part covered the matching rules (queries including empty ones, default and zero-padded ports, %2F, escaped dot segments, trailing slashes, IPv6 literals), the invalid fallback (stored empty, no resource sent), every validation value through the API and the UI, and the discovery, connect, refresh, and mid-flow 409 flows. The equivalent-encoding cases last ran live on 5c23fe0; unit tests cover them on the final head. Observation: the path-aware metadata URL is built from the decoded path, so /mcp%2Ftenant fetches metadata for /mcp/tenant, as on main.
  • frontend-review and the eight-role coder-frontend-review ran on the site/ diff; every role passes after the label, help text, row layout, API doc wording, and form test fixes. Declined: linking field descriptions with aria-describedby, because the form's shared Field primitive renders every description without one, so it belongs in a change to all fields.

Review record

Review Commit Findings Disposition
Codex round 1 4b54ffb P2: a resource with another query was treated as covering the server URL Reproduced with a failing test, fixed in bf08795, resolved
Codex round 2 bf08795 P2: explicit default ports; P2: %2F treated as a segment boundary; P2: url.Parse accepts spaces and invalid escapes Each reproduced with a failing test, fixed in 16a1d78, resolved
Codex round 3 16a1d78 P1: docs wrapped mid-sentence (DOC1); P2: equivalent percent-encodings compared unequal; P2: brackets accepted outside an IP literal host Fixed in 8d617f0 (the P2s reproduced with failing tests; the same pass also covers the query, dot segment, and user information cases), resolved
Codex round 4 8d617f0 P2: the server URL fallback was not validated; P2: escaped dot segments were compared before decoding Each reproduced with a failing test, fixed in 5c23fe0, resolved
Codex round 5 5c23fe0 P2: an empty query (?) was treated as no query Reproduced with a failing test, fixed in 72c019f, resolved
Codex round 6 72c019f P2: /mcp/ covered /mcp; P2: equivalent IPv6 literals compared unequal; P2: malformed IP literals accepted The first two reproduced with failing tests. Go 1.26.5 url.Parse already rejects the hosts named in the third, but it accepted an IPv6 zone identifier. All fixed in ef2df2c, resolved
Codex round 7 ef2df2c P2: leading zeros in a port made equal origins differ Reproduced with a failing test, fixed in 2d6abfa, resolved
Codex round 8 2d6abfa None: "Didn't find any major issues" Clean verdict on the current head

Xum opened this PR on behalf of @ibetitsmike.

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
ibetitsmike added 9 commits October 12, 2026 11:23
@ibetitsmike
feat: send RFC 8707 resource parameter on MCP server OAuth2 flows
2b87506
Store an oauth2_resource indicator on MCP server configs. Auto-discovery
fills it from the Protected Resource Metadata entry that covers the
server URL (else the canonical server URL); admins can set or clear it.
When set, Coder sends it as the resource parameter on authorization,
code exchange, and refresh requests. Manual configs without it send no
resource parameter, so providers that reject it keep working.
@ibetitsmike
refactor(coderd): reuse parsed resource indicator in MCP OAuth2 disco…
8d02836
…very
@ibetitsmike
test(coderd): tighten MCP OAuth2 resource indicator coverage
f451686
Assert invalid resources are rejected before auto-discovery, cover
clearing on every non-oauth2 auth type, check whitespace trimming on
update, and restore the bodyclose directive on TestMCPServerOAuth2PKCE.
@ibetitsmike
fix(coderd): reject MCP OAuth2 callbacks whose resource changed since…
b23e377
… connect

RFC 8707 binds an authorization code to the resource named in the
authorization request. Record that resource in a callback-scoped cookie at
connect, and fail the callback with the existing 409 before the code
exchange when an admin changed oauth2_resource in between, so the code is
never redeemed for a resource the user did not authorize.
@ibetitsmike
fix: align and clarify the MCP OAuth2 resource field
b1bf4af
Label the form input "Resource URL" like its sibling endpoint fields, say
that an empty value sends no resource parameter, and match the sibling row
grid so the field lines up with the column above. Describe the API field's
discovery and clear semantics precisely, and cover clearing a stored
resource from the edit form.
@ibetitsmike
docs: note MCP OAuth2 reconnects and the resource fallback form
45ff791
Say which OAuth2 settings delete stored user tokens, and describe the
normalized server URL that discovery stores when no Protected Resource
Metadata entry matches.
@ibetitsmike
fix: scope the MCP OAuth2 resource help text to auto-discovery
50ecadf
An empty resource sends none unless auto-discovery fills it while
registering the client, so say that instead of promising none. Shorten the
create request doc to match, drop a class that has no effect on the
single-field row, and use an example.com resource in the form test.
@ibetitsmike
test(site/src/pages/AISettingsPage/MCPServersPage): prefix the OAuth2…
9094880
… resource form fixture
@ibetitsmike
chore: merge origin/main and renumber the MCP OAuth2 resource migration
4b54ffb
Main added migration 000617 (connection_logs_method_app_name), so the MCP
server oauth2_resource migration moves to 000618. Generated files match a
fresh make gen on the merged tree.
@linear-code

linear-code Bot commented Oct 12, 2026

Copy link
Copy Markdown

CODAGT-1388

All reactions

Sorry, something went wrong.

Uh oh!

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

@github-actions github-actions Bot assigned ibetitsmike Oct 12, 2026
@github-actions

github-actions Bot commented Oct 12, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

Docs preview

Check off each page once it's been reviewed. If a page changes in a later push, its checkbox clears automatically so it gets a fresh look. Pages not yet wired into the docs navigation aren't listed here.

  • docs/admin/security/audit-logs.md
  • docs/ai-coder/agents/platform-controls/mcp-servers.md
All reactions

Sorry, something went wrong.

Uh oh!

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

@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-12T20:55:04.522548Z 2d6abfa Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b54ffb5f9

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix(coderd): match query components when selecting the MCP OAuth2 res…
bf08795
…ource

A Protected Resource Metadata resource with a query no longer covers a
server URL with a different query, and at equal path length a resource
with the server's query beats one without a query. A resource without a
query still covers server URLs with any query.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf0879560c

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix(coderd): tighten MCP OAuth2 resource matching and validation
16a1d78
Resource origins now compare with an omitted port treated as the
scheme's default, and paths compare in escaped form so "%2F" does not
end a segment. Resource values must contain only RFC 3986 characters
and valid percent escapes, because url.Parse accepts spaces and invalid
escapes in the query.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 16a1d783fa

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread docs/ai-coder/agents/platform-controls/mcp-servers.md Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix: normalize MCP OAuth2 resource URIs before matching
8d617f0
Paths and queries compare after RFC 3986 normalization: escapes of
unreserved characters are decoded, the hex digits of other escapes are
uppercased, and dot segments are removed, while "%2F" stays inside its
segment. Validation also rejects "[" and "]" outside an IP literal host,
and user information, which url.Parse accepts. The MCP servers docs keep
one sentence per source line in the OAuth2 section.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8d617f0528

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix(coderd): validate the MCP OAuth2 fallback resource and decode esc…
5c23fe0
…aped dot segments

Auto-discovery now validates the server URL fallback like any other
resource indicator and stores no resource when it is invalid, so a
server URL such as https://mcp.example.com/a[b] no longer yields an
RFC 3986-invalid indicator.

Resource paths normalize percent-encodings before removing dot
segments, so an advertised /a/%2E%2E/mcp covers the server URL /mcp.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5c23fe00dc

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix(coderd): treat an empty query as a query when matching MCP OAuth2…
72c019f
… resources

An advertised resource ending in "?" has an empty query, which RFC 3986
distinguishes from no query. It no longer covers server URLs with
another query or with no query.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 72c019ff5e

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix: match MCP OAuth2 resources at path boundaries and by IP address
ef2df2c
An advertised resource with a trailing slash no longer covers the same
path without one, as in the MCP SDKs, and an empty path after an
authority equals "/". Origins compare IP literals by address, so
[::1] matches [0:0:0:0:0:0:0:1]. Resource indicators with an IPv6
zone identifier are rejected, since RFC 3986 IP literals have none.

The docs now say the resource must not contain user information,
which validation already rejects.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Oct 12, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ef2df2c4e7

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/mcp.go Resolved

Uh oh!

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

@ibetitsmike
fix(coderd): ignore leading zeros in MCP OAuth2 resource origin ports
2d6abfa
RFC 9110 section 4.3.1 removes leading zeros from an origin's port, so
a server URL on port 0443 now matches an advertised resource on the
default HTTPS port.
@ibetitsmike

ibetitsmike commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 2d6abfac49

ℹ️ 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".

All reactions

Sorry, something went wrong.

Uh oh!

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

@ibetitsmike
ibetitsmike marked this pull request as ready for review October 12, 2026 20:50
@ibetitsmike
ibetitsmike requested a review from nickvigilante as a code owner October 12, 2026 20:50
@pr-queue-manager
pr-queue-manager Bot requested a review from ThomasK33 October 12, 2026 20:51
ThomasK33
ThomasK33 approved these changes Oct 13, 2026
View reviewed changes
@ibetitsmike
ibetitsmike merged commit fa7cd62 into main Oct 13, 2026
50 checks passed

Uh oh!

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

@ibetitsmike
ibetitsmike deleted the mike/codagt-1388-mcp-oauth2-resource branch October 13, 2026 21:03
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@chatgpt-codex-connector chatgpt-codex-connector[bot] chatgpt-codex-connector[bot] left review comments
@ThomasK33 ThomasK33 ThomasK33 approved these changes
@nickvigilante nickvigilante Awaiting requested review from nickvigilante

Uh oh!

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

Assignees

@ibetitsmike ibetitsmike

Labels

None yet

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.

2 participants

@ibetitsmike @ThomasK33
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 01402503 — 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.