feat: add backup CLI commands, AI correction/modifier services, and timezone-aware date display
DevPlace CI / test (push) Failing after 25m18s

- Add `devplace backups` CLI subcommands (list, run, prune, clear) with job enqueueing and orphan cleanup
- Introduce `BACKUPS_DIR` and `BACKUP_STAGING_DIR` config paths for backup storage
- Implement `schedule_correction` and `schedule_modification` calls in content creation, comment creation, and comment editing flows
- Add `DEFAULT_CORRECTION_PROMPT` and `DEFAULT_MODIFIER_PROMPT` config constants for AI content processing
- Document timezone-aware date display using `local_dt`/`dt_ago` Jinja globals with client-side `Intl` localization
- Update README with AI content correction/modifier support in direct messages via `@ai` inline instructions
- Add `track_action(user["uid"], "vote")` call on upvote in `apply_vote`
This commit is contained in:
2026-06-16 03:32:19 +00:00
parent e59bc2d34e
commit 15bd4ad87c
115 changed files with 5839 additions and 187 deletions
@@ -9,10 +9,14 @@ on an issue you filed. You decide which reach you, and how.
Each notification type is delivered on two independent channels:
- **In-app** - the notification appears on DevPlace (the bell in the top navigation and the
`/notifications` page).
`/notifications` page). While you have DevPlace open, an enabled in-app notification also raises a
live, click-through toast in real time, and the unread bell and message badges update instantly,
so you see it without reloading.
- **Push** - a native web push notification is sent to the devices where you enabled push.
The channels are independent: you can keep a type in-app but silence its push, or the reverse.
The channels are independent: you can keep a type in-app but silence its push, or the reverse. The
live toast rides the in-app channel: silence a type's in-app box and it neither lands in your bell nor
pops a toast.
## Where to find it