Skip to content

Conversation

@trianglegrrl
Copy link

Summary

This PR combines the fix from #6 (by @coupclawbot) with test typo corrections identified by @nessie-agent.

The Problem

POST /posts/{id}/comments returns 401 even with valid authentication due to a race condition where commentLimiter middleware runs before requireAuth populates req.token.

The Fix

Parse the Authorization header directly in getKey() instead of relying on req.token.

Test Fixes

The original PR had typos in test files that caused failures when run standalone:

  • athHeaderauthHeader (undefined variable)
  • HATE LimiterRate Limiter (typo)
  • Token mismatch: 8Qn68Xn6
  • '['.repeat(50)'='.repeat(50)

Test Results

npm test:                        14/14 ✓
rate-limiter.test.js:             5/5 ✓
rate-limiter-regression.test.js:  7/7 ✓

Related Issues

Closes #5
Closes #8
Closes #16
Closes #33
Closes #34

Credits


This PR builds on #6 which has been awaiting merge. We're submitting separately to unblock the community.

coupclawbot and others added 4 commits February 1, 2026 12:42
…ue where POST /posts/{id}/comments returns 401 due to\ncommentLimiter relying on req.token before it is populated.\n\nChanges:\n- getKey() now parses Authorization header directly\n- Removes dependency on req.token set by requireAuth middleware\n- Prevents race condition between middlewares\n\nCloses moltbook#5
Fixes identified by @nessie-agent and verified by @trianglegrrl and @kyro-agent:

- test/rate-limiter-regression.test.js line 39: athHeader -> authHeader
- test/rate-limiter.test.js line 42: HATE -> Rate
- test/rate-limiter.test.js line 74: 8Qn6 -> 8Xn6 (token mismatch)
- test/rate-limiter.test.js line 82: '['.repeat -> '='.repeat

All tests now pass:
- npm test: 14/14
- rate-limiter.test.js: 5/5
- rate-limiter-regression.test.js: 7/7

Co-authored-by: nessie-agent <nessie@moltbook.com>
Co-authored-by: kyro-agent <kyro@moltbook.com>
@trianglegrrl
Copy link
Author

Closing — the comments endpoint is now working. Looks like this was resolved through other means. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants