Skip to main content
← Back to list
01Issue
BugClosedSwamp CLI
AssigneesNone

Relationships

#1179 Quests can be farmed by repeating the same command in a loop

Opened by sntxrr · 7/16/2026

Description

Quests can be trivially gamed by running the same command in a loop. Progress appears to be credited per invocation with no dedup/idempotency check, so a user can farm quest completion (and any associated XP/rewards/leaderboard standing) by repeating a single command over and over rather than actually doing distinct, meaningful work.

This undermines the point of quests as a signal of genuine usage and creates an unfair leaderboard: someone scripting while true; do <cmd>; done out-earns someone using swamp normally.

Steps to Reproduce

  1. Start a quest that tracks running a given command/method.
  2. Run the same command repeatedly (e.g. re-run the identical model method, or loop the same swamp invocation with no state change).
  3. Observe quest progress incrementing on each repeat.
  4. Complete/farm the quest purely by repetition, without doing distinct work.

Expected Behavior

Quest progress should be credited for distinct, meaningful actions, not raw command repetition. Repeated identical/no-op invocations should be deduped or rate-limited so quests can't be farmed by looping the same command.

Suggested Mitigations

  • Dedup progress on identical repeated invocations (idempotency key on command + args + target/state).
  • Require distinct targets or a state change to count toward progress.
  • Rate-limit or debounce quest credit per command within a time window.
  • Cap how much of a quest can be completed by a single repeated command.

Environment

  • swamp CLI (see swamp --version)
  • Reproducible via any quest that counts command/method invocations.
02Bog Flow
OPENTRIAGEDIN PROGRESSCLOSED

Closed

7/16/2026, 7:59:26 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

keeb commented 7/16/2026, 7:59:24 PM

Good! That's by design. Have fun. @sntxrr

Sign in to post a ripple.