Skip to content

Drop the landing site in favour of internetcomputer.org/icp-mcp; the old page paths redirect permanently - #165

Open
aterga wants to merge 6 commits into
mainfrom
claude/icp-mcp-terms-revision-r5l8mw
Open

Drop the landing site in favour of internetcomputer.org/icp-mcp; the old page paths redirect permanently#165
aterga wants to merge 6 commits into
mainfrom
claude/icp-mcp-terms-revision-r5l8mw

Conversation

@aterga

@aterga aterga commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

The landing page and its /privacy-policy, /support and /terms subpages existed twice: served by this binary from src/assets/, and mirrored in dfinity/internetcomputer-org (public/icp-mcp/, served at internetcomputer.org/icp-mcp/). Two copies of legal pages drift — the mirror already carries text revisions no imcp2 release has shipped — so this PR makes the internetcomputer-org copy the only one:

  1. Commits 1–3 revise the legal text in place — drop the financial-operation vocabulary ("funds"/"non-custodial", "moving tokens, spending cycles…", "loss of tokens, cycles, or other assets") that no longer matches the served surface (Make icp_top_up_canister instructions-only: never execute funding #153, Refuse ledger transfer/approval methods in canister_update_call #154, Serve only the app/canister tools #158), make the user's sole responsibility for authorized actions explicit, and add the app-developer obligation (developers accept the Terms by implementing the service discoverability instructions, and under the Terms must handle personal data reaching them lawfully, under their own privacy policy). That text is what dfinity/internetcomputer-org#75, dfinity/internetcomputer-org#76 and dfinity/internetcomputer-org#77 publish — kept here so the wording history and its review trail exist in this repo too.
  2. Commit 4 then deletes the pages from the server and answers their paths with permanent redirects (308) to the one home: /https://internetcomputer.org/icp-mcp/, and /privacy-policy, /support, /terms → the same names under it (trailing-slash targets, one hop). Every published link keeps working — the directory listings' policy URLs, bookmarks, search results.

Related issues

None. Companion to dfinity/internetcomputer-org#75 (merged), dfinity/internetcomputer-org#76 and dfinity/internetcomputer-org#77, which carry the same page text at the new home — which is what makes the deletion here lossless.

Changes

  • src/assets/index.html, terms.html, privacy-policy.html, support.html — deleted. connect-error.html and favicon.svg stay: they belong to the OAuth connect flow, and the connect/callback screens link /favicon.svg for their tab icon (pinned by tests in src/auth.rs).
  • src/main.rs — the four page routes become landing_redirects_router() (a LANDING_SITE const + 308s); the page constants, __LOGO__ substitution helpers, PUBLIC_PAGES, xml_escape and sitemap_xml are gone. /sitemap.xml is no longer served (a sitemap must list same-origin content, and this origin has none); robots.txt stays to keep crawlers off the machine surface, minus the sitemap reference, so site_metadata_router() no longer needs PUBLIC_URL. /status/ is untouched — the live dashboard is this deployment's own monitoring surface, published by Caddy.
  • Tests — the sitemap and page-content tests are replaced by old_page_paths_redirect_permanently_to_the_landing_site (pins all four absolute targets, so a typo'd LANDING_SITE can't ship a working-looking 308 to nowhere) and robots_excludes_the_machine_surface_and_names_no_sitemap.
  • README.md, docs/anthropic-directory-submission.md, docs/openai-directory-submission.md, docs/icp-mcp-privacy-policy-draft.md — the pages' one home is now internetcomputer.org/icp-mcp/; portal URLs updated to the canonical forms with a note that the old mcp.internetcomputer.org paths redirect from the release that ships this PR.

Deployment note: until this ships in a release-*, production keeps serving the previous pages itself (status quo); from that release on, the old URLs 308 to internetcomputer.org. Directory portals can be given either form; the docs now prefer the canonical one.

Testing

  • cargo build --locked --all-targets
  • cargo test --locked --all-targets — 68 passed, 0 failed (the new redirect + robots tests included)
  • cargo fmt --all / cargo clippy --all-targetsleft untouched, pre-existing: this container's rustfmt 1.8.0 (stable 1.94.1) disagrees with the repo's committed style across 15 files including ones this PR never touches (no rustfmt.toml is committed and no CI fmt gate exists), so nothing was reformatted; new code follows the file's existing conventions. Clippy's 6 warnings are all in imcp2-core (5 map_or, 1 redundant closure) and reproduce on pristine main. (This corrects the earlier note here that claimed drift only in calls.rs — that under-counted.)
  • npm test --prefix monitoring/mcp-status — not applicable, the dashboard is untouched.
  • Cross-repo consistency (commits 1–3): applying the mirror's own transformations to this branch's page text reproduced the dfinity/internetcomputer-org#76 pages byte-identically, before the pages were deleted here.

Checklist

  • I have read the Contributing guidelines.
  • Docs updated for any user-visible change — README + the directory-submission docs now name the pages' new home and the redirect behaviour.
  • No secrets, credentials, or internal-only information are included.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB

claude added 4 commits August 28, 2026 10:35
The Terms still described the Service in financial vocabulary: "never
holds your funds" / "non-custodial" (section 1), "moving tokens,
spending cycles, installing code, and deleting canisters" (section 3),
and "loss of tokens, cycles, or other assets" (section 8). That
language no longer matches the served surface — the funding and
canister-management tools are not served (#153, #154, #158) and
canister_update_call refuses the ledger methods — and, like the tool
descriptions (per review in #154), the page should stay free of
financial language rather than mention-and-deny.

Rephrase those passages without financial vocabulary while keeping
their substance and the user-responsibility posture:

- Section 1 describes the Service as reading data applications hold
  for the user and submitting actions to them, and states it never
  holds long-term credentials — only the delegated, time-limited
  session authorization. (This also stops claiming canister
  management, which the served tool set no longer offers.)
- Section 2 now states explicitly that requests made under the user's
  authorization are treated as theirs and are their sole
  responsibility.
- Section 3 keeps irreversibility front and center: an action can
  permanently change or delete data an application holds for the
  user, what an action does is defined by the receiving application,
  and nothing can be undone once the network accepts it.
- Section 8's liability examples drop the asset enumeration; the
  general damages language still covers everything it covered.

Bump the effective date for the revision (adjust to the release date
at cut time, as was done for August 3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
…erms and Privacy Policy

Application developers who want their applications' operations supported
through the Service must comply with the ICP MCP Privacy Policy and
accept the Terms of Service. They assert both by implementing the
service discoverability instructions at
https://docs.internetcomputer.org/guides/frontends/service-discoverability/

- Terms, section 4 (Third Parties): new paragraph stating the
  obligation, linking the Privacy Policy and the discoverability guide.
- Privacy Policy, section 2 (Who Receives Data), "The applications you
  choose" recipient: matching sentence referring the developer to the
  Terms and the discoverability guide; effective date moves to
  August 28, 2026 per section 8 (align with the shipping release at
  cut time, as for August 3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
…ance with a notice

Review on the mirrored copy (dfinity/internetcomputer-org#76) caught a
real contradiction in the wording added by the previous commit. The
Privacy Policy states twice that application processing is governed by
each application's own policy and not by this Privacy Policy (the scope
carve-out, and the same "applications you choose" paragraph the
sentence was added to), so requiring developers to "comply with" it
both contradicted that scope and named no conduct: the Policy is a
notice about our processing and carries no developer-facing duties.

Reframe so the obligation is coherent and actionable, keeping the
acceptance-by-implementation mechanism intact:

- The developer accepts the Terms by implementing the discoverability
  instructions. Acceptance of a contract is something a third party can
  do; "compliance" with our privacy notice is not.
- The duty now lives in the Terms, where duties belong: handle personal
  data reaching them through the Service lawfully and under their own
  privacy policy, and keep that policy accurate and available.
- Both pages now say what the Privacy Policy actually is for the
  developer: it describes what the Service discloses to an
  application, and does not govern what the application does next.
  That agrees with the scope carve-out instead of fighting it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
…ternetcomputer.org

The landing page and its /privacy-policy, /support and /terms subpages
existed twice: served by this binary from src/assets/, and mirrored in
dfinity/internetcomputer-org (public/icp-mcp/, served at
internetcomputer.org/icp-mcp/). Two copies of legal pages drift — the
mirror carried this branch's revisions before any imcp2 release could —
so the internetcomputer-org copy becomes the only one, and this origin
stops serving pages of its own:

- The four asset pages are deleted. connect-error.html and favicon.svg
  stay: they are the OAuth connect flow's, not the landing site's, and
  the connect/callback screens link /favicon.svg for their tab icon.
- /, /privacy-policy, /support and /terms answer with permanent
  redirects (308) to the same paths under
  https://internetcomputer.org/icp-mcp/ — trailing-slash targets, so a
  client lands in one hop. Every published link keeps working: the
  directory listings' policy URLs, bookmarks, search results.
- /sitemap.xml is gone (a sitemap must list same-origin content, and
  this origin has none); robots.txt stays to keep crawlers off the
  machine surface, minus the sitemap reference, and site_metadata_router
  no longer needs PUBLIC_URL. /status/ is untouched — the live dashboard
  is this deployment's own monitoring surface, published by Caddy.
- Tests follow: the sitemap and page-content tests are replaced by a
  redirect test pinning all four absolute targets and a robots test
  asserting no sitemap is advertised.
- README and the directory-submission docs now name
  internetcomputer.org/icp-mcp/ as the pages' one home, with the old
  URLs redirecting from the release that ships this change.

The earlier commits on this branch revised the pages' text in place;
that text now lives in dfinity/internetcomputer-org#76 / #77, which is
what makes this deletion safe: nothing is lost, one copy remains.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
@aterga aterga changed the title Terms and Privacy Policy: drop financial-operation references, state the app-developer obligation Drop the landing site in favour of internetcomputer.org/icp-mcp; the old page paths redirect permanently Aug 28, 2026
@aterga
aterga requested a balanced review from Copilot August 28, 2026 14:14
@aterga
aterga marked this pull request as ready for review August 28, 2026 14:14
@aterga
aterga requested a review from a team August 28, 2026 14:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Moves landing and legal pages to their canonical internetcomputer.org location.

Changes:

  • Replaces legacy page routes with permanent redirects.
  • Removes bundled landing/legal assets and sitemap support.
  • Updates tests and directory documentation.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/main.rs Adds redirects and updates metadata tests.
src/assets/index.html Removes bundled landing page.
src/assets/privacy-policy.html Removes bundled privacy policy.
src/assets/support.html Removes bundled support page.
src/assets/terms.html Removes bundled terms page.
README.md Documents canonical pages and redirects.
docs/anthropic-directory-submission.md Updates Anthropic submission URLs.
docs/openai-directory-submission.md Updates OpenAI submission URLs.
docs/icp-mcp-privacy-policy-draft.md Identifies the canonical policy location.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Two conflicts, both from #164 touching the privacy policy this branch
deletes:

- src/assets/privacy-policy.html: modified on main (the third-party
  recipients list drops skills.internetcomputer.org — skills are now
  served from the reviewed bundle compiled into the binary, so no
  network fetch to disclose), deleted here. The deletion stands; the
  content change is ported to the page's one home in
  dfinity/internetcomputer-org (the #77 re-sync branch), where the
  policy now lives.
- docs/anthropic-directory-submission.md: both sides rewrote the
  "Publication venue" paragraph. Kept this branch's new-home framing,
  folding in main's note about what the refreshed text carries (the
  identifier-linkability wording and the updated third-party list).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
Copilot AI review requested due to automatic review settings August 28, 2026 14:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

…oval

One conflict, the main.rs import block: keep this branch's axum line
(response::Html went away with the served pages) and main's imcp2 line
(ii_app_metadata_router joins the imports). The two changes are
complementary — #169 already points Internet Identity's legal links at
the pages' one home on internetcomputer.org/icp-mcp/, the same
destination this branch's redirects serve, and its router merges at the
application root untouched by the redirect routes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xpg83AWtkQo34jbMxpX8WB
Copilot AI review requested due to automatic review settings August 28, 2026 15:48

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 8 out of 9 changed files in this pull request and generated no new comments.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants