Commit graph

938 commits

Author SHA1 Message Date
349c881087 [UPD] script manifest update with merge configuration manifest 2026-08-07 02:08:58 -04:00
055c0fd4ef Merge branch 'develop_agent_ia'
Improve claude agent, support mobile by claude, git commit aligned with
AI policy
2026-08-07 02:04:58 -04:00
b4b95042ef [UPD] claude: align the commit command with the AI policy
The template wrote « Generated by Claude Code », the form AI_POLICY.md
replaces with the Assisted-by trailer. Three defects rode along: the model
came from ~/.claude/settings.json, which has no model key here, so it
declared the sonnet default rather than the truth; --author alone failed on
the committer, this checkout having no git identity; and [UPD] was missing
from the tag table while being the most used tag, 134 of the last 400.

The model now comes from the session transcript, the only source that
follows a /model switch — checked, it prints Claude Opus 5. The timezone is
left to the system so contributors keep their own, and the menu substitutes
name and email separately, the placeholders no longer being adjacent.

--- FR ---

Le gabarit écrivait « Generated by Claude Code », la forme que AI_POLICY.md
remplace par le trailer Assisted-by. Trois défauts l'accompagnaient : le
modèle venait de ~/.claude/settings.json, sans clé model ici, si bien qu'il
déclarait le défaut sonnet plutôt que la vérité ; --author seul échouait sur
le committer, ce checkout n'ayant aucune identité git ; et [UPD] manquait au
tableau des tags alors qu'il est le plus utilisé, 134 des 400 derniers.

Le modèle vient désormais de la transcription de session, seule source qui
suive un changement par /model — vérifié, elle rend Claude Opus 5. Le fuseau
est laissé au système, pour que chaque contributeur garde le sien, et le
menu substitue nom et courriel séparément, les jetons n'étant plus accolés.

Assisted-by: Claude Opus 5
2026-08-07 01:56:11 -04:00
e5582e2427 [ADD] doc: adopt the OCA generative AI policy
ERPLibre had no position on AI-assisted contribution while its own history
already carried AI trailers — and carried them in the one field the OCA
policy forbids, Co-authored-by, whose meaning for a machine is legally
undefined.

The policy is adopted rather than reinvented: the file summarises it and
points at the OCA document as the reference, so it cannot drift from
upstream. What it keeps is what a contributor here needs in front of them —
the Assisted-by trailer with one line per model, the ban on AI in authorship
fields, the size and pace expectations, and the fact that responsibility does
not transfer to a tool.

Written as AI_POLICY.base.md, like README, CHANGELOG and TODO: « make
doc_markdown » globs every *.base.md, so a plain .md here would be
overwritten or, worse, silently left out of the bilingual set.

--- FR ---

ERPLibre n'avait aucune position sur la contribution assistée par IA, alors
que son propre historique portait déjà des trailers d'IA — et les portait
dans le seul champ que la politique de l'OCA interdit, Co-authored-by, dont
le sens pour une machine est juridiquement indéfini.

La politique est adoptée plutôt que réinventée : le fichier la résume et
désigne le document de l'OCA comme référence, si bien qu'il ne peut pas
diverger de l'amont. Il retient ce qu'un contributeur d'ici doit avoir sous
les yeux : le trailer Assisted-by, une ligne par modèle, l'interdiction de
l'IA dans les champs de paternité, les attentes de taille et de rythme, et le
fait que la responsabilité ne se transfère pas à un outil.

Écrit en AI_POLICY.base.md, comme README, CHANGELOG et TODO : « make
doc_markdown » balaie tous les *.base.md, si bien qu'un simple .md ici serait
écrasé ou, pire, silencieusement laissé hors de la paire bilingue.

Source: https://github.com/dixmit/oca.github/blob/ai_policy/AI_POLICY.md
Assisted-by: Claude Opus 5
2026-08-07 01:16:20 -04:00
be93d3d90c [REF] claude: trim the always-loaded guidance, and fix what it got wrong
Every session paid ~4 000 tokens for CLAUDE.md and .claude/rules/, and part of
that content no longer described this repository:

  CLAUDE.md and 05-environments.md gave .venv.odoo18/bin/python — a path that
  does not exist. The real one carries BOTH versions,
  .venv.odoo18.0_python3.12.10. 02-project-structure.md announced addons/ and
  odoo12.0/, absent from the checkout.

That is the reason for the cuts, more than the token count: the files drifted
from the repository, while « ls » cannot. What a session can rebuild by
reading the code is now left to the code.

  02-project-structure.md   deleted — a tree that ls gives, and gives right
  05-environments.md        deleted — a venv list that was simply false
  04-code-conventions.md    reduced to a pointer at .flake8, .editorconfig and
                            pyproject.toml, which already hold every value it
                            repeated, plus the Git conventions, which they
                            do not
  01-versions.md            table dropped for the pointer at
                            conf/supported_version_erplibre.json, whose keys
                            already pair Odoo with Python

Two blocks move to lazy loading — their body costs nothing until invoked:

  03-commands.md      -> skill erplibre-commands (kept whole: there is no
                         « make help » target, and the per-module test recipes
                         carry flags nobody would guess)
  07-documentation.md -> skill erplibre-doc-i18n for the how-to, while the
                         prohibition « never edit a generated .md » STAYS in
                         the rules: a rule that must hold at all times cannot
                         live in a file loaded on demand

Resident guidance: ~3 997 -> ~1 939 est. tokens per session.

--- FR ---

Chaque session payait environ 4 000 jetons pour CLAUDE.md et .claude/rules/, et
une partie de ce contenu ne décrivait plus ce dépôt :

  CLAUDE.md et 05-environments.md donnaient .venv.odoo18/bin/python — un chemin
  qui n'existe pas. Le vrai porte les DEUX versions,
  .venv.odoo18.0_python3.12.10. 02-project-structure.md annonçait addons/ et
  odoo12.0/, absents du checkout.

C'est la raison des coupes, plus encore que le nombre de jetons : les fichiers
avaient dérivé par rapport au dépôt, ce que « ls » ne peut pas faire. Ce qu'une
session peut reconstruire en lisant le code est désormais laissé au code.

  02-project-structure.md   supprimé — une arborescence que ls donne, et donne
                            juste
  05-environments.md        supprimé — une liste de venvs simplement fausse
  04-code-conventions.md    réduit à un renvoi vers .flake8, .editorconfig et
                            pyproject.toml, qui portent déjà toutes les valeurs
                            qu'il répétait, plus les conventions Git, qu'ils ne
                            portent pas
  01-versions.md            tableau abandonné au profit du renvoi vers
                            conf/supported_version_erplibre.json, dont les clés
                            apparient déjà Odoo et Python

Deux blocs passent en chargement paresseux — leur corps ne coûte rien tant
qu'il n'est pas invoqué :

  03-commands.md      -> skill erplibre-commands, conservée entière : il
                         n'existe pas de cible « make help », et les recettes
                         de test par module portent des drapeaux que personne
                         ne devinerait
  07-documentation.md -> skill erplibre-doc-i18n pour le mode d'emploi, tandis
                         que l'interdiction « ne jamais éditer un .md généré »
                         RESTE dans les règles : une règle qui doit tenir en
                         permanence ne peut pas vivre dans un fichier chargé à
                         la demande

Consignes résidentes : environ 3 997 -> 1 939 jetons estimés par session.

Assisted-by: Claude Opus 4.8
2026-08-07 01:15:33 -04:00
e2901526bf [ADD] claude: add /mobile slash command for mobile dev guidance
Provides Claude Code with structured context about the
ERPLibre Home Mobile project (OWL 2, Capacitor 8, Vite,
Vitest, SQLite) including stack, conventions, commands,
and migration patterns.

--- FR ---

Fournit à Claude Code un contexte structuré sur le projet ERPLibre Home
Mobile — OWL 2, Capacitor 8, Vite, Vitest, SQLite — incluant la pile
technique, les conventions, les commandes et les motifs de migration.

Assisted-by: Claude Sonnet 4.6
2026-08-07 01:06:26 -04:00
92e711d5a1 [UPD] claude: drop the redundant « model » from the commit template 2026-08-07 01:05:41 -04:00
394be35324 [ADD] contracts: add Odoo sync API contract and note mapping
Define the integration contract between erplibre_mobile and ERPLibre
platform: JSON-RPC 2.0 call specs, Note→project.task field mapping,
GeoMultiPoint format for geolocation entries, conflict resolution
strategy, re-auth flow, and version compatibility matrix.
Establishes the shared source of truth before implementation begins.

--- FR ---

Définit le contrat d'intégration entre erplibre_mobile et la plateforme
ERPLibre : spécifications des appels JSON-RPC 2.0, correspondance des champs
Note→project.task, format GeoMultiPoint pour les entrées de géolocalisation,
stratégie de résolution des conflits, flux de réauthentification et matrice
de compatibilité des versions. Établit la source de vérité commune avant que
l'implémentation ne commence.

Assisted-by: Claude Sonnet 4.6
2026-08-07 01:05:37 -04:00
fd3506351d [ADD] .claude settings local permission 2026-08-07 01:05:20 -04:00
0ab71279b0 [ADD] claude_agents: add feature orchestrator and /feature command
Add a multi-agent orchestrator that coordinates all 25 specialist agents
through 5 phases (analysis, design, implementation, verification, release)
with agent-to-agent communication via Agent Teams. Add /feature slash
command as the entry point. Enable CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
in project settings to allow direct inter-agent messaging.

--- FR ---

Ajoute un orchestrateur multi-agents qui coordonne les 25 agents spécialisés
en 5 phases — analyse, conception, implémentation, vérification, publication
— avec communication d'agent à agent par les Agent Teams. Ajoute la commande
slash /feature comme point d'entrée. Active
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS dans les réglages du projet pour
autoriser la messagerie directe entre agents.

Assisted-by: Claude Sonnet 4.6
2026-08-07 01:05:14 -04:00
25796952ee [ADD] claude_agents: add 25 specialized AI agents for mobile project
Add a full catalog of Claude Code subagents covering all development
disciplines needed for a banking-grade open-source mobile app:
code quality, QA, backend, frontend, UX, architecture, security,
docs, community, product, ethics, DevOps/SRE, release, incident
response, performance, pentest, accessibility, compliance, risk,
data governance, legal/license, support, localization, and AI
agent engineering.

--- FR ---

Ajoute un catalogue complet de sous-agents Claude Code couvrant toutes les
disciplines de développement nécessaires à une application mobile libre de
qualité bancaire : qualité du code, AQ, dorsal, frontal, UX, architecture,
sécurité, documentation, communauté, produit, éthique, DevOps/SRE,
publication, réponse aux incidents, performance, test d'intrusion,
accessibilité, conformité, risque, gouvernance des données, aspects
juridiques et de licence, soutien, localisation et ingénierie des agents
d'IA.

Assisted-by: Claude Sonnet 4.6
2026-08-07 01:05:08 -04:00
e7ae3ccbf6 Merge branch 'dev_update_pip'
- security update odoo 18 poetry
2026-05-06 02:12:10 -04:00
5dd5ca10be [UPD] poetry odoo 18 security 2026-05-06 02:11:56 -04:00
c4f49f1b97 Merge branch 'develop'
- todo command sshfs and git path
- add mobile script run test
- fix todo upgrade get_odoo_version
2026-03-29 14:51:25 -04:00
4972add36f [FIX] todo upgrade wrong method get_odoo_version 2026-03-29 14:51:02 -04:00
9f2068133d [ADD] mobile test script 2026-03-23 02:59:38 -04:00
c8025eb2a0 [IMP] todo: add sshfs configuration command
Add interactive sshfs mount setup to the system configuration
menu. Users can enter SSH host details manually or select from
~/.ssh/config, then configure a persistent mount with fstab.
Includes i18n strings for all new UI text.

Generated by Claude Code 2.1.81 model claude-sonnet-4-6
2026-03-23 00:33:26 -04:00
340a55e685 [IMP] todo: git patch 2026-03-22 22:21:16 -04:00
664ba95a54 Merge branch 'develop'
- Support flanker for email validation
- Update pip odoo 18 for security
- Update Claude instruction
2026-03-22 01:53:13 -04:00
82ad4561cb [FIX] script generate_config force workers = 0 for developer 2026-03-22 01:50:25 -04:00
c09f336a8f [FIX] pip odoo 18 requirement flanker fix for python3 2026-03-22 01:37:59 -04:00
8f3e078a31 Merge branch 'update_odoo_18_pip'
- claude update command
- poetry update
2026-03-17 04:30:31 -04:00
7eab8ead76 [ADD] odoo 18 support STL file OpenCAD 2026-03-17 04:29:51 -04:00
8f0a5eb1ed [FIX] odoo 18 update poetry ignore mpl_toolkits 2026-03-17 04:26:14 -04:00
0cce4a2f4c [UPD] claude command instruction 2026-03-17 04:00:55 -04:00
542c5a6c78 [UPD] poetry update odoo 18 security 2026-03-17 03:58:21 -04:00
cf3d69b7b0 [ADD] requirement odoo 18: orjson for optimal json usage 2026-03-17 03:53:12 -04:00
09ccbd5f96 [ADD] requirement odoo 18: flanker for mail check 2026-03-17 03:36:29 -04:00
b1eeeb6053 Merge branch 'develop'
- fix todo for server without tk
- split claude.md into rules
- integrate rtk for optimisation agent IA
- todo to add command for claude
- todo i18n use english key
- more space when print command into execute.py
- todo integrate deploy local clone
- script format
2026-03-14 23:26:50 -04:00
36ae1d9beb [UPD] script Format 2026-03-14 23:26:31 -04:00
bee6d50018 [ADD] todo: add deploy menu with git clone
Allow users to deploy ERPLibre to a local directory
via git clone from the TODO interactive menu, making
onboarding simpler for new developers.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
4fc15c306b [REF] todo: use English text as i18n keys
Replace snake_case i18n keys with their English
translation so developers can read the code without
cross-referencing the translations dictionary.
Remove 5 obsolete duplicate entries.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
6fe2de73b2 [UPD] script execute with more space for command display 2026-03-14 23:26:31 -04:00
91c835d57e [IMP] todo: add Claude configs submenu and command listing
Refactor single commit setup into a generic deployment
mechanism for Claude commands, allowing easy addition of
new commands. Add todo_add_command template and an option
to list installed custom commands with their dates.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:26:31 -04:00
c2e08f1de0 [IMP] todo: add git remote, vim config and automation
Add git remote add command with default name "localhost",
git editor vim configuration via todo.json, and a Claude
automation tool to dynamically add commands to todo.json.
Support new bash_command key in execute_from_configuration.

Generated by Claude Code 2.1.74 model claude-opus-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:15:54 -04:00
230c55c432 [ADD] todo: add RTK management menu
Integrate RTK (Rust Token Killer) into the interactive CLI
to let users install, configure, and monitor token savings
directly from the ERPLibre todo interface.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:15:54 -04:00
ac30054d07 [REF] claude: split CLAUDE.md into .claude/rules/
Keep CLAUDE.md lean (~44 lines) with project identity,
core principles, and Claude-specific instructions only.
Move detailed documentation into 9 thematic rule files
under .claude/rules/ for better context optimization.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-14 23:15:54 -04:00
2569b3f0ba [FIX] todo.py remove tk, not used
- this broke server without gui for pyton 3.12.3
2026-03-14 23:15:54 -04:00
4762282796 Merge branch 'refactoring_script'
- update licence years TechnoLibre
- add unit test for script
- imp git_local_server
- todo support run test
- support claude command to commit from OCA style
- refactoring script to improve lisibility and quality
2026-03-11 23:19:12 -04:00
1e731114f5 [IMP] script: update copyright year to 2026
Reflect the current year in all TechnoLibre
license headers across script/, test/, and docker/.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 23:16:05 -04:00
111583c77d [ADD] test: add bilingual test plan with mmg
Document all 13 test files, 262 tests, and coverage
matrix in EN/FR using multilingual markdown generator.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 23:07:01 -04:00
eb42224df9 [ADD] test: add unit tests for uncovered components
Cover addons, code_generator, database, docker,
maintenance, poetry, and version scripts to bring
test count from 142 to 262.

Generated by Claude Code 2.1.74 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 23:06:53 -04:00
438edc3694 [IMP] script: sort execute menu alphabetically
Menu items were in arbitrary order making it hard to
find specific tools as the list grew to 14 entries.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 04:04:17 -04:00
4ea143dd36 [IMP] script: sort clone list alphabetically
The erplibre root repo was appended last and hard to
find among 141 entries. Sort the list so repos are
easy to locate by name.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:56:00 -04:00
d7d72db7bc [FIX] script: show erplibre clone path clearly
The root repo clone command showed "." as target path
which was confusing and easy to miss in the list.
Display "erplibre" instead for clarity.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:50 -04:00
84a021258e [IMP] script: shallow push by default in git server
Repos like odoo and OpenUpgrade blocked for 5+ minutes
trying to unshallow from GitHub (~3GB). Push shallow
by default with receive.shallowUpdate on bare repos.
Add --unshallow flag to opt into full history fetch.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:44 -04:00
24bcb3a7d3 [IMP] script: async init/remote/push in git server
Sequential processing of 100+ repos was slow. Use
asyncio with semaphore-bounded concurrency to run
init, remote and push actions in parallel. New -j flag
controls max parallel jobs (default: 8).

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:41 -04:00
291c9cf5e0 [IMP] script: add erplibre root repo to git server
The root repo (erplibre/erplibre) was missing from the
local git server because it is not in the Google Repo
manifest. Include it so a full clone of the platform
is possible from the local server across all 4 actions.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:36 -04:00
43fd5a17ae [REF] script: use Execute helper in git daemon
Replace raw subprocess.Popen and manual signal handling
with Execute.exec_command_live for consistency with
other refactored scripts.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:55:32 -04:00
8083c8010e [REF] script: improve variable naming conventions
Remove Hungarian notation prefixes (lst_, dct_) from variable
names in git_repo_manifest, git_repo_update_group, and their
tests for better readability and consistency with the codebase
refactoring effort.

Generated by Claude Code 2.1.72 model claude-sonnet-4-6

Co-Authored-By: Mathieu Benoit <mathben@technolibre.ca>
2026-03-11 03:25:43 -04:00