You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 47dadca
Browse filesBrowse the repository at this point in the historyBrowse files
feat(devvit): port to Devvit Web (autowikimod) (#79)
Ports `devvit/` from the classic `@devvit/public-api` scaffold to Devvit
Web as `autowikimod`, ahead of the Data API closing to unregistered apps
on 2027-01-12.
- `devvit.json` + Hono `/internal/*` server on `@devvit/web` 0.14.8,
built to `dist/server/index.cjs` with `@devvit/start`.
- Cron publish every 20 min. `onModAction` dropped: its payload carries
no reason text and the cron already reads the mod log.
- Renderer ported from `build_wiki_content`. FR-7 merges a removal with
its `addremovalreason`. FR-8 shows approvals only when they reverse a
Reddit/AutoModerator removal, looked up in a Redis hash keyed by target
id.
- Settings: wiki page (default `modlog-devvit` for side-by-side
cutover), days shown/kept (90), action list, anonymize (cannot be
disabled), ignored moderators. Menu: Publish now, Force rebuild, Test
connection.
- 42 Vitest tests (render, correlation, settings, Redis store on
`@devvit/test`, publish cycle). The golden parity test runs a fixture
through the unmodified Python publisher and requires byte-identical TS
output; CI regenerates the golden with uv and fails on drift.
- New `devvit.yml` workflow on the `hetzner` runner.
Not yet uploaded or playtested. Deliberate differences from Python and
the live-playtest list are in `devvit-migration/docs/STATUS.md`.
Supersedes #72 (public-api bump) since the classic package is removed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
Automatically publishes Reddit moderation logs to a subreddit wiki page with modmail inquiry links.
6
6
7
-
> **🧪 Devvit migration in progress.** A re-platform of this bot to a Reddit-hosted [Devvit](https://developers.reddit.com/) app (no self-hosting, no bot password, no SQLite) is being scaffolded under [`devvit/`](devvit/)with requirements, research, and architecture docs in [`devvit-migration/docs/`](devvit-migration/). The Python app documented below remains the supported version. See [`devvit-migration/README.md`](devvit-migration/README.md) for status.
7
+
> **🧪 Devvit migration in progress.** A re-platform of this bot to a Reddit-hosted [Devvit](https://developers.reddit.com/) app (no self-hosting, no bot password, no SQLite) lives under [`devvit/`](devvit/)as the Devvit Web app `autowikimod`, with design docs in [`devvit-migration/docs/`](devvit-migration/). The Python app documented below remains the supported version. See [`devvit-migration/README.md`](devvit-migration/README.md) for status.
@@ -21,10 +21,8 @@ Re-platforming the Python/PRAW **Reddit Modlog Wiki Publisher** into a **Devvit*
21
21
-[`docs/04-architecture.md`](docs/04-architecture.md) — module layout, Redis key schema, execution model, settings schema, phased plan, gap list
22
22
-[`docs/STATUS.md`](docs/STATUS.md) — what is scaffolded vs. TODO, mapped to the parity matrix
23
23
-[`docs/reddit-api/`](docs/reddit-api/) — stored Devvit API reference snippets
24
-
-[`../devvit/`](../devvit/) — the Devvit app scaffold (TypeScript; compiles clean via `tsc --noEmit`)
24
+
-[`../devvit/`](../devvit/) — the Devvit Web app (`autowikimod`)
25
25
26
26
## Status
27
27
28
-
Scaffold stage: requirements + research + architecture complete; component modules (`storage`, `modlog`, `render`, `wiki`, `settings`, `menu`, `main`) written and type-checking clean. Not yet `devvit upload`-tested against a live test subreddit. See [`docs/STATUS.md`](docs/STATUS.md).
29
-
30
-
This scaffold was produced by a multi-agent scrum (requirements → research → architecture → per-component implementation → scaffold). Treat the generated TypeScript as a reviewed starting point, not a shipped app — every Devvit API call should be validated in `devvit playtest` before publishing.
28
+
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.
0 commit comments