Repository navigation
Releases: studoo-app/watchoo
Release list
Watchoo v1.3.1
Changelog: CHANGELOG.md.
Docker image: ghcr.io/studoo-app/watchoo:1.3.1.
Watchoo v1.3.0
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 ofwatchoo 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
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 ofwatchoo 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_signaturesandai_scannedon commits;ai_signed_commits,ai_scanned_commits,
ai_tools,languages_scanned_commitsandlanguagesoncontributors.- Database: migration
00008(commits.ai_rules_version, tablecommit_ai_signatures) and migration
00009(commits.languages_version, tablecommit_languages).
Fixed
- Release notes: the footer of the GitHub release (changelog link, Docker image) is in English.
Watchoo v1.1.0
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 withoutghand without any quota.
Newwatchoo 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,sharekey in JSON), on a repository's page and in the
repository detail of the TUI. - Database:
repository_languagestable (migration00007).
Watchoo v1.0.0
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 ofrepo add --flemmeand the comment
ofconfig.yamlnow say "Slacking" in English, like the rest of the interface;flemmeremains the
machine name (state, option, column, setting, JSON keys). - Dates in English: the text outputs of
watchoo sync(resume time),watchoo status(last sync)
andwatchoo 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 (
0success,1any failure, partial
failures included), the complete list of theWATCHOO_*variables, what the JSON contract covers
(compatible additions, texts in the selected language, local IDs,flemme), the values ofstatus
insync --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 (usewatchoo repo import).
Watchoo v0.7.0
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 fromWATCHOO_LANGor the system locale, the web language from
the workspace's newlangsetting (enby default, shared throughwatchoo config export / import); no new dependency (theinternal/i18npackage). Theconfig.yamlwritten by
watchoo initandconfig.example.yamlare now commented in English (in French when the language
is French). - Bilingual install script:
install.shspeaks English by default, French withWATCHOO_LANG=fr
or a French system locale. - Bilingual documentation: the design documentation is now available in English and French,
reorganized into mirror treesdocumentation/en/anddocumentation/fr/with the same numbering
and a bilingual index (INDEX.md); the rootREADME.mdis English with a
README.fr.mdFrench version;AGENTS.mdis 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, orlang: frfor
the web).--jsonkeys and state values do not change; message values follow the language.
Watchoo v0.6.2
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
watchooseul (après la carte et
l'aide) et danswatchoo 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
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 touchea(vue Dépôts) ouvre
une saisie « Dépôt à suivre (owner/nom ou URL GitHub) : » ;entréevalide,échapannule. Mêmes
références, mêmes vérifications et mêmes messages quewatchoo 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 servevé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
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
variableWATCHOO_NO_UPDATE_CHECKest 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: affichev0.5.0 → v0.6.0et le lien vers la release, demande
confirmation (--yes/-ypour 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 --checkvé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=1etWATCHOO_DOCKER=1.
Watchoo v0.5.0
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éesur la vue
Contributeurs ouvre le détail d'un contributeur (totaux, lignes+/-, courbe sur 12 semaines, ses
dépôts, ses derniers commits) ;échaprevient à 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 colonnecontributors.profile_url(migration00005, 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
ghaussi, 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 --numstatpar paquets). Le clone utilise les identifiants Git de la machine
(git.protocol), jamais le token degh; en HTTPS,gh auth setup-gitpermet àgitde
réutiliser le compte degh. 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). Sansgh, rien ne change, sinon que les statistiques couvrent tous les
commits. - Statistiques inconnues ou nulles : la nouvelle colonne
commits.stats_known(migration00006,
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 derepo list --json) gagnestats_knownpour 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+/-dewatchoo 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).