Skip to content

Refresh InfoHub project and fix platform reconnect flows#1

Open
Jinkin-92 wants to merge 8 commits intomasterfrom
ship/infohub-auth-fixes
Open

Refresh InfoHub project and fix platform reconnect flows#1
Jinkin-92 wants to merge 8 commits intomasterfrom
ship/infohub-auth-fixes

Conversation

@Jinkin-92
Copy link
Copy Markdown
Owner

Summary

  • refresh aggregation/infohub to match the current local InfoHub project state
  • fix WeChat QR reconnect so successful login updates the runtime credential cache before verification and collection
  • route Weibo source collection through the built-in browser collector instead of the old RSSHub weibo path that returned 503

Verification

  • cd backend && npm run build
  • cd frontend && npm run build
  • local smoke checks after restart:
    • POST /api/auth/wechat/verify returned {"ok":true,"valid":true}
    • POST /api/auth/weibo/test succeeded for https://weibo.com/1788911247
    • POST /api/sources/35/collect returned success with 10 items

Notes

  • this PR is larger than the auth fix alone because the remote aggregation/infohub subtree was behind the current local project snapshot
  • local workspace still has untracked top-level files outside aggregation/infohub; they were intentionally not included in this PR

Jinkin-92 and others added 8 commits April 14, 2026 09:12
Root cause: sources with /weixin/ in URL but already serving
as standard RSS were incorrectly processed through WeChat collector.

Changes:
- collector.ts: check !is_public before WeChat platform routing
- collector.ts: public sources use direct RSS path via rss_url
- PublicSourcesPanel.tsx: hide "could not be refreshed" error state for recovered sources
- FeedList.tsx: add public source state management
- sync-public-rss-from-top-list.mjs: handle plink.anyfeeder.com/weixin/
  sources as standard RSS (not WeChat platform)

Verified working: 49 21世纪经济报道, 72 简书, 73 雪球, 74 书单来了, 76 青年文摘

Also removed 1 duplicate 虎嗅 from design category (now 20 public sources total).
Previously, packaging excluded node_modules but users needed npm install
which triggered node-gyp rebuild requiring Python. Now:

- install.ps1: check for prebuilt better-sqlite3 before npm install,
  skip backend dependency installation if binary already works
- package-release.ps1: include better-sqlite3 prebuilt binary in package
- message updated to reflect what's bundled
…stall only next for frontend with .next

- start.ps1 Ensure-NodeModules: frontend with .next but no node_modules only runs 'npm install next'
- start.ps1 call site: skip backend npm install if better-sqlite3 prebuilt binary detected
- credentialStore: update verified_at on save to fix expired cookie detection
- zhihuAuth/xAuth/weiboAuth/xiaohongshuAuth: fix credentialToStatus
  to properly return invalid/expired/connected based on verifiedAt age
- weiboLogin: add polling interval to detect QR login via cookie checks
- zhihuLogin: sync cookie to RSSHub settings after extraction
- PlatformConnectionsPanel: show 4 connection states (connected/expired/invalid/disconnected)
- client.ts: add platform_credentials and platform_login_sessions tables
- install.ps1/start.ps1: fix npm install logic
- rsshub-local: add global-agent bootstrap and PROXY_URI for zhihu proxy

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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