Skip to content

fix(landing): redirect /privacy → /policy (unblock CWS extension publish) - #5

Merged
Smetools merged 1 commit into
mainfrom
hassan-privacy-redirect-main
May 17, 2026
Merged

fix(landing): redirect /privacy → /policy (unblock CWS extension publish)#5
Smetools merged 1 commit into
mainfrom
hassan-privacy-redirect-main

Conversation

@Smetools

Copy link
Copy Markdown
Collaborator

Why

Chrome Web Store has `https://knowcap.ai/privacy\` registered as the
Knowcap extension's privacy URL, but the page lives at `/policy`.
Google's publish-time reachability check 404s and blocks every
extension publish with:

```
"Publish condition not met: Privacy policy link is not reachable."
```

Has blocked every extension publish since 1.21.6 (May 6). 1.21.19 is
currently sitting unpublished in the CWS dashboard.

Previously merged into `master` as #4 — but Vercel deploys from
`main` (per #3's commit message: "master has been a broken dev fork
for 2 months"). Re-targeting at `main` so the redirect actually
ships.

Fix

Permanent redirects `/privacy` and `/privacy-policy` → `/policy` in
`next.config.js`. Both URLs return 200 via 308.

Test plan

  • After Vercel auto-deploys, `curl -sSL -o /dev/null -w "%{http_code}\n" https://knowcap.ai/privacy\` returns 200.
  • Re-run `gh workflow run extension-publish-debug.yml --repo Knowcap-V2/knowcap -F target=default` — POST publish step returns HTTP 200.
  • CWS update endpoint reports 1.21.19 within minutes.

The Chrome Web Store has https://knowcap.ai/privacy registered as the
Knowcap extension's privacy URL, but the actual privacy policy page
lives at /policy. Google's publish-time reachability check 404s on the
URL and blocks every extension publish with:

  Publish condition not met: Privacy policy link is not reachable.

Has silently blocked every extension publish since 1.21.6 (May 6).
1.21.19 has been sitting unpublished in the CWS dashboard for days.

Fix: Next.js permanent redirects for /privacy and /privacy-policy →
/policy. Both URLs now return 200 (via 308), Google's check passes.
@vercel

vercel Bot commented May 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
app Building Building Preview, Comment May 17, 2026 11:32pm

@coderabbitai

coderabbitai Bot commented May 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a675af70-1407-4fba-92cd-cc7e2a861292

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hassan-privacy-redirect-main

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

@Smetools
Smetools merged commit d46d6b3 into main May 17, 2026
2 of 3 checks passed
@Smetools
Smetools deleted the hassan-privacy-redirect-main branch May 17, 2026 23:32
Smetools added a commit that referenced this pull request Jun 14, 2026
…rends to advisory

Dry-run (2026-06-14) surfaced two input gaps in the routine:
- The only hub SEO audit is technical/on-page — it has NO keyword table, so
  routine input #5 had no structured source.
- Google Trends has negligible volume for this B2B ICP (closest odoo term
  scored <=0.9/100 across EG/SA/AE), so it can't gate keyword selection.

This adds routines/blogger/keyword-opportunities.md as the PRIMARY keyword
source: a per-persona table (odoo-partners, mena-audit-firms,
regulated-verticals, + deprioritized mena-agencies), each keyword
pain-and-intent derived from POSITIONING.md buyer profiles, with dedup
status vs shipped slugs. Includes the only volume-validated MENA terms we
actually have (mahdar egtmaa 89x Saudi; "AI meeting notes" Saudi growth;
Saudi PDPL) mined from shipped posts.

ROUTINE.md: input #5 now reads keyword-opportunities.md (SEO audit demoted
to on-page guidance only); input #6 (Trends) is advisory/tiebreaker, never
a gate; failure-mode "advance keyword" points at the new table.

Also flags the roster-vs-research mismatch: mena-agencies is in the rotation
roster but the segmentation study rates it an anti-buyer.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Smetools added a commit that referenced this pull request Jun 14, 2026
…static keywords + Trends) (#61)

Turns the blogger from static-keyword + dead-Google-Trends into a daily, live
SEO-driven engine.

- scripts/seo-pull.mjs: zero-dep DataForSEO pull (Google-Ads keywords_for_keywords).
  Expands persona seeds into real related keywords with search volume + competition,
  MENA (KSA+EG+UAE) EN+AR, filters to Knowcap ICP intent, ranks by volume x
  competition-weight, dedups vs shipped posts -> opportunity-queue.json + digest.
  Auth: HTTP Basic from ~/.claude/secrets/blogger.md (never committed).
  Verified live: 369 keywords -> 13 fresh ranked opportunities, $0.075/run.
- AGENT.md: the brain mission (email-manager style) — daily flow, burn cadence,
  hard rules (ICP-only, Knowcap-angle, quality>quota, honesty, dedup, EN posts).
- ROUTINE.md: input #5 now runs seo-pull (was static SEO-audit scan); #6 Google
  Trends removed (near-zero for B2B); new "Daily flow + burn cadence" section
  (3 posts/wk for ~8wk -> 1/wk, never publish thin to hit quota).
- .gitignore: opportunity-queue.json + burn-state.json (runtime state).

Brain-first half of the knowcap/blogger routine rebuild (routine-creator). The
thin schedule shell + Windows task land in claude-knowcap next.
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