Skip to content

fix(seo): cut retired Agent Desk title consolidation wires - #84

Closed
nish3451 wants to merge 10 commits into
mainfrom
docs/evidence/agent-desk-title-canonical-2026-08-11
Closed

fix(seo): cut retired Agent Desk title consolidation wires#84
nish3451 wants to merge 10 commits into
mainfrom
docs/evidence/agent-desk-title-canonical-2026-08-11

Conversation

@nish3451

@nish3451 nish3451 commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

What and why

Google still presents the retired self-serve "TinyStudio Agent Desk" title/snippet for tinystudio.io. The 2026-08-09 pass (docs/evidence/agent-desk-retired-title-2026-08-09.md) added noindex, nofollow + retired framing to the legacy /agent-desk surface and is verified live. Two index-facing wires remained:

  1. Canonical/og:url consolidation wire — the legacy page still declared the homepage as its canonical and og:url. That is the exact mechanism the 08-09 receipt diagnosed as the original title-consolidation path ("the legacy page's title consolidated through its canonical"), and it contradicts the new noindex. Now the canonical and og:url name the legacy page itself (https://tinystudio.io/agent-desk.html).
  2. Retired-410 copyapp.tinystudio.io / api.tinystudio.io 410 responses claimed "TinyStudio.io now runs the self-serve Agent Desk from the main domain", re-presenting the retired product as the main domain's current offer on crawlable 410 pages. Both now state the app and the Agent Desk are retired and the current offer is the Website Appraisal.

Changes

  • public/agent-desk.html — self-canonical + self og:url on the legacy surface
  • src/worker.js — corrected 410 copy in retiredAppResponse / retiredApiResponse
  • scripts/check-site.mjs — retired-desk dogfood guard now fails npm run check if the canonical/og:url point anywhere but the legacy page itself, or if the 410 copy claims the main domain runs the Agent Desk (each clause verified to fire via negative test)
  • docs/evidence/agent-desk-retired-title-2026-08-11.md — evidence receipt with live-before state

Validation

  • npm test green (check + headings + sitemap + worker + UI + contract; 5 suites, 0 fail)
  • git diff --check clean
  • Negative-tested each new guard clause: reverting the canonical, og:url, or 410 copy makes npm run check fail; restored tree passes.

Not claimed: when or whether Google drops the old snippet — de-indexing is a live process that starts after recrawl. The honest measure is a future controlled re-run via evidence-fixtures/ai-search or Search Console.

Summary by CodeRabbit

  • Bug Fixes

    • Updated the retired Agent Desk page’s canonical and social-sharing URLs to reference the correct page.
    • Clarified retirement messages for the former Agent Desk app and API, including the current Website Appraisal offering.
    • Prevented retired-service responses from presenting Agent Desk as the current self-serve offering.
  • Tests

    • Added validation for retired-page URLs and outdated service messaging.
  • Documentation

    • Added evidence and verification records for the indexing updates.

The 2026-08-09 pass added noindex and retired framing to the legacy
/agent-desk surface, but two index-facing wires remained that keep feeding
Google the retired 'TinyStudio Agent Desk' title/snippet for tinystudio.io:

- The legacy page's canonical and og:url still point at the homepage — the
  exact consolidation path through which its title reached tinystudio.io.
  They now name the legacy page itself (https://tinystudio.io/agent-desk.html).
- The app./api. 410 responses still claimed the main domain 'now runs the
  self-serve Agent Desk'. They now state both are retired and that the
  current offer is the Website Appraisal.

Extends the retired-desk dogfood guard in scripts/check-site.mjs so the
canonical/og:url wire and the stale 410 claim fail CI if they return, and
records the pass in docs/evidence/agent-desk-retired-title-2026-08-11.md.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2e1dd3d6-f5df-42f2-ae6d-84cafec72083

📥 Commits

Reviewing files that changed from the base of the PR and between fc3cc4d and 88c0592.

📒 Files selected for processing (1)
  • scripts/check-site.mjs
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/check-site.mjs

📝 Walkthrough

Walkthrough

The change retires remaining Agent Desk indexing signals. The page now self-canonicalizes, retired responses identify the Website Appraisal, and site checks validate both conditions. An evidence document records verification commands and scope.

Changes

Agent Desk retirement

Layer / File(s) Summary
Update retired surfaces
public/agent-desk.html, src/worker.js
The page uses /agent-desk.html for its canonical and Open Graph URLs. Retired app and API responses describe the Agent Desk retirement and the Website Appraisal.
Validate retirement signals
scripts/check-site.mjs, docs/evidence/agent-desk-retired-title-2026-08-11.md
Site checks validate self-referencing or absent retired-page metadata and reject outdated 410 messaging. The evidence document records verification commands and scope.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the SEO fix for retired Agent Desk title-consolidation references.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/evidence/agent-desk-title-canonical-2026-08-11

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

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/evidence/agent-desk-retired-title-2026-08-11.md (1)

83-87: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add language identifiers to both shell fences.

markdownlint-cli2 reports MD040 for Line 83 and Line 91. Add sh or bash to both opening fences.

Suggested fix
-```
+```sh
 npm run check
 npm test
 git diff --check
-```
+```
...
-```
+```sh
 curl -s https://tinystudio.io/agent-desk      # noindex + retired head, canonical/og:url still -> homepage
 curl -s https://app.tinystudio.io/            # 410 body still claimed the main domain runs the Agent Desk
 curl -s https://api.tinystudio.io/            # 410 JSON message made the same claim
-```
+```

Also applies to: 91-95

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/evidence/agent-desk-retired-title-2026-08-11.md` around lines 83 - 87,
Add shell language identifiers to both fenced code blocks in the document: the
block containing the npm and git commands and the block containing the curl
commands. Change each opening fence to use sh or bash while preserving the
command content and closing fences.

Source: Linters/SAST tools

scripts/check-site.mjs (1)

1110-1112: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Assert the retired-response contract positively.

This check rejects only one exact phrase in the full worker source. It does not validate retiredAppResponse() and retiredApiResponse() separately or require Website Appraisal to remain in either response. A future wording change can pass this check while violating the retirement contract. Scope the check to both response builders and assert the required retirement and current-offer text.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/check-site.mjs` around lines 1110 - 1112, Update the check around
retiredAppResponse() and retiredApiResponse() to inspect each response builder
separately rather than searching the full worker source for one phrase. Require
both responses to include the retirement/410 messaging and the current “Website
Appraisal” offer text, while preserving rejection of claims that the main domain
runs the self-serve Agent Desk.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/evidence/agent-desk-retired-title-2026-08-11.md`:
- Around line 91-95: Update the three reproduction curl commands in the evidence
document to include an HTTP-status output option such as -D - or -w
'%{http_code}\n', while preserving their existing URLs and response-body
capture.
- Around line 3-11: Correct the evidence receipt date and associated execution
claims in the document’s introductory metadata and the referenced sections. Use
the actual date when the commands ran; if they have not run, mark the work as
planned and rename the receipt to match its eventual execution date instead of
documenting future work as completed.

---

Nitpick comments:
In `@docs/evidence/agent-desk-retired-title-2026-08-11.md`:
- Around line 83-87: Add shell language identifiers to both fenced code blocks
in the document: the block containing the npm and git commands and the block
containing the curl commands. Change each opening fence to use sh or bash while
preserving the command content and closing fences.

In `@scripts/check-site.mjs`:
- Around line 1110-1112: Update the check around retiredAppResponse() and
retiredApiResponse() to inspect each response builder separately rather than
searching the full worker source for one phrase. Require both responses to
include the retirement/410 messaging and the current “Website Appraisal” offer
text, while preserving rejection of claims that the main domain runs the
self-serve Agent Desk.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: df74573f-6266-4693-903b-05fd0564234b

📥 Commits

Reviewing files that changed from the base of the PR and between ed18c6e and fc3cc4d.

📒 Files selected for processing (4)
  • docs/evidence/agent-desk-retired-title-2026-08-11.md
  • public/agent-desk.html
  • scripts/check-site.mjs
  • src/worker.js

Comment on lines +3 to +11
Date: 2026-08-11
Scope: `public/agent-desk.html` (head canonical/og:url), `src/worker.js`
(retired 410 response copy), `scripts/check-site.mjs` (regression guard).
Follow-up to `docs/evidence/agent-desk-retired-title-2026-08-09.md`, which
added `noindex, nofollow` and retired framing to the legacy surface. This
receipt records the second, deterministic pass: the two remaining wires that
could still feed the retired "TinyStudio Agent Desk" title/snippet to Google
were cut. It is not a live Google-index measurement and claims nothing about
when or whether Google's search results change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the actual evidence date.

The receipt is dated August 11, 2026, and records live-before fetches on August 11, 2026. The current review date is August 10, 2026. If these commands have not run, the document records future work as completed. Use the actual execution date, or mark the section as planned and rename the file when the run completes.

Also applies to: 89-98

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/evidence/agent-desk-retired-title-2026-08-11.md` around lines 3 - 11,
Correct the evidence receipt date and associated execution claims in the
document’s introductory metadata and the referenced sections. Use the actual
date when the commands ran; if they have not run, mark the work as planned and
rename the receipt to match its eventual execution date instead of documenting
future work as completed.

Comment on lines +91 to +95
```
curl -s https://tinystudio.io/agent-desk # noindex + retired head, canonical/og:url still -> homepage
curl -s https://app.tinystudio.io/ # 410 body still claimed the main domain runs the Agent Desk
curl -s https://api.tinystudio.io/ # 410 JSON message made the same claim
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Show the HTTP status in the reproduction commands.

curl -s prints only the response body. It does not show the documented 410 status. Add -D - or -w '%{http_code}\n' so the evidence records the status explicitly.

🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 91-91: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/evidence/agent-desk-retired-title-2026-08-11.md` around lines 91 - 95,
Update the three reproduction curl commands in the evidence document to include
an HTTP-status output option such as -D - or -w '%{http_code}\n', while
preserving their existing URLs and response-body capture.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot 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.

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@nish3451

Copy link
Copy Markdown
Collaborator Author

Closing as the stale duplicate in the agent-desk-canonical PR reconciliation (see docs/evidence/agent-desk-canonical-pr-reconcile-2026-08-12). Two wires this branch carried are both already delivered: (1) the canonical/og:url fix — PR #105 declared #91 the surviving delivery path, and #91 carries the byte-identical public/agent-desk.html change, refreshed onto current origin/main (merge 333099f, npm run check + npm test green) and MERGEABLE; (2) the retired app/api 410 copy — landed by #100 (merged), whose current-offer wording now ships on main. This branch was conflict-locked against main and carries no unique fix content beyond those two delivered wires, so merging it would only re-introduce drift.

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.

1 participant