Skip to content

Releases: studoo-app/watchoo

Watchoo v1.3.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 10:03
ef45cf0

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.3.1.

Watchoo v1.3.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 09:24
902512c

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.3.0.

[1.3.0] - 2026-11-03

Sync warnings of each repository in the web interface. No incompatible change: the database is migrated
at the first command; the warnings appear from the next sync.

Added

  • Sync warnings per repository (web): an orange badge with the number of warnings on the dashboard
    card (local Git clone unavailable, line statistics or languages not computed, pull requests, releases
    or tags not read, AI signatures not analyzed), with its consequence under the last commit; a repository
    in error shows the first line of its error. On the repository's page, an alert gives the full message
    of each warning of the last sync (or of the failed sync) and, for the local Git clone, what to check.
    The warnings are recorded with the sync, so they survive a restart of watchoo serve.
  • Database: migration 00010 (sync_runs.warnings).

Changed

  • Sync indicator (web): the warnings badge opens a menu of the repositories concerned, each linked to
    its page, instead of a truncated tooltip; its short labels follow the language of the interface.

Watchoo v1.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 08:19
5ec8261

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.2.0.

[1.2.0] - 2026-11-03

AI signatures declared in the commits, and languages of the contributors. No incompatible change: the
database is migrated at the first command, and the existing commits are analyzed at the next sync, without
any request to the forge.

Added

  • AI signatures: watchoo log, watchoo contributors, the TUI and the web interface show the AI
    tools declared in the commits (co-author line, footer, agent account) for Aider, Claude, Codex,
    GitHub Copilot and Cursor. A signature says a tool was declared, not who wrote the code, and its absence
    proves nothing: no score, no percentage, never "human". Existing commits are analyzed at the next
    sync, without any request to the forge.
  • Languages of a contributor: lines added in each language by the commits of a contributor, with their
    percentage, read from the local Git clone in the same pass as the +/- lines (no extra request). New
    "Languages" card on a contributor's page and main language of each of their repositories, LANGUAGE
    column of watchoo contributors, "Languages" line in the contributor detail of the TUI. Merge commits,
    dependencies and generated files do not count. Existing commits are read again from the clone at the
    next sync; their +/- lines do not change.
  • --json: ai_signatures and ai_scanned on commits; ai_signed_commits, ai_scanned_commits,
    ai_tools, languages_scanned_commits and languages on contributors.
  • Database: migration 00008 (commits.ai_rules_version, table commit_ai_signatures) and migration
    00009 (commits.languages_version, table commit_languages).

Fixed

  • Release notes: the footer of the GitHub release (changelog link, Docker image) is in English.

Watchoo v1.1.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 20:56
4eb5599

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.1.0.

[1.1.0] - 2026-11-02

Languages and share of the contributors for each tracked repository. No incompatible change: the
database is migrated at the first command, and the languages of a repository appear at its next sync.

Added

  • Languages of a repository: languages of the default branch with their percentage (share of the
    bytes), computed at each sync from the local Git clone, with or without gh and without any quota.
    New watchoo languages [--repo X] command (text and --json), "Languages" card on a repository's
    page, "Languages" line in the repository detail of the TUI. Dependencies, generated files, lockfiles,
    data and prose are ignored; the figures are close to those of GitHub, not identical.
  • Share of the contributors: share of the commits of each contributor as a percentage, in
    watchoo contributors (SHARE column, share key in JSON), on a repository's page and in the
    repository detail of the TUI.
  • Database: repository_languages table (migration 00007).

Watchoo v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 22:09
14d08e6

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.0.0.

[1.0.0] - 2026-11-01

First stable release: after one more week of real usage, the public surface (commands, options,
exit codes, --json keys, config.yaml settings and WATCHOO_* variables, database schema, web
routes) is reviewed, documented and declared stable. From now on, an incompatible change requires a
new major version. No incompatible change compared with 0.7.0: workspaces, databases and scripts
keep working as they are.

Changed

  • Versioning: SemVer applies fully: incompatible change → MAJOR, compatible feature → MINOR,
    compatible fix → PATCH; what is to be removed is first marked deprecated.
  • "Slacking" in English: watchoo status (text), the help of repo add --flemme and the comment
    of config.yaml now say "Slacking" in English, like the rest of the interface; flemme remains the
    machine name (state, option, column, setting, JSON keys).
  • Dates in English: the text outputs of watchoo sync (resume time), watchoo status (last sync)
    and watchoo contributors --weeks (columns) write the month before the day in English
    (10/27/2026, 10/12); unchanged in French.
  • Documentation of the public surface: exit codes (0 success, 1 any failure, partial
    failures included), the complete list of the WATCHOO_* variables, what the JSON contract covers
    (compatible additions, texts in the selected language, local IDs, flemme), the values of status
    in sync --json, and the complete list of the web routes; the test of the JSON contract now
    checks the English documentation as well as the French one.

Removed

  • From the documentation only (never built): watchoo repo add-org (planned for V3) and the CSV import
    in the web interface (use watchoo repo import).

Watchoo v0.7.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 21:23
a0314c0

Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:0.7.0.

[0.7.0] - 2026-11-01

Bilingual interface: English by default, French on demand, for the CLI, the TUI, the web interface
and the install script; bilingual documentation.

Added

  • Bilingual interface: the CLI, TUI and web interface are available in English (default) and
    French; the CLI/TUI language comes from WATCHOO_LANG or the system locale, the web language from
    the workspace's new lang setting (en by default, shared through watchoo config export / import); no new dependency (the internal/i18n package). The config.yaml written by
    watchoo init and config.example.yaml are now commented in English (in French when the language
    is French).
  • Bilingual install script: install.sh speaks English by default, French with WATCHOO_LANG=fr
    or a French system locale.
  • Bilingual documentation: the design documentation is now available in English and French,
    reorganized into mirror trees documentation/en/ and documentation/fr/ with the same numbering
    and a bilingual index (INDEX.md); the root README.md is English with a
    README.fr.md French version; AGENTS.md is English. Any change to a document is mirrored in the
    other language in the same commit.

Changed

  • English by default: messages, help, tables, dates ("2 h ago", "~ 9 d") and web pages are now
    in English unless French is selected (WATCHOO_LANG=fr, a French system locale, or lang: fr for
    the web). --json keys and state values do not change; message values follow the language.

Watchoo v0.6.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 08:12
08378a0

Journal des modifications : CHANGELOG.md.
Image Docker : ghcr.io/studoo-app/watchoo:0.6.2.

[0.6.2] - 2026-10-27

Avis de nouvelle version rétabli pour watchoo seul et dans watchoo tui, et plus jamais perdu après
une commande longue.

Corrigé

  • Avis de nouvelle version : il s'affiche maintenant aussi pour watchoo seul (après la carte et
    l'aide) et dans watchoo tui, sur la ligne sous l'en-tête (« Quittez puis lancez « watchoo update ». ») ;
    il n'est plus perdu, une fois sur deux, après une commande plus longue que 1,5 s (sync).

Watchoo v0.6.1

Choose a tag to compare

@github-actions github-actions released this 27 Oct 21:37
fe7f71a

Journal des modifications : CHANGELOG.md.
Image Docker : ghcr.io/studoo-app/watchoo:0.6.1.

[0.6.1] - 2026-10-27

Ajout d'un dépôt depuis le TUI (touche a), lien « GitHub » rétabli pour les contributeurs connus
avant la 0.5.0, et vérification des nouvelles versions toutes les 30 min dans watchoo serve.

Ajouté

  • Ajout d'un dépôt depuis le mode interactif : dans watchoo tui, la touche a (vue Dépôts) ouvre
    une saisie « Dépôt à suivre (owner/nom ou URL GitHub) : » ; entrée valide, échap annule. Mêmes
    références, mêmes vérifications et mêmes messages que watchoo repo add (toutes les branches, sans
    label ni seuils propres). Une fois le dépôt ajouté, la liste est relue, le dépôt sélectionné et sa
    synchro lancée ; pendant une synchro, celle du nouveau dépôt démarre à la fin de la synchro en cours.

Modifié

  • watchoo serve vérifie s'il existe une nouvelle version de Watchoo toutes les 30 min (au lieu de
    toutes les 24 h) : le bandeau de l'interface web apparaît peu après la publication d'une release.

Corrigé

  • Lien « GitHub » absent pour les contributeurs connus avant la 0.5.0 (login enregistré, adresse du
    profil vide, car les commits déjà en base ne sont pas relus) : l'adresse est désormais complétée à
    partir du login à la synchro suivante, par l'API comme par les clones Git locaux, sans requête
    supplémentaire.

Watchoo v0.6.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 20:29
617b962

Journal des modifications : CHANGELOG.md.
Image Docker : ghcr.io/studoo-app/watchoo:0.6.0.

[0.6.0] - 2026-10-27

Avis de nouvelle version (CLI et interface web) et mise à jour de Watchoo en une commande,
watchoo update.

Ajouté

  • Avis de nouvelle version : à chaque commande, Watchoo vérifie en arrière-plan (1,5 s au plus, sans
    jamais retarder davantage la commande) si une version plus récente est publiée, et l'annonce à la fin
    sur la sortie d'erreur. Rien avec --json, hors terminal, pour une version de développement, ni si la
    variable WATCHOO_NO_UPDATE_CHECK est posée (c'est le cas dans l'image Docker). watchoo serve
    vérifie au démarrage puis toutes les 24 h, et l'interface web montre alors un bandeau discret sur
    toutes les pages, avec le lien vers la release.
  • Commande watchoo update : affiche v0.5.0 → v0.6.0 et le lien vers la release, demande
    confirmation (--yes / -y pour s'en passer), télécharge l'archive de la release pour le système,
    vérifie sa somme SHA-256 et remplace le binaire d'un bloc. watchoo update --check vérifie seulement
    (--json : current, latest, update_available, release_url). Refus expliqué dans l'image
    Docker (changer le tag), pour une version compilée depuis les sources et si le répertoire du binaire
    n'est pas accessible en écriture. Seules les pages publiques des releases de Watchoo sont lues : ni
    token, ni API GitHub, ni quota.
  • Image Docker : variables WATCHOO_NO_UPDATE_CHECK=1 et WATCHOO_DOCKER=1.

Watchoo v0.5.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 14:37
2aa4db5

Journal des modifications : CHANGELOG.md.
Image Docker : ghcr.io/studoo-app/watchoo:0.5.0.

[0.5.0] - 2026-10-27

Page par contributeur avec lien vers son profil GitHub, et lignes ajoutées et supprimées de tous les
commits, calculées depuis un clone Git de chaque dépôt.

Ajouté

  • Page par contributeur : l'interface web gagne la page /contributors/{id} : nom, login, avatar et
    nombre d'identités Git connues (jamais les adresses), totaux (commits, lignes ajoutées et supprimées,
    « — » si inconnues, dépôts, premier et dernier commit), commits par jour sur 90 jours, commits par
    semaine et par dépôt sur 12 semaines (table des données repliable), ses dépôts (commits, lignes,
    dernier commit, état du dépôt), ses commits paginés (50 par page) et ses pull requests, rapprochées par
    son compte GitHub quand il est connu. Le nom d'un contributeur y mène depuis le classement des
    contributeurs, les tables des graphiques par contributeur, les contributeurs de la page d'un dépôt,
    l'auteur des commits des historiques et du tableau de bord. Dans le TUI, entrée sur la vue
    Contributeurs ouvre le détail d'un contributeur (totaux, lignes +/-, courbe sur 12 semaines, ses
    dépôts, ses derniers commits) ; échap revient à la liste.
  • Lien vers le profil GitHub des contributeurs dont le compte est connu, partout où l'interface web
    en montre un (lien secondaire « GitHub », nouvel onglet). L'adresse est celle que donne l'API GitHub,
    enregistrée dans la nouvelle colonne contributors.profile_url (migration 00005, appliquée
    automatiquement) ; pour les contributeurs déjà en base, elle arrive avec leur prochain commit lu par
    l'API. Aucun lien pour un contributeur connu seulement par Git (clones Git locaux).

Modifié

  • Toujours cloner : avec gh aussi, chaque dépôt suivi a désormais son clone Git local dans
    repos/ (créé à la première synchro, mis à jour à chacune). L'API reste la source des commits, des
    métadonnées, des logins, des pull requests, des releases et des tags ; le clone donne les lignes
    ajoutées et supprimées de tous les commits
    , premier import compris, sans plafond ni quota
    (git diff-tree --numstat par paquets). Le clone utilise les identifiants Git de la machine
    (git.protocol), jamais le token de gh ; en HTTPS, gh auth setup-git permet à git de
    réutiliser le compte de gh. Si le clone d'un dépôt est indisponible, la synchro du dépôt réussit
    quand même : ses statistiques sont demandées à l'API comme avant (au plus 100 nouveaux commits par
    synchro), avec un avertissement dans le bilan (watchoo sync, TUI, indicateur de synchro du web).
    repos/ occupe à peu près la taille des dépôts suivis, et la première synchro d'un dépôt est plus
    lente (clone complet). Sans gh, rien ne change, sinon que les statistiques couvrent tous les
    commits.
  • Statistiques inconnues ou nulles : la nouvelle colonne commits.stats_known (migration 00006,
    appliquée automatiquement) distingue un commit dont les lignes sont inconnues (« — ») d'un commit
    réellement à +0 −0 (merge sans changement, commit vide), qui affiche désormais ses zéros. Les
    commits déjà en base sans statistiques sont calculés par le clone à la synchro suivante. watchoo log --json (et le dernier commit de repo list --json) gagne stats_known pour chaque commit.
  • Lignes par commit et totaux partout : chaque liste de commits montre les lignes +/- du commit
    (« — » si inconnues) : fil du tableau de bord, historique d'un dépôt, commits d'un contributeur, vue
    Commits et détails du TUI, colonne +/- de watchoo log. Les totaux sont donnés par contributeur,
    par dépôt (carte du tableau de bord, en-tête et contributeurs de la page d'un dépôt, détail du TUI)
    et pour tout l'espace (compteur « Lignes » du tableau de bord), avec « (dont N commits non comptés) »
    quand une partie des commits n'a pas encore de statistiques.
  • L'indicateur de synchro du web compte les avertissements du dernier bilan (détail en infobulle).