Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

Automated Reddit moderation log publisher — writes mod actions to a subreddit wiki page on a schedule.

## Stack
The supported runtime is the Devvit Web app `autowikimod` in `devvit/` (TypeScript, Redis, cron). The Python bot below is deprecated: critical fixes only, no new features. `modlog_wiki_publisher.py` stays as the parity reference for `devvit/test/parity/`, so do not delete it.

## Stack (deprecated Python bot)
- Python 3.11 / PRAW (Reddit API)
- SQLite (deduplication and retention)
- Docker with s6-overlay (deployment)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Publishes a subreddit's moderation log to a wiki page as daily markdown tables. Each row links to the post or comment (never a user profile), shows the removal reason text, and carries a prefilled modmail inquiry link. A SQLite database handles deduplication and retention, and one database can serve several subreddits.

A Reddit-hosted port, `autowikimod`, is in progress under [`devvit/`](devvit/) (no self-hosting, bot password, or SQLite). Status is in [`devvit-migration/README.md`](devvit-migration/README.md). The Python app below is the supported version.
> **Deprecated.** The supported runtime is now the Reddit-hosted [Devvit](https://developers.reddit.com/) app `autowikimod` in [`devvit/`](devvit/). It needs no self-hosting, no bot password and no SQLite. Install it from the Devvit app directory and set the wiki page in the app's subreddit settings. The Python bot documented below gets no new features and only critical fixes. It depends on password-grant Data API access, which Reddit is closing for unregistered scripts. See [`devvit/README.md`](devvit/README.md) and [`devvit-migration/docs/STATUS.md`](devvit-migration/docs/STATUS.md).

## Quick start (Docker)

Expand Down
2 changes: 1 addition & 1 deletion devvit-migration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ Re-platforming the Python/PRAW **Reddit Modlog Wiki Publisher** into a **Devvit*

## Status

Ported to Devvit Web; type-check, tests, build and Python parity pass offline. Awaiting upload and a live run on r/OpenSignups. See [`docs/STATUS.md`](docs/STATUS.md). `docs/01..04` describe the earlier classic-model design.
`autowikimod` is the supported runtime. Version 0.0.3 is published (unlisted) and has run on r/OpenSignups since 2026-10-18. The Python container was retired the same day. See [`docs/STATUS.md`](docs/STATUS.md). `docs/01..04` describe the earlier classic-model design.
22 changes: 19 additions & 3 deletions devvit-migration/docs/STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

| Field | Value |
| --- | --- |
| Status | Ported to Devvit Web. Type-check, unit tests, build and Python parity pass offline. Not yet uploaded or playtested. |
| Date | 2026-10-15 |
| Status | Supported runtime. 0.0.3 published unlisted and installed on r/OpenSignups (page `modlog-devvit`). The Python container is being retired at cutover; its wiki page was archived to `modlog-archive` first. |
| Date | 2026-10-20 |
| Branch | `feat/devvit-web` |
| App name | `autowikimod` (`devvit/devvit.json`) |
| Code root | `devvit/` (`@devvit/web` 0.14.8, Hono server, `@devvit/start` vite build to `dist/server/index.cjs`) |
Expand Down Expand Up @@ -40,7 +40,23 @@
| Action list | stored but not used for the page (`show_only_removals=True`) | drives the page filter | Same output at the default list. |
| Fetch size | 50 per 10 min | 500 per 20 min | Fewer, larger runs; dedup makes overlap harmless. |

## Needs a live playtest
## Live run on r/OpenSignups

| Check | Result |
| --- | --- |
| Install | 0.0.3 installed 2026-10-18; first write to `modlog-devvit` at 03:20 UTC (204 rows, 500 actions). |
| Side-by-side with Python `modlog` | One overlap, 2026-10-18 03:20-03:42 UTC. Shared window from 2026-09-05: 190 of 196 rows identical. 3 differ by a since-deleted author name, and 3 by an approval reason that Python's `LIKE` match took from another target. |
| Cron | 7 revisions by `autowikimod` from 2026-10-18 to 2026-10-19; each new qualifying action is on the page. |
| FR-8 | Approvals with no prior Reddit/AutoModerator removal are left out, as in Python. |
| History | The first run reads the last 500 mod-log entries only, so the page starts at 2026-09-05. The Python page went back to 2026-07-15. |

## Production cutover (open)

1. In the r/OpenSignups app settings, set the wiki page to `modlog` and days kept to 365.
2. Run "Publish now" from the subreddit menu and check the `modlog` page revision author is `autowikimod`.
3. Keep `modlog-devvit` as an archive, or delete it.

## Needs a live playtest (items 1-4 and 7 now pass on r/OpenSignups)

Typed and unit-tested offline, but not yet run on Reddit:

Expand Down
Loading