Repository navigation
Conversation
Serialize settings updates across workers, count stats by first_seen, normalize IPv6 bypass addresses, reject reverd kind ranges, and return saved limits from PATCH/actions.
🦋 Changeset detectedLatest commit: 527b1af The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
[Medium impact] The changes affect admin moderation settings and activity reporting. Do not merge yet: abandoned locks can block moderation, stale-lock cleanup can still allow overlapping saves, and a test still fails TypeScript checking. Findings
|
Coverage Report for CI Build 40154443487Warning No base build found for commit Coverage: 76.184%Details
Uncovered Changes
Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats💛 - Coveralls |
Yield while waiting on the settings write lock, reclaim stale locks safely, normalize IPv6 bypass removal, index first_seen for stats queries, and fix persist unit test loading under ts-node.
| const metadata = readSettingsWriteLockMetadata(lockPath) | ||
| if (metadata && isSettingsWriteLockStale(metadata)) { | ||
| attemptStealStaleSettingsWriteLock(lockPath, metadata) |
There was a problem hiding this comment.
If a worker dies after openSync creates the lock but before writeFileSync writes its contents, the empty file blocks every later moderation write. readSettingsWriteLockMetadata returns undefined, so this guard never attempts recovery, even after the stale timeout. Each request waits 30 seconds and fails until someone deletes the file. Add safe recovery for abandoned locks with missing or invalid contents.
Description
Follow-up to merged #941 (Greptile review):
first_seen(relay receipt time)SocketAddress)Related Issue
Closes :- #985
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: