feat: expose publisher account feed URLs - #2959
Conversation
|
@giodl73-repo is attempting to deploy a commit to the OpenClaw Foundation Team on Vercel. A member of the Team first needs to authorize it. |
|
Codex review: needs real behavior proof before merge. Reviewed July 17, 2026, 11:33 PM ET / July 18, 2026, 03:33 UTC. Summary Reproducibility: not applicable. this is a new feature rather than a report of broken existing behavior. The remaining concerns are directly observable from the proposed public contract and the collaborator's current-head review comments. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review findings
Review detailsBest possible solution: Decide whether public feeds are publisher-only or also need account-scoped endpoints; then land one coherent persisted-snapshot contract with monotonic revisions and honest continuation or capacity failure, rebase the UI link onto that contract, and show the rendered link plus a live endpoint response from a running ClawHub instance. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a new feature rather than a report of broken existing behavior. The remaining concerns are directly observable from the proposed public contract and the collaborator's current-head review comments. Is this the best way to solve the issue? No. The current stacked branch is not the narrowest maintainable path because its public API scope conflicts with the declared publisher-only dependency and its feed contract is incomplete; settle the canonical API first, then keep the profile link as a small follow-up. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against aaa73625ed41. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (3 earlier review cycles)
|
|
This pull request has been automatically marked as stale due to inactivity. |
72b804f to
fd30abc
Compare
Patrick-Erichsen
left a comment
There was a problem hiding this comment.
This branch adds a canonical, encoded Feed link to publisher profiles, but because it still targets main it also publishes the full account-feed API from #2948. The link helper itself is sound; the included v1 feed semantics have two blocking contract gaps.
LOC: +1910/-78 (26 files)
Best-fix verdict: too early in the stack. Fix the revision and bounded-pagination semantics in #2948, then keep #2959 as the small profile-discoverability child.
Alternatives considered: Hiding only the profile link does not fix the public routes already included from #2948. Documenting this as a latest-items projection does not fix changing bodies under one revision or successful terminal responses that can omit all older public entries.
Evidence checked: current origin/main (3134a204), clean merge tree, #2948 ancestry, RFC #39 head 92846d1f, schema/spec/OpenAPI paths, account-feed collectors and tests, HTTP/cache routing, catalog-feed publication behavior, both profile routes, and the 47-test focused suite. Exact-head static/unit/types/packages/e2e/smoke/security checks pass; the unrelated inspector-version local-auth shard fails during fixture/bootstrap setup.
Remaining uncertainty: no real-browser/live-Convex proof of the new link and API was supplied, but that does not affect either deterministic blocker below.
| displayName: | ||
| params.publisher.displayName || params.user?.displayName || params.user?.name || "", | ||
| generatedAt: new Date().toISOString(), | ||
| sequence: 0, |
There was a problem hiding this comment.
[P1] Give each changed feed body a monotonic revision. generatedAt and entries are recomputed on every request, but this hardcodes sequence to 0 forever. Both specs/account-feeds.md and RFC #39 define this field as the monotonic revision for cache/replay/rollback checks, and the canonical catalog feed persists and increments its sequence. A client deduplicating by sequence can therefore treat changed feed contents as the same revision. Persist and increment a coherent feed revision, or do not expose this as the stable v1 contract until that state exists.
| ); | ||
| const entries = sortedCandidates.slice(0, limit); | ||
|
|
||
| return buildFeed({ scope, stableId, user, publisher, entries, nextCursor: null }); |
There was a problem hiding this comment.
[P1] Do not report bounded-scan exhaustion as a terminal feed. Both source collectors stop after three pages, but this call always emits nextCursor: null; convex/accountFeeds.test.ts already demonstrates that an older public package can exist while the response is an empty, apparently complete feed. Return an opaque continuation or an explicit bounded-scan error/diagnostic (or scan to the true end) instead of a successful terminal response that silently drops discoverable entries.
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: feat: expose publisher account feed URLs This is item 1/1 in the current shard. Shard 10/18. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
|
Closing this raw publisher-feed link surface rather than carrying another review unit. The preferred consumption path is the signed publisher-follow workflow tracked by openclaw/openclaw#109397 and its gateway/UI follow-ups; we can redesign explicit feed-link discovery later if real demand remains. |
Summary
/api/v1/publishers/{publisherId}/feedendpoint from feat: add publisher feed model API #2948.Dependency
Depends on #2948 (account and publisher feed API). This is intentionally a small discoverability child and does not introduce duplicate handle-based feed pages.
Boundary
The link exposes discovery metadata only. It does not imply official, reviewed, trusted, approved, or installable status.
Validation
bun x vitest run src/lib/ownerRoute.test.ts src/__tests__/user-profile-route.test.tsx(24 passed)bun x oxfmt --check src/__tests__/user-profile-route.test.tsx src/lib/ownerRoute.test.ts src/lib/ownerRoute.ts 'src/routes/user/$handle.tsx'bun x oxlint --type-aware src/__tests__/user-profile-route.test.tsx src/lib/ownerRoute.test.ts src/lib/ownerRoute.ts 'src/routes/user/$handle.tsx'git diff --check