Compare commits
base: retoor:a944338c906714847e849acc0eb977fc7521da19
retoor:master
retoor:typosaurus/ticket-152
retoor:typosaurus/ticket-150
retoor:typosaurus/ticket-148
retoor:typosaurus/ticket-146
retoor:typosaurus/132-missing-notification-when-another-user-comments-on-a-post-th
retoor:typosaurus/134-cosmetic-title-replaces-clickable-username-on-leaderboard
retoor:typosaurus/112-expose-level-progress-percentage-in-profile-api-response
retoor:typosaurus/113-fix-badge-names-returning-null-in-profile-endpoint
retoor:typosaurus/138-fix-navigation-bar-link-icons-and-text-appearing-on-separate
retoor:typosaurus/ticket-138
retoor:typosaurus/ticket-135
retoor:typosaurus/ticket-132
retoor:typosaurus/ticket-110
retoor:typosaurus/ticket-116
retoor:typosaurus/ticket-113
retoor:typosaurus/ticket-114
retoor:typosaurus/ticket-111
retoor:typosaurus/ticket-112
retoor:typosaurus/ticket-106
retoor:typosaurus/ticket-104
retoor:typosaurus/ticket-84
retoor:typosaurus/ticket-93
retoor:typosaurus/ticket-73
retoor:typosaurus/ticket-89
retoor:typosaurus/ticket-85
retoor:typosaurus/ticket-86
retoor:typosaurus/ticket-88
retoor:typosaurus/ticket-105
retoor:typosaurus/ticket-95
retoor:typosaurus/ticket-102
retoor:typosaurus/ticket-91
retoor:typosaurus/ticket-90
retoor:typosaurus/ticket-87
retoor:typosaurus/ticket-72
retoor:typosaurus/ticket-81
retoor:typosaurus/ticket-83
retoor:typosaurus/ticket-78
retoor:typosaurus/ticket-74
retoor:typosaurus/ticket-82
retoor:typosaurus/ticket-97
retoor:typosaurus/ticket-99
retoor:typosaurus/ticket-68
retoor:typosaurus/ticket-66
retoor:typosaurus/ticket-75
retoor:typosaurus/ticket-61
retoor:typosaurus/ticket-44
retoor:typosaurus/ticket-57
retoor:typosaurus/ticket-48
retoor:typosaurus/ticket-64
retoor:typosaurus/ticket-94
retoor:typosaurus/ticket-103
retoor:typosaurus/ticket-26
retoor:typosaurus/ticket-71
retoor:typosaurus/ticket-7
retoor:typosaurus/ticket-70
retoor:typosaurus/ticket-10
retoor:typosaurus/ticket-65
retoor:typosaurus/ticket-69
retoor:typosaurus/ticket-67
retoor:typosaurus/ticket-76
retoor:typosaurus/ticket-21
retoor:production
..
compare: retoor:15bd4ad87c7641397e75a2ded53b263ff4a4093f
retoor:master
retoor:typosaurus/ticket-152
retoor:typosaurus/ticket-150
retoor:typosaurus/ticket-148
retoor:typosaurus/ticket-146
retoor:typosaurus/132-missing-notification-when-another-user-comments-on-a-post-th
retoor:typosaurus/134-cosmetic-title-replaces-clickable-username-on-leaderboard
retoor:typosaurus/112-expose-level-progress-percentage-in-profile-api-response
retoor:typosaurus/113-fix-badge-names-returning-null-in-profile-endpoint
retoor:typosaurus/138-fix-navigation-bar-link-icons-and-text-appearing-on-separate
retoor:typosaurus/ticket-138
retoor:typosaurus/ticket-135
retoor:typosaurus/ticket-132
retoor:typosaurus/ticket-110
retoor:typosaurus/ticket-116
retoor:typosaurus/ticket-113
retoor:typosaurus/ticket-114
retoor:typosaurus/ticket-111
retoor:typosaurus/ticket-112
retoor:typosaurus/ticket-106
retoor:typosaurus/ticket-104
retoor:typosaurus/ticket-84
retoor:typosaurus/ticket-93
retoor:typosaurus/ticket-73
retoor:typosaurus/ticket-89
retoor:typosaurus/ticket-85
retoor:typosaurus/ticket-86
retoor:typosaurus/ticket-88
retoor:typosaurus/ticket-105
retoor:typosaurus/ticket-95
retoor:typosaurus/ticket-102
retoor:typosaurus/ticket-91
retoor:typosaurus/ticket-90
retoor:typosaurus/ticket-87
retoor:typosaurus/ticket-72
retoor:typosaurus/ticket-81
retoor:typosaurus/ticket-83
retoor:typosaurus/ticket-78
retoor:typosaurus/ticket-74
retoor:typosaurus/ticket-82
retoor:typosaurus/ticket-97
retoor:typosaurus/ticket-99
retoor:typosaurus/ticket-68
retoor:typosaurus/ticket-66
retoor:typosaurus/ticket-75
retoor:typosaurus/ticket-61
retoor:typosaurus/ticket-44
retoor:typosaurus/ticket-57
retoor:typosaurus/ticket-48
retoor:typosaurus/ticket-64
retoor:typosaurus/ticket-94
retoor:typosaurus/ticket-103
retoor:typosaurus/ticket-26
retoor:typosaurus/ticket-71
retoor:typosaurus/ticket-7
retoor:typosaurus/ticket-70
retoor:typosaurus/ticket-10
retoor:typosaurus/ticket-65
retoor:typosaurus/ticket-69
retoor:typosaurus/ticket-67
retoor:typosaurus/ticket-76
retoor:typosaurus/ticket-21
retoor:production
4 Commits
a944338c90
...
15bd4ad87c
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 15bd4ad87c |
feat: add backup CLI commands, AI correction/modifier services, and timezone-aware date display
Some checks failed
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` |
|||
| e59bc2d34e |
feat: adopt per-bot account api key for gateway attribution and improve post distinctness
- Add `account_api_key` field to `BotState` and `_adopt_account_api_key()` method that fetches the bot's own `users.api_key` from its profile JSON after auth, switching `LLMClient` to use it instead of the shared bootstrap key, routing gateway spend through the bot's user identity - Replace `interleave_by_author` with a simpler greedy algorithm that picks the first row whose owner differs from the last picked, removing the multi-queue priority logic - Extend `_ai_quota` response with `unlimited`, `requests`, and `last_used` fields sourced from new `user_spend_24h()` analytics helper - Pass `recent_post_titles` from `BotState` into `LLMClient.generate_post()` and add a `distinct_rule` prompt instructing the model to avoid repeating framing, examples, or opinions from the bot's last six posts - Remove early-return dedup check in `ArticleRegistry.admit` that skipped articles already held by the same bot owner, allowing re-admission under a different category - Render bot username as a clickable link with avatar in the admin bots table |
|||
| 5dd2126511 |
feat: add gist comment form and extend comment container selector to include gist-card
Add the comment form inclusion to the gist card template by setting the target uid and type variables before rendering the shared `_comment_form.html` partial. Also update the `CommentManager.js` closest selector to include `.gist-card` alongside `.post-card` and `.comments-section`, ensuring the comment source lookup works correctly for gist comment forms. |
|||
| 6b08761af5 |
feat: add audio file support and expand allowed upload types with new MIME mappings
Extend ALLOWED_UPLOAD_TYPES dict with audio formats (wav, flac, ogg, aac, wma, m4a), video formats (avi, mkv, flv, wmv, 3gp), document formats (doc, docx, xls, xlsx, ppt, pptx, odt, rtf), code formats (ts, java, cpp, c, h, rb, go, rs, sql, php, swift, kt), config formats (cfg, ini, log), archive formats (tar, gz, rar, 7z), and additional web formats (html, json, xml, yaml, yml, toml, sh, bat, svg). Add corresponding MIME_TO_EXT reverse mappings. Implement audio element rendering in ContentRenderer.js with audioExtRe regex and createAudioElement method. Add gallery-audio CSS class for audio player styling in attachments.css and media.css. Update _attachment_display.html and _media_gallery.html templates to render audio controls for is_audio attachments. |