3 Commits

Author SHA1 Message Date
925a9a619c chore(changelog): add AI assistance mention to changelog
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:35:16 +02:00
f01c4a9ed0 chore(changelog): add AI assistance mention to changelog
Add a mention next to the commit message when the commit is AI assisted
and group AI models used in an 'AI Assistance Repartition' section.

Assisted-by: Zed:gemini-3.1-pro
2026-06-14 16:35:16 +02:00
0842b7b280 chore: add changelogs
Signed-off-by: Klagarge <remi@heredero.ch>
2026-06-14 16:35:16 +02:00
6 changed files with 409 additions and 0 deletions

110
cliff.toml Normal file
View File

@@ -0,0 +1,110 @@
# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.
[changelog]
# template for the changelog header
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits %}
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
{% if commit.breaking %}[**breaking**] {% endif %}\
{{ commit.message | upper_first }}\
{%- for footer in commit.footers -%}
{%- if footer.token == "Assisted-by" %} *(🤖 {{ footer.value | split(pat=" ") | first | trim }})*{%- endif -%}
{%- endfor %}\
{% endfor %}
{% endfor %}
{%- set ai_models = [] -%}
{%- for commit in commits -%}
{%- for footer in commit.footers -%}
{%- if footer.token == "Assisted-by" -%}
{%- set clean_value = footer.value | split(pat=" ") | first | trim -%}
{%- set_global ai_models = ai_models | concat(with=clean_value) -%}
{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- if ai_models | length > 0 %}
### 🤖 AI Assistance Repartition
{%- for model in ai_models | unique | sort -%}
{%- set_global count = 0 -%}
{%- for m in ai_models -%}
{%- if m == model -%}
{%- set_global count = count + 1 -%}
{%- endif -%}
{%- endfor %}
- **{{ model }}**: {{ count }} commit{% if count > 1 %}s{% endif %}
{%- endfor %}
{% endif %}\n
"""
# template for the changelog footer
footer = """
<!-- generated by git-cliff -->
"""
# remove the leading and trailing s
trim = true
# postprocessors
postprocessors = [
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
]
# render body even when there are no releases to process
# render_always = true
# output file path
# output = "test.md"
[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# filter out the commits that are not conventional
filter_unconventional = true
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# Replace issue numbers
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
# Check spelling of the commit with https://github.com/crate-ci/typos
# If the spelling is incorrect, it will be automatically fixed.
#{ pattern = '.*', replace_command = 'typos --write-changes -' },
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->🚀 Features" },
{ message = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
{ message = "^doc", group = "<!-- 3 -->📚 Documentation" },
{ message = "^perf", group = "<!-- 4 -->⚡ Performance" },
{ message = "^refactor", group = "<!-- 2 -->🚜 Refactor" },
{ message = "^style", group = "<!-- 5 -->🎨 Styling" },
{ message = "^test", group = "<!-- 6 -->🧪 Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore: update CHANGELOG.md", skip = true },
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore|^ci", group = "<!-- 7 -->⚙️ Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 8 -->🛡️ Security" },
{ message = "^revert", group = "<!-- 9 -->◀️ Revert" },
{ message = ".*", group = "<!-- 10 -->💼 Other" },
]
# filter out the commits that are not matched by commit parsers
filter_commits = false
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "oldest"

102
db/CHANGELOG.md Normal file
View File

@@ -0,0 +1,102 @@
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### ⚙️ Miscellaneous Tasks
- Add changelogs
## [db-gateway-v1.0.0] - 2026-06-04
### 🚀 Features
- *(db)* Add influx in db stack
- *(db)* Add traefik config example with actual server
- *(db)* Add rabittmq as mqtt stack
- *(db)* Add influx gateway from previous project
- *(db)* Add mqtt gateway from previous project
- *(db)* Merge datapoint and message
- *(db)* Add SubscribeTyped function and refactor DataPoint structure
- *(db)* Add initial main implementation
- *(db)* Add rest gateway
- *(db)* Add GET current value endpoint
- *(db)* Add GET history endpoint
- *(db)* Add mapping *(🤖 Junie:gemini-3-flash)*
- *(db)* Add swagger doc *(🤖 Junie:gemini-3-flash)*
- *(db)* Add parameter for time window in history endpoint
- *(db)* Add basic auth
- *(db)* Add deploiement stack
- *(db)* Add node tag for influx
- *(db)* Remove CO2PPM data over 1'000'000'000
- *(db)* Add battery field
- *(db)* Add battery REST endpoint *(🤖 Junie:claude-sonnet-4.6)*
- *(db)* Get mapping dynamically from file *(🤖 Junie:claude-sonnet-4.6)*
- *(db)* Add endpoint to export influx data to csv *(🤖 Junie:claude-sonnet-4.6)*
- *(server)* Add traefik entry for ui dashboard
- *(db)* Add co2 watchdog on each room *(🤖 Junie:gemini-3-flash)*
- *(db)* Add co2-status endpoint in REST API *(🤖 Junie:gemini-3-flash)*
### 🐛 Bug Fixes
- *(db)* Add missing entrypoint for influx explorer *(🤖 Gemini:gemini-3.1-pro)*
- *(db)* Add missing hostname for influx access in traefik
- *(db)* Wrong mqtt port
- *(db)* Typo in certResolver
- *(db)* Fail if now defaut user / password for mqtt
- *(db)* Allow gRPC proxy in traefik *(🤖 Gemini:gemini-3.1-pro)*
- *(db)* Proper api url instead of using swagger doc url
- *(db)* CORS request *(🤖 Gemini:gemini-3.1-pro)*
- *(db)* Url for api start with https
- *(db)* Get rooms from mapping file
- *(db)* Set time interval for influx limitations
- *(db)* Set higher file limit for influx limitations
- *(db)* Remove authorization for battery status endpoint
- *(db)* Window -> window_open
- *(db)* Push data with partial mapping
- *(db)* Filter random value
- *(db)* Mqtt hostname to keep internal config identique in case of rebuild
- *(db)* Add the room in the returned json
- *(db)* Return time in RFC3339 to avoid breakchange *(🤖 Junie:claude-opus-4.8)*
- *(db)* Return window tag in room status
- *(db)* Return only high co2 room for co2-status endpoint
- *(db)* Return error directly
### 🚜 Refactor
- *(db)* Move package
- *(db)* Unify env getters
- *(db)* Split campus and room mapping error detection
- *(db)* Map room and node on REST API
- *(db)* Add flag to run without MQTT part
- *(db)* Adapt SQL query for 5 min average
- *(db)* Round averages in SQL queries
- *(db)* Using moving average for room history *(🤖 Junie:gemini-3-flash)*
- *(db)* Change order for history
- *(db)* Add constante for max QOS
- *(db)* Add constante for defaultTimeout
### 📚 Documentation
- *(db)* Add deployement documentation
- *(db)* Fix typo in doc
### ⚙️ Miscellaneous Tasks
- Init
- *(db)* Typo and respect go guidelines
- *(db)* Get InfluxDB token by secrets *(🤖 Gemini:gemini-3-flash)*
- *(db)* Update critical dependancy
- *(db)* Add pre-commit for swagger documentation
- *(db)* Add local gitignore
- *(db)* Set 30min before offline for battery endpoint
### 🤖 AI Assistance Repartition
- **Gemini:gemini-3-flash**: 1 commit
- **Gemini:gemini-3.1-pro**: 3 commits
- **Junie:claude-opus-4.8**: 1 commit
- **Junie:claude-sonnet-4.6**: 3 commits
- **Junie:gemini-3-flash**: 5 commits
<!-- generated by git-cliff -->

59
gateway/CHANGELOG.md Normal file
View File

@@ -0,0 +1,59 @@
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### ⚙️ Miscellaneous Tasks
- Remove useless gitkeep file
- Add changelogs
## [gateway-v1.0.0] - 2026-06-04
### 🚀 Features
- Add BLE-to-MQTT gateway implementation
- *(gateway)* Add configuration file
- *(gateway)* Implement BLE-to-MQTT gateway *(🤖 Claude:claude-sonnet-4-6)*
- *(gateway)* Add MQTTS support with TLS and authentication *(🤖 Claude:claude-sonnet-4-6)*
- *(gateway)* Add battery level support (key 0x05)
- *(gateway)* Add deduplication and continuous BLE scan *(🤖 Claude:claude-sonnet-4-6)*
### 🐛 Bug Fixes
- *(gateway)* Fix architecture diagram code block in README
- *(gateway)* Fix architecture diagram code block in README
- *(gateway)* Fix payload decoding endianness and skip preamble Switch temperature and CO2 decoding from little-endian to big-endian to match the Zephyr firmware implementation. Skip the 2-byte company id preamble (0xffff) at the start of the manufacturer data payload.
- *(gateway)* Replace UUID filter with manufacturer data preamble filter
- *(gateway)* Replace UUID filter with manufacturer data preamble filter
- *(gateway)* Fix BLE filtering and MQTT connection validation
- *(gateway)* Use exact payload size filter and improve robustness
- *(gateway)* Revert CO2 range check and add MQTT auto-reconnect
### 🚜 Refactor
- *(gateway)* Switch from GATT connection to passive BLE advertising *(🤖 Claude:claude-sonnet-4-6)*
### 📚 Documentation
- Add gateway README
- Add overnight test results and measurements graph
- Add overnight test results section to README
- *(gateway)* Add README with architecture and MQTT interface *(🤖 Claude:claude-sonnet-4-6)*
- *(gateway)* Document MQTT_PASSWORD environment variable in README
- *(gateway)* Add deployment checklist, systemd service and update README
- *(gateway)* Update README with battery field, security fixes and warnings
### ⚙️ Miscellaneous Tasks
- Init
- *(gateway)* Add Python dependencies file
- *(gateway)* Exclude config.json from repo, add example config
- *(gateway)* Use placeholder values in config.example.json
- *(gateway)* Update config.example.json with TLS and auth fields
### 🤖 AI Assistance Repartition
- **Claude:claude-sonnet-4-6**: 5 commits
<!-- generated by git-cliff -->

62
nodes/CHANGELOG.md Normal file
View File

@@ -0,0 +1,62 @@
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### ⚙️ Miscellaneous Tasks
- Add changelogs
## [project-submission] - 2026-06-04
### ⚙️ Miscellaneous Tasks
- Remove useless gitkeep file
- Remove zephyr sample file
- Remove release file from repo
## [nodes-v1.1.0] - 2026-06-04
### 🚀 Features
- *(nodes)* Adding management of read error on each values, hence
- *(nodes)* Add the battery level in the ble frame
- *(nodes)* Adding battery percent as new key/value in the BLE frame
- *(nodes)* Using an explicit thread, as it may cause the huge battery usage
- *(nodes)* Setting the fastest BLE advertising frequency to 1 minute instead of 2
### 🐛 Bug Fixes
- *(nodes)* Changing incorrect comment
- *(nodes)* Using MAC address as BT_ADDR
- *(nodes)* Reduce battery consumption
### 📚 Documentation
- *(nodes)* Adding comments in the nodes code
## [nodes-v1.0.0] - 2026-06-04
### 🚀 Features
- *(nodes)* WIP supervisor first implementation
- *(nodes)* Adding thermometer and hygrometer
- *(nodes)* WIP adding first implementation for BLE advertising.
- *(nodes)* Adding co2_level retrieval
- *(nodes)* Adding window status reading
- *(nodes)* Adding nodes firmware v1.0
### 🐛 Bug Fixes
- *(nodes)* Adjusting broadcasted data to fit definition
- *(nodes)* Fixing switch device tree and wrong ordering of ble values
- *(nodes)* Properly fetching data from temp/hygro sensor
- *(nodes)* Co2 level fetched as desibed in the documentation
- *(nodes)* Changing window status sensor to have unequipped nodes return 'window is closed' status
### ⚙️ Miscellaneous Tasks
- Init
<!-- generated by git-cliff -->

View File

@@ -0,0 +1,32 @@
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### 🚀 Features
- *(notification)* Spring Boot Teams notification service (#19)
- *(notification)* Add mock mode for local testing without backend (#19 #21)
- *(notification-service)* Replace Teams with Telegram notifications *(🤖 Claude:claude-sonnet-4-6)*
- *(notification-service)* Add Dockerfile, actuator health and alert deduplication *(🤖 Claude:claude-sonnet-4-6)*
- *(notification-service)* Adapt to Go backend /api/v1/rooms/high-co2 endpoint
### 🐛 Bug Fixes
- *(notification)* Remove non-existent starter-scheduling dep, target Java 17
### 🧪 Testing
- *(notification-service)* Add unit tests and clean up Co2Level *(🤖 Claude:claude-sonnet-4-6)*
### ⚙️ Miscellaneous Tasks
- *(notification-service)* Add CI/CD pipeline with Docker, SSH deploy and API credentials
- *(notification-service)* Add SAST, dependency scan and DAST security gates
- Add changelogs
### 🤖 AI Assistance Repartition
- **Claude:claude-sonnet-4-6**: 3 commits
<!-- generated by git-cliff -->

44
ui/CHANGELOG.md Normal file
View File

@@ -0,0 +1,44 @@
# Changelog
All notable changes to this project will be documented in this file.
## [unreleased]
### 🚀 Features
- *(ui)* Initialize Angular 18 dashboard project
- *(ui)* Create organized folder structure for application
- *(ui)* Configure routing with lazy-loaded components
- *(ci)* Add Docker build, push and SSH deploy pipeline *(🤖 Claude:claude-sonnet-4-6)*
- *(ui)* Implement interactive room map with REST services and unit tests
- *(ui)* Interactive room map, detail panel redesign and polling
- *(ui)* Dynamic room polling, secure credentials and CO2 levels
### 🐛 Bug Fixes
- *(ui)* Add environment.prod.ts for production builds
- *(ui)* Address code review feedback
- *(ui)* Remove hardcoded credentials and make CO2 spec config-driven
### 🚜 Refactor
- *(ui)* Simplify room names and remove dead code
### 🎨 Styling
- *(ui)* Apply Prettier formatting
- *(ui)* Apply Prettier formatting *(🤖 Claude:claude-sonnet-4-6)*
### ⚙️ Miscellaneous Tasks
- Init
- *(ui)* Setup GitHub Actions CI/CD pipeline
- *(ui)* Remove commented-out gitignore line for environment.prod.ts
- *(ui)* Add plan.svg floor plan asset
- Remove useless gitkeep file
- Add changelogs
### 🤖 AI Assistance Repartition
- **Claude:claude-sonnet-4-6**: 2 commits
<!-- generated by git-cliff -->