Skip to content

Implement multi-language support, proper support for large logs, customizable notifications and tests - #1

Open
Jorl17 wants to merge 5 commits into
SIXMON:mainfrom
Jorl17:main
Open

Jorl17 wants to merge 5 commits into
SIXMON:mainfrom
Jorl17:main

Conversation

@Jorl17

@Jorl17 Jorl17 commented Sep 20, 2026

Copy link
Copy Markdown

This admittedly completely vibe-coded PR handles:

  • Multi-language support (including changing the notification message) with English and Portuguese (European) as added languages
  • Customizable notification messages
  • An improved log viewer which does not choke on very large logs and supports chunked loading (and unloading)
  • Is entirely backwards compatible (i.e.: literally nothing should change for old users, other than getting the new options defaulting to what they previously had)
  • A very nitpicky change I just had to add: clicking the sidebar brand now takes us to the home page.
  • Backend and frontend tests, as well as a GitHub Actions workflow that runs both of them.

As part of this change, notification channels get a language field (default fr) and optional subject/body overrides. The "live" preview uses the same builder as a real send (POST /api/notifications/preview).

As for the log viewer, the run detail no longer ships the entire log_output blob. Instead, GET /api/runs/{id}/logs returns a window, and the viewer jumps to start/end and loads/unloads chunks as you scroll so a huge log does not sit in memory. List/detail expose log_bytes instead.

I can't 100% confirm that the french texts were not changed during the introduction of localization, but I whipped my best whip with cursor to make sure they didn't.

Test plan (as written entirely by an LLM, and expected to be as useful they are as elbow replacements)

  • First visit with no saved language follows the browser; picking one in the sidebar survives a reload
  • An existing notification channel still sends the old French text until you change it
  • Change a channel's language, leave templates empty, preview, then override subject/body
  • Open a large finished run, jump Start / End, scroll both ways (older chunks load, far-end chunks drop)
  • Click the sidebar brand from Storage or Notifications and land on Tasks
  • CI is green

Jorl17 and others added 5 commits September 19, 2026 06:50
The interface can now run in English, French or Portuguese.
Language starts from the browser, and there is a sidebar
picker if you want to change it.

French stays as it is today. Missing translations fall back
to French. The choice is saved only after you pick one.

Co-authored-by: Cursor <cursoragent@cursor.com>
This builds on the previous commit. Notifications can now
be multilingual as well, and the language is set on each
channel.

Existing channels stay on French with the same wording as
before. You can still override the subject and body; if
those fields are empty, the default text for that language
is used.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adds frontend and backend tests so later changes are
easier to make without breaking language or notification
behaviour.

The READMEs mention how to run them. GitHub Actions runs
both suites on push and pull request.

Co-authored-by: Cursor <cursoragent@cursor.com>
… the full blob

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@Jorl17

Jorl17 commented Sep 20, 2026

Copy link
Copy Markdown
Author

P.S.: Sorry for the massive diff, but I figured that since I'm running this version, might as well contribute back.

It's MUCH smaller than it looks though (a lot of that are the translation strings and adding them in the right places)!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant