feat: add backup CLI commands, AI correction/modifier services, and timezone-aware date display

- 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
+3 -1
View File
@@ -20,7 +20,7 @@ from devplacepy.services.jobs.deepsearch.progress import hub
from devplacepy.services.jobs.deepsearch.service import DeepsearchService
from devplacepy.services.manager import service_manager
from devplacepy.templating import templates
from devplacepy.utils import generate_uid, get_current_user, is_admin, not_found
from devplacepy.utils import generate_uid, get_current_user, is_admin, not_found, track_action
from ._shared import owner_for
@@ -164,6 +164,8 @@ async def deepsearch_run(request: Request, data: Annotated[DeepsearchRunForm, Fo
metadata={"query": data.query, "depth": data.depth, "max_pages": data.max_pages},
links=[audit.job(uid)],
)
if owner_kind == "user":
track_action(owner_id, "deepsearch")
return JSONResponse(
{
"uid": uid,