-
7816b4d2be
Merge main: add the real public quick-audit endpoint for crawlerx.co
public
metatroncubeswdev
2026-10-20 19:19:21 -04:00
-
-
510c46e5ed
Add a real, rate-limited public quick-audit endpoint for crawlerx.co
main
metatroncubeswdev
2026-10-20 19:19:12 -04:00
-
bed11be657
Merge main: replace the actual logo asset (crawlerx-mark.png was MetatronCube's cube)
metatroncubeswdev
2026-10-18 21:05:14 -04:00
-
-
8e3a9f2882
Replace the actual logo asset — crawlerx-mark.png was MetatronCube's cube
metatroncubeswdev
2026-10-18 21:05:08 -04:00
-
368c82ee4e
Merge main: finish CrawlerX rebrand (theme tokens, sign-in page, logo refs)
metatroncubeswdev
2026-10-18 17:56:48 -04:00
-
-
0e8bfa1fa1
Finish the CrawlerX rebrand: theme tokens, sign-in page, stray logo refs
metatroncubeswdev
2026-10-18 17:56:40 -04:00
-
20361f3451
Merge main: branding fix, Autumn local-ledger guards, JSON 404 fix
metatroncubeswdev
2026-10-18 01:37:00 -04:00
-
-
336db032a4
Return JSON, not plain text, from the Autumn route's 404
metatroncubeswdev
2026-10-18 01:36:42 -04:00
-
9298f67c7f
Stop Autumn-only code paths throwing in local-ledger billing mode
metatroncubeswdev
2026-10-17 21:31:30 -04:00
-
78d0aaad0c
Fix hardcoded "OpenSEO" app name in transactional emails
metatroncubeswdev
2026-10-17 21:28:49 -04:00
-
4f52d02df1
vite.config.ts: use loadEnv() instead of bare process.env
metatroncubeswdev
2026-10-17 20:09:51 -04:00
-
bed0504418
vite.config.ts: actually read PORT/ALLOWED_HOST from env
metatroncubeswdev
2026-10-17 19:49:21 -04:00
-
-
324c9e064b
Revert "vite.config.ts: actually read PORT/ALLOWED_HOST from env"
metatroncubeswdev
2026-10-17 19:55:01 -04:00
-
1146dc2f6a
vite.config.ts: actually read PORT/ALLOWED_HOST from env
metatroncubeswdev
2026-10-17 19:49:21 -04:00
-
65a01af4d3
Fix critical billing bugs, add local usage caps, publish sales demo
fix/stripe-billing-security
metatroncubeswdev
2026-10-17 16:24:38 -04:00
-
98694c56ea
docs: add comprehensive work changelog and architecture documentation for Oct 17
Alaguraj0361
2026-10-17 20:01:03 +05:30
-
5d5484c0b0
add subscription billing flow and Stripe integration components
Alaguraj0361
2026-10-17 19:58:12 +05:30
-
df5f593369
add billing and subscription management system with Stripe integration
Alaguraj0361
2026-10-17 19:40:15 +05:30
-
5ae39ebfd4
add authentication routes, components, and styling for CrawlerX app
Alaguraj0361
2026-10-17 15:02:39 +05:30
-
a3b13a112a
Add agency edition implementation plan for team handover
docs/agency-edition-plan
metatroncubeswdev
2026-09-21 12:24:38 -04:00
-
05e64ccd36
Add combined SEO report: Search Console + Analytics + Site Audit in one view
metatroncubeswdev
2026-09-13 14:37:11 -04:00
-
6d40767d95
Site audit: DataForSEO OnPage fallback for bot-blocked crawls
metatroncubeswdev
2026-09-12 11:49:54 -04:00
-
17dfca406f
Audit crawler: send a browser navigation header set (tier-1 anti-bot)
metatroncubeswdev
2026-09-10 16:35:50 -04:00
-
ce75d45141
Phase 4: activity log — who did what in the workspace
metatroncubeswdev
2026-09-09 16:00:09 -04:00
-
29bda614a4
Fix team-mode first-run: /setup no longer bounces to /sign-in
metatroncubeswdev
2026-09-09 14:19:28 -04:00
-
acc35c055c
Phase 3: team-mode owner setup, user management, shared workspace
metatroncubeswdev
2026-09-09 08:13:01 -04:00
-
c47b032f1a
Add
team auth mode (backend, inert until AUTH_MODE=team)
metatroncubeswdev
2026-09-09 00:51:20 -04:00
-
b489f78129
Rebrand app to CrawlerX / MetatronCube theme
metatroncubeswdev
2026-09-09 00:00:27 -04:00
-
ea8becd433
Update compose.yaml
admin
2026-09-08 21:20:39 +00:00
-
aefbf86e08
Migrate project to Gitea
Developer
2026-09-08 21:08:29 +00:00
-
3632f40852
Blog: What Broke the $99 Ceiling (#277)
Jeremy Rivera
2026-09-03 10:54:34 -05:00
-
5b242b225a
Blog: Two Surfaces, Two Timelines (#278)
Jeremy Rivera
2026-09-03 10:54:23 -05:00
-
ac9ee482d2
Revert "fix(audit): back off and retry on 429 instead of recording the page a…" (#564)
Ben Senescu
2026-08-28 16:16:44 -04:00
-
ad2d28ea6f
fix(ga4): honor full date ranges instead of clamping to 90 days (#563)
Ben Senescu
2026-08-28 16:15:22 -04:00
-
bb099ad65a
fix(audit): back off and retry on 429 instead of recording the page as blocked (#562)
Ben Senescu
2026-08-28 15:27:23 -04:00
-
accac73e16
feat(billing): collect business name, address, and tax ID at checkout (#558)
Ben Senescu
2026-08-27 18:56:26 -04:00
-
b0248f2acd
release: v0.1.7 (#554)
Ben Senescu
2026-08-27 18:31:03 -04:00
-
749b38118d
fix: show GA4 MCP rows in Claude text output (#553)
Ben Senescu
2026-08-27 18:02:13 -04:00
-
ea162a4391
feat(orgs): multi-user workspaces — roles, invitations, membership enforcement (#473)
Ben Senescu
2026-08-26 16:54:08 -04:00
-
4d7fb661f0
Switch chat agents to GPT-5.6 Luna (max reasoning) (#499)
Ben Senescu
2026-08-26 16:39:51 -04:00
-
61b32ec647
fix: extend OAuth state cookie lifetime to match the 10-minute state TTL (#544)
Ben Senescu
2026-08-26 14:37:46 -04:00
-
b32c0bd841
fix: surface Google connect failures to the user instead of dead-ending (#549)
Ben Senescu
2026-08-26 13:23:20 -04:00
-
9b12e073a8
fix: replace the broken per-key API rate limit with a real 5000/min per-user /mcp limit (#545)
Ben Senescu
2026-08-26 12:09:31 -04:00
-
f35bbb8753
chore: add internal observability-triage skill (query recipes + known-noise filters) (#540)
Ben Senescu
2026-08-26 12:08:50 -04:00
-
11a874ed3b
chore: log Lighthouse runtime errors at warn and include strategy (#539)
Ben Senescu
2026-08-26 11:51:59 -04:00
-
c7ff28c30a
chore: log rank-check live call failures with error code and keyword, warn on upstream flakes (#542)
Ben Senescu
2026-08-26 11:51:26 -04:00
-
824e914eb1
fix(mcp): refuse subscriptions/listen streams — MCP serving is stateless (EVE-95) (#548)
Ben Senescu
2026-08-26 11:48:20 -04:00
-
0abde80109
fix: add 10s timeout to Loops fetches (#543)
Ben Senescu
2026-08-26 11:41:22 -04:00
-
95551a425a
chore: log expected credit refusals in backlink snapshot refresh at info (#541)
Ben Senescu
2026-08-26 11:39:50 -04:00
-
7918fdb8c7
fix: remove duplicate retry:false in useKeywordSerpAnalysis query options (#547)
Ben Senescu
2026-08-26 11:34:57 -04:00
-
022a7f1944
SERP analysis: depth 20 by default, load top 100 on demand; classify DataForSEO timeouts (#523)
Ben Senescu
2026-08-26 11:17:18 -04:00
-
a1c6eb6b11
fix: meta-only-response test used toSorted, banned by the ES2022 lib floor (#537)
Ben Senescu
2026-08-26 10:37:50 -04:00
-
0311e72a96
PostHog reports every server error as affecting as many users as it has events (#534)
Ben Senescu
2026-08-26 10:23:03 -04:00
-
8752269149
Stop cloning the raw Lighthouse report through Zod (#528)
Ben Senescu
2026-08-26 10:11:14 -04:00
-
94b730124b
DataForSEO's own server errors show as an unexpected error and retry 3x (#526)
Ben Senescu
2026-08-26 10:06:40 -04:00
-
67d68281e3
fix(mcp): accept expected partial outputs (#449)
Ben Senescu
2026-08-26 10:04:40 -04:00
-
b631715112
Blank page on older browsers: replace ES2023 array methods with Remeda (#535)
Ben Senescu
2026-08-26 10:02:03 -04:00
-
8db0dd3246
First site audit over MCP fails with a raw billing error (#525)
Ben Senescu
2026-08-26 09:59:35 -04:00
-
25c8f7be26
fix(client): quick fixes for top PostHog errors (#436)
Ben Senescu
2026-08-26 09:48:43 -04:00
-
3fc1f4ec34
fix(dataforseo): accept empty live SERPs (#451)
Ben Senescu
2026-08-26 09:48:32 -04:00
-
ce7570e898
Stop reporting GA4 quota exhaustion as an app exception (#527)
Ben Senescu
2026-08-26 09:40:47 -04:00
-
b592dc5043
fix(mcp): classify project input validation (#455)
Ben Senescu
2026-08-26 09:39:09 -04:00
-
7f9d73102e
Throttle chat store updates to fix React #185 in SAM chat (#522)
Ben Senescu
2026-08-26 09:38:33 -04:00
-
044d712580
Ignore TanStack Query CancelledError in client error tracking (#524)
Ben Senescu
2026-08-26 09:33:43 -04:00
-
fcb35a8145
fix: move the site-audit engine to a dedicated open-seo-audit worker (stops audit OOMs) (#530)
Ben Senescu
2026-08-25 23:12:26 -04:00
-
215ead8152
Replace dataforseo-client SDK with a thin fetch client (#532)
Ben Senescu
2026-08-25 22:23:55 -04:00
-
ac7ebfe13a
Add Dub referral conversion tracking (leads + sales) (#531)
Ben Senescu
2026-08-25 21:49:08 -04:00
-
7a611a7bad
Reorder onboarding source options by observed frequency, add Instagram (#533)
Ben Senescu
2026-08-25 20:49:46 -04:00
-
e0ed902f39
Allow commercial use in hosted terms Section 2.1 (#529)
Ben Senescu
2026-08-23 21:05:30 -04:00
-
c469a48ae9
Add Cursor marketplace plugin package (#521)
Ben Senescu
2026-08-23 20:18:24 -04:00
-
67f3743002
Update ChatGPT app submission metadata (#520)
Ben Senescu
2026-08-22 12:41:19 -04:00
-
6e02186a2b
Add ChatGPT plugin submission manifest (#519)
Ben Senescu
2026-08-22 12:25:03 -04:00
-
d403954323
Add public support page (#518)
Ben Senescu
2026-08-22 11:27:15 -04:00
-
4ba2d6c175
Require exact hosted MCP origins (#515)
Ben Senescu
2026-08-21 19:01:54 -04:00
-
e5e961bf48
Audit crawl: conservative OOM retries + window carry-over across chunks (#517)
Ben Senescu
2026-08-21 18:29:42 -04:00
-
4cd321e269
Blocked-audit alert: point to desktop crawlers instead of support email (#516)
Ben Senescu
2026-08-21 17:56:15 -04:00
-
5cb23418e1
Mask API key values in PostHog replays (#514)
Ben Senescu
2026-08-21 17:39:44 -04:00
-
6470b875ad
Allow SurfMind Chrome extension MCP origin (#513)
Ben Senescu
2026-08-21 15:41:44 -04:00
-
47883b5d5a
Fix GA4 measurement health for sparse API responses (#512)
Ben Senescu
2026-08-20 17:22:30 -04:00
-
b9c1b0255a
Prompting post: add SEO skills overview section before FAQ (#511)
Ben Senescu
2026-08-19 16:26:03 -04:00
-
d2bfc256dc
feat(library): add FAQPage JSON-LD to the eight keyword-research spokes (#240)
Jeremy Rivera
2026-08-23 17:16:42 -05:00
-
56826f84d1
Competitive Analysis strategy library: pillar + 4 plays (#237)
Jeremy Rivera
2026-08-23 17:16:32 -05:00
-
cd6a782092
release: v0.1.6 (#509)
Ben Senescu
2026-08-19 14:34:24 -04:00
-
43265048df
Tame audit polling: SAM's status tool waits server-side; Lighthouse becomes opt-in for agents (#510)
Ben Senescu
2026-08-19 14:22:33 -04:00
-
a6f96c516e
Remove GA4 launch gating; dashboard shows an Organic traffic card once connected (#505)
Ben Senescu
2026-08-19 13:19:55 -04:00
-
9305ea89d6
Prompting post: keyword-optimized headers + FAQ (#508)
Ben Senescu
2026-08-19 13:03:52 -04:00
-
45d788d81d
Add prompting guide blog post; fix blog footer width, nav, and light-page theming (#507)
Ben Senescu
2026-08-19 12:48:46 -04:00
-
a5a953e478
Project memory + SAM skills: shared per-project AI context (spec 0010) (#493)
Ben Senescu
2026-08-19 09:46:07 -04:00
-
a3ca46a0c1
Add OpenSEO plugins for Claude Code and Codex CLI (#501)
Ben Senescu
2026-08-18 23:17:50 -04:00
-
a004759700
Revert "Prefix public agent skills with "openseo-" (#502)" (#503)
Ben Senescu
2026-08-18 23:00:37 -04:00
-
b9df03d20f
Prefix public agent skills with "openseo-" (#502)
Ben Senescu
2026-08-18 21:15:50 -04:00
-
cfa5bc2cf5
Gate GA4 MCP tools per-user; fix false ga4_malformed_response on empty comparison periods (#497)
Ben Senescu
2026-08-18 15:56:38 -04:00
-
7edb82192a
Update README.md
Ben Senescu
2026-08-18 15:22:45 -04:00
-
8149cd6c70
release: v0.1.5 (#496)
Ben Senescu
2026-08-18 15:05:03 -04:00
-
7738f72333
Local SEO MCP tools: business profile, reviews, updates, categories, rank grid (#489)
Ben Senescu
2026-08-17 23:21:34 -04:00
-
052977f20d
Add Palestine as a Google-Ads-only country picker location (#492)
Ben Senescu
2026-08-17 22:52:47 -04:00
-
ff0ae47d19
Codex MCP “missing issuer” is a Codex 0.143–0.146 bug, not OpenSEO (#491)
Ben Senescu
2026-08-17 15:21:32 -04:00
-
61ebdb05ab
Google OAuth verification: privacy policy disclosures + GA4 reviewer access (#488)
Ben Senescu
2026-08-15 18:27:59 -04:00
-
c8b3eb9b0a
Add exact URL / subfolder / domain / subdomain research scopes (EVE-56) (#487)
Ben Senescu
2026-08-14 21:52:32 -04:00
-
3df66ad9ae
Restore backlink feature URL (#484)
Ben Senescu
2026-08-13 20:33:55 -04:00