-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/add strobe project #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds a new example project that polls GitHub Actions, processes workflow runs via Telegraf + Starlark to derive a color (green/yellow/red), and triggers an Axis strobe via a shell script; includes configs, test fixtures, docs, license, and tooling metadata. Changes
Sequence Diagram(s)sequenceDiagram
participant Agent as Telegraf Agent
participant GitHub as GitHub API
participant Proc as Starlark Processors
participant Exec as trigger_strobe.sh
participant Axis as Axis Device (VAPIX)
loop poll (every 5s ± jitter)
Agent->>GitHub: GET /repos/.../actions/runs (HTTP input)
GitHub-->>Agent: JSON with workflow_runs
rect rgb(220,235,255)
Agent->>Proc: emit `github_workflow` metrics
Proc->>Proc: filter by name → select latest → map conclusion→color
Proc-->>Agent: emit `workflow_color` metric
end
rect rgb(255,245,230)
Agent->>Exec: exec `trigger_strobe.sh` (JSON stdin)
Exec->>Axis: HTTP Digest POST start requested profile
Exec->>Axis: HTTP Digest POST stop other profiles
Axis-->>Exec: responses (200 / error)
Exec-->>Agent: exit status
end
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
project-strobe-color-from-github-workflow/.gitignore (1)
1-2: Ignoringtoken.txtafter committing it is ineffective
.gitignoreprevents future additions, but the secret is already tracked (see earlier critical issue).
After the token file is removed from history you can keep this rule or, better, replace it with a pattern like*.tokento discourage other devs from committing secrets.
🧹 Nitpick comments (9)
.coderabbit.yaml (2)
17-31: YAML entry looks valid but re-check rendered formatting & widthThe added
project-*/**path-instruction block is syntactically fine, but the long, wrapped lines (especially 28-31) exceed 120 chars in the rendered file and will be hard to read / diff in future edits.
Consider inserting manual line breaks or lettingprettier -w *.yamlre-flow this paragraph before merging.
49-60: Minor spelling & grammar nits in guidelines• Line 49: “does not check in” → “do not check in”
• Line 59: “refered” → “referred”Tiny, but worth polishing since this block will be copied into many future PRs.
project-strobe-color-from-github-workflow/config_agent.conf (1)
1-10: Product-naming not consistent with repo style guideLines 4 & 8 say “Axis strobe light”.
Guidelines require:• Use “Axis Communications” for the company.
• Use “AXIS ” for device names, all caps on AXIS.e.g. “controls an AXIS D4100-VE mk II strobe light”.
Please update wording in comments here (and other new files/README) for consistency.
project-strobe-color-from-github-workflow/sample.json (1)
1-229: Consider trimming sample fixture to essential fieldsThe sample payload is ~230 lines with full repository/user metadata. For unit-testing the starlark mapping only
conclusion,status,id,workflow_runs[0].conclusionetc. are required. A smaller redacted fixture keeps the repo lean and avoids accidental PII drift.Not blocking, but worth a follow-up cleanup.
project-strobe-color-from-github-workflow/trigger_strobe.sh (1)
1-1: Consider using bash shebang for better compatibility.The script uses bash-specific features like
localvariables but has a POSIX#!/bin/shshebang. This could cause compatibility issues on systems where/bin/shis not bash.Apply this diff to use bash explicitly:
-#!/bin/sh +#!/bin/bashThis resolves the static analysis warnings about POSIX sh compatibility and ensures consistent behavior across systems.
project-strobe-color-from-github-workflow/config_output_strobe.conf (1)
18-18: Fix typo in environment variable comment.Line 18 contains "FixedIT Data AGent" instead of "FixedIT Data Agent".
-# - VAPIX_IP: IP address of the Axis strobe device, should be 127.0.0.1 when running in the FixedIT Data AGent on an Axis Strobe. +# - VAPIX_IP: IP address of the Axis strobe device, should be 127.0.0.1 when running in the FixedIT Data Agent on an Axis Strobe.project-strobe-color-from-github-workflow/README.md (3)
76-76: Fix compound adjective hyphenation."Third party" should be hyphenated when used as a compound adjective modifying "APIs".
-This effectively shows how to transform an Axis strobe to an intelligent device that can poll third party APIs and set its color based on the API return status. +This effectively shows how to transform an Axis strobe to an intelligent device that can poll third-party APIs and set its color based on the API return status.
40-40: Fix markdown link formatting.Remove extra spaces in the link text and ensure the fragment reference is valid.
- - [`config_process_github.conf` - Data Transformation ](#config_process_githubconf-data-transformation) + - [`config_process_github.conf` - Data Transformation](#config_process_githubconf-data-transformation)
534-536: Add language specification to code block.Specify the language for better syntax highlighting and compliance with markdown linting rules.
-``` +```text Error in plugin: received status code 401 (Unauthorized)</blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used: .coderabbit.yaml** **Review profile: CHILL** **Plan: Pro (Legacy)** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 1ac51805a166a6bd347991d172697fc69f47b850 and bd9abe9390cad8181ba1e6eab82473f1593c1bf2. </details> <details> <summary>⛔ Files ignored due to path filters (4)</summary> * `project-strobe-color-from-github-workflow/.images/axis-strobe-all-profiles.png` is excluded by `!**/*.png` * `project-strobe-color-from-github-workflow/.images/axis-strobe-profile-configuration.png` is excluded by `!**/*.png` * `project-strobe-color-from-github-workflow/.images/github-token.png` is excluded by `!**/*.png` * `project-strobe-color-from-github-workflow/.images/webinar-on-youtube.png` is excluded by `!**/*.png` </details> <details> <summary>📒 Files selected for processing (12)</summary> * `.coderabbit.yaml` (2 hunks) * `project-strobe-color-from-github-workflow/.gitignore` (1 hunks) * `project-strobe-color-from-github-workflow/README.md` (1 hunks) * `project-strobe-color-from-github-workflow/config_agent.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_input_github.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_output_stdout.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_output_strobe.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_process_github.conf` (1 hunks) * `project-strobe-color-from-github-workflow/sample.json` (1 hunks) * `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` (1 hunks) * `project-strobe-color-from-github-workflow/token.txt` (1 hunks) * `project-strobe-color-from-github-workflow/trigger_strobe.sh` (1 hunks) </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>📓 Path-based instructions (3)</summary> <details> <summary>project-*/**</summary> **⚙️ CodeRabbit Configuration File** > Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Files: - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `project-strobe-color-from-github-workflow/token.txt` - `project-strobe-color-from-github-workflow/sample.json` - `project-strobe-color-from-github-workflow/config_input_github.conf` - `project-strobe-color-from-github-workflow/trigger_strobe.sh` - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_output_strobe.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` - `project-strobe-color-from-github-workflow/config_process_github.conf` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>**/*</summary> **⚙️ CodeRabbit Configuration File** > This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be refered to from other sources like the top-level README.md file. Files: - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `project-strobe-color-from-github-workflow/token.txt` - `project-strobe-color-from-github-workflow/sample.json` - `project-strobe-color-from-github-workflow/config_input_github.conf` - `project-strobe-color-from-github-workflow/trigger_strobe.sh` - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_output_strobe.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` - `project-strobe-color-from-github-workflow/config_process_github.conf` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>**/*.md</summary> **⚙️ CodeRabbit Configuration File** > Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used. Files: - `project-strobe-color-from-github-workflow/README.md` </details> </details><details> <summary>🧠 Learnings (38)</summary> <details> <summary>📓 Common learnings</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.Learnt from: daniel-falk
PR: fixedit-ai/client-faunia#42
File: .github/workflows/build_and_test.yml:58-62
Timestamp: 2024-11-05T08:27:27.211Z
Learning: In this repository, it's acceptable to usefixedit-ai/install-fappcli-action@mainto test the latest main version.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers usingprettier -w *.mdfor markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools likeblackfor Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommendautopep8for finding additional issues like incorrect names.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.</details> <details> <summary>📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.**Applied to files:** - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/config_input_github.conf` - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: the format of the status.json api response in telegraf agent differs from the internal format used i...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/app/src/web.cpp:92-99
Timestamp: 2025-05-15T16:06:41.173Z
Learning: The format of the status.json API response in Telegraf Agent differs from the internal format used in the frontend. The backend sends data with license info at root level and process info nested under "process", and the frontend transforms this data to its internal format after validation.**Applied to files:** - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `project-strobe-color-from-github-workflow/config_input_github.conf` - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the.github/workflows/unit_tests.ymlworkflow, it's acceptable to use only thepushtrigger if running tests on all pushes covers the necessary cases. Including thepull_requesttrigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.**Applied to files:** - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, the configs_for_build directory is only used for plugin pa...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#359
File: TEST_INSTRUCTIONS.md:244-245
Timestamp: 2025-07-03T15:28:04.994Z
Learning: In the fixedit-ai/fixedit-agents project, the configs_for_build directory is only used for plugin parsing purposes. Files in this directory should not be updated unless necessary because it breaks the build cache unnecessarily. Build cache optimization is an important consideration when making changes to configuration files.**Applied to files:** - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the project, the file path `/tmp/config_agent_config.txt` is used as a temporary file and path so...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#4
File: bootstrap_agent/fixedit-manifest-dev-legacy-binary-creation.json:16-16
Timestamp: 2024-10-16T06:18:24.206Z
Learning: In the project, the file path/tmp/config_agent_config.txtis used as a temporary file and path solely for testing purposes.**Applied to files:** - `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` </details> <details> <summary>📚 Learning: the file `birdtracker/app/src/capture/imgprovider.cpp` should be ignored for changes in this pr....</summary>Learnt from: fixedit-dimitris
PR: fixedit-ai/client-faunia#38
File: BirdTracker/app/src/capture/imgprovider.cpp:62-69
Timestamp: 2024-10-24T13:01:31.243Z
Learning: The fileBirdTracker/app/src/capture/imgprovider.cppshould be ignored for changes in this PR.**Applied to files:** - `project-strobe-color-from-github-workflow/.gitignore` </details> <details> <summary>📚 Learning: in the vscode_plugins/acap-documentation-viewer project, the license file generated by generate-lice...</summary>Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/.gitignore:6-6
Timestamp: 2025-06-24T12:30:24.097Z
Learning: In the vscode_plugins/acap-documentation-viewer project, the LICENSE file generated by generate-licenses.js should be ignored in .gitignore and not version controlled, as it's a build artifact that consolidates dependency licenses.**Applied to files:** - `project-strobe-color-from-github-workflow/.gitignore` </details> <details> <summary>📚 Learning: in the `client-faunia` repository, when reviewing pull requests, if `birdtracker/app/src/capture/img...</summary>Learnt from: fixedit-dimitris
PR: fixedit-ai/client-faunia#38
File: BirdTracker/app/src/capture/imgprovider.cpp:338-342
Timestamp: 2024-10-24T13:06:31.552Z
Learning: In theclient-fauniarepository, when reviewing pull requests, ifBirdTracker/app/src/capture/imgprovider.cppis included, it should be ignored unless it's modified in the PR.**Applied to files:** - `project-strobe-color-from-github-workflow/.gitignore` </details> <details> <summary>📚 Learning: in this project, a development ssh key is intentionally checked into the repository for ease of test...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#2
File: bootstrap_agent/app/keys/id_rsa:1-38
Timestamp: 2024-10-06T17:50:17.051Z
Learning: In this project, a development SSH key is intentionally checked into the repository for ease of testing, and the production key is provided via build arguments and stored as a GitHub secret.**Applied to files:** - `project-strobe-color-from-github-workflow/.gitignore` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project deployment system, tokens and secrets must be included dire...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#423
File: prototypes/test_files/office_deployment/deployments.jsonnet:63-65
Timestamp: 2025-07-22T10:11:10.010Z
Learning: In the fixedit-ai/fixedit-agents project deployment system, tokens and secrets must be included directly in deployment configuration files (like deployments.jsonnet) because external variables (extVars) cannot be used - the applications cannot be changed when deployed in production environments. The deployment files serve as the configuration injection mechanism. Better secret handling is planned for future implementation.**Applied to files:** - `project-strobe-color-from-github-workflow/.gitignore` - `project-strobe-color-from-github-workflow/token.txt` </details> <details> <summary>📚 Learning: for prototype and demo code in the `prototypes/**` directory, hardcoded tokens and credentials may b...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#318
File: prototypes/example_projects/strobe_color/token.txt:1-1
Timestamp: 2025-05-30T16:58:50.118Z
Learning: For prototype and demo code in theprototypes/**directory, hardcoded tokens and credentials may be acceptable when the user acknowledges it's for demonstration purposes only, as the coding guidelines state that prototype code "does not need extensive error handling and security features."**Applied to files:** - `project-strobe-color-from-github-workflow/token.txt` </details> <details> <summary>📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.**Applied to files:** - `project-strobe-color-from-github-workflow/sample.json` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: - when suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` f...</summary>Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools likemypyandblackfor consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (likeQUICKSTART_GUIDE.pdf) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (text) is preferred over additional heading levels (####) to avoid issues with PDF generation.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: the fixedit-agents codebase does not use doxygen styled comments. use regular c-style comments inste...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#295
File: acaps/shared_code/src/modules/vapix/vapix_handler.cpp:180-195
Timestamp: 2025-06-23T11:00:45.999Z
Learning: The fixedit-agents codebase does not use doxygen styled comments. Use regular C-style comments instead of /** */ doxygen format.**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...</summary>Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.**Applied to files:** - `.coderabbit.yaml` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the `bootstrap_agent` project, avoid using at-notations (e.g., `@param`, `@return`) in comments, ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/include/modules/vapix/vapix.h:0-0
Timestamp: 2024-10-28T15:20:41.902Z
Learning: In thebootstrap_agentproject, avoid using at-notations (e.g.,@param,@return) in comments, as documentation generation tools are not used. Write comments for human consumption instead.**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: in the 'client-doordash' repository, when creating symlinks such as in `acaps/bootstrap_agent/app/in...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#25
File: acaps/bootstrap_agent/app/include/shared/parameters/plain_parameters.h:1-1
Timestamp: 2024-11-04T11:06:32.617Z
Learning: In the 'client-doordash' repository, when creating symlinks such as inacaps/bootstrap_agent/app/include/shared/parameters/plain_parameters.h, absolute paths should not be used because they make the symlinks not reusable on other hosts. Relative paths, even with multiple../, are acceptable and preferred to ensure portability across different hosts.**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: in the fixedit developer friend vscode extension project, the team prefers to implement automatic li...</summary>Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: .github/workflows/package_acap-documentation-viewer.yml:39-39
Timestamp: 2025-07-01T10:36:32.345Z
Learning: In the FixedIT Developer Friend VSCode extension project, the team prefers to implement automatic linting systematically rather than fixing individual linting issues (like missing trailing newlines) as they come up in reviews.**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: for scripts in the vscode_plugins/acap-documentation-viewer project that are only run by developers ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/generate-licenses.js:19-20
Timestamp: 2025-06-16T15:00:05.319Z
Learning: For scripts in the vscode_plugins/acap-documentation-viewer project that are only run by developers (like generate-licenses.js), the team prefers to keep simpler implementations even if they have potential brittleness, and will address issues reactively if they arise rather than proactively hardening the code.**Applied to files:** - `.coderabbit.yaml` </details> <details> <summary>📚 Learning: in the fixedit-agents project, telegraf logging (like install.success()) and standard logging (fapp_...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#431
File: acaps/installer_agent/app/src/installer_logic/installer_fetcher.cpp:1061-1063
Timestamp: 2025-07-17T09:09:44.268Z
Learning: In the fixedit-agents project, Telegraf logging (like install.success()) and standard logging (fapp_logger_log) serve different purposes: Telegraf logs go to a database for telemetry/analytics, while standard logs go to the device's standard log system for operational visibility. Both are necessary and not redundant.**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: for the cameraplainconfig class in the doordash project, telegraf_logging is not a constructor param...</summary>Learnt from: fixedit-nkoval
PR: fixedit-ai/client-doordash#224
File: acaps/config_agent/app/include/camera_config/camera_plain_config.h:0-0
Timestamp: 2025-03-04T09:56:09.908Z
Learning: For the CameraPlainConfig class in the DoorDash project, telegraf_logging is not a constructor parameter anymore, despite what might be shown in older diffs.**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_stdout.conf` </details> <details> <summary>📚 Learning: in telegraf configuration, the `inputs.exec` plugin only supports the `commands` parameter (plural),...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/app/configs/input_network.conf:6-11
Timestamp: 2025-05-16T07:29:22.125Z
Learning: In Telegraf configuration, theinputs.execplugin only supports thecommandsparameter (plural), notcommand(singular). Thecommandsparameter must be an array of strings, where each string is a complete command with all its arguments. Each command string should be formatted as you would type it at a shell prompt. For example:commands = ["sh -c 'grep \"^nameserver\" /etc/resolv.conf'"].**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_output_strobe.conf` </details> <details> <summary>📚 Learning: in telegraf configuration, the exec input plugin supports both `command` (deprecated) and `commands`...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/app/configs/input_network.conf:6-11
Timestamp: 2025-05-16T07:29:22.125Z
Learning: In Telegraf configuration, the exec input plugin supports bothcommand(deprecated) andcommands(recommended) fields. Thecommandsfield should be an array and can be formatted either as a single string containing the full command with arguments (commands = ["full command string"]) or as an array of separate arguments (commands = [["executable", "arg1", "arg2"]]). The newer pluralcommandssyntax is preferred in current Telegraf versions.**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_stdout.conf` - `project-strobe-color-from-github-workflow/config_output_strobe.conf` </details> <details> <summary>📚 Learning: in telegraf configuration, the `inputs.exec` plugin supports both the singular `command` parameter a...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/app/configs/input_network.conf:25-30
Timestamp: 2025-05-16T07:30:22.820Z
Learning: In Telegraf configuration, theinputs.execplugin supports both the singularcommandparameter and the pluralcommandsarray format. While newer documentation tends to standardize on thecommandsarray format (even for single commands), the singularcommandparameter is still valid and supported when executing a single command.**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_strobe.conf` </details> <details> <summary>📚 Learning: in telegraf configuration, the `inputs.exec` plugin supports both `command` (string for single comma...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/app/configs/input_network.conf:25-30
Timestamp: 2025-05-16T07:30:22.820Z
Learning: In Telegraf configuration, theinputs.execplugin supports bothcommand(string for single command) andcommands(array for multiple commands) parameters. Both are valid in current Telegraf versions, thoughcommandsmay be preferred in newer documentation for consistency. When only one command is needed, the singular formcommandis still fully supported and documented.**Applied to files:** - `project-strobe-color-from-github-workflow/config_output_strobe.conf` </details> <details> <summary>📚 Learning: the `debug_logging` flag is used in the config agent, particularly in `camera_plain_config.cpp`....</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#30
File: acaps/config_agent/app/Makefile:46-46
Timestamp: 2024-11-08T07:48:36.269Z
Learning: TheDEBUG_LOGGINGflag is used in the config agent, particularly incamera_plain_config.cpp.**Applied to files:** - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, host stub implementations (like in acaps/installer_agent/a...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#359
File: acaps/installer_agent/app/stubs_host/axparam/src/ax_parameter.c:0-0
Timestamp: 2025-07-03T15:16:47.201Z
Learning: In the fixedit-ai/fixedit-agents project, host stub implementations (like in acaps/installer_agent/app/stubs_host/axparam/src/ax_parameter.c) are intentionally allowed to have different default values than device deployments. This is acceptable because host stubs are used for testing and development purposes, while device deployments have their own configuration requirements.**Applied to files:** - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the configuration agent, it's acceptable to continue without telegraf logging if fetching the soc...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#265
File: acaps/config_agent/app/src/main.cpp:243-255
Timestamp: 2025-05-06T11:03:42.315Z
Learning: In the Configuration Agent, it's acceptable to continue without Telegraf logging if fetching the socket path parameter fails, rather than using a default path.**Applied to files:** - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents telegraf agent documentation, the term "real-time" is a crucial tec...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#360
File: TELEGRAF_AGENT_CONFIG_SPEC.md:82-88
Timestamp: 2025-07-03T07:47:11.566Z
Learning: In the fixedit-ai/fixedit-agents Telegraf Agent documentation, the term "real-time" is a crucial technical distinction when describing logging capabilities. The Web UI version provides real-time log viewing, while the system log writes in batch mode at predetermined intervals. This distinction is important for users to understand the different capabilities between application versions and should not be removed as redundant wording.**Applied to files:** - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in `bootstrap_agent/app/src/main.c`, configurable parameters like the domain used in `query_txt_reco...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#2
File: bootstrap_agent/app/src/main.c:231-235
Timestamp: 2024-10-13T01:26:31.148Z
Learning: Inbootstrap_agent/app/src/main.c, configurable parameters like the domain used inquery_txt_recordshould be specified as build arguments infixedit-manifest.json. This practice enables different configurations for production and development environments.**Applied to files:** - `project-strobe-color-from-github-workflow/config_agent.conf` </details> <details> <summary>📚 Learning: in the developer-program-helper-scripts repository, http (instead of https) is acceptable for axis c...</summary>Learnt from: daniel-falk
PR: fixedit-ai/Developer-Program-Helper-Scripts#3
File: Network-APIs/Data-Collection/collect_images.py:39-68
Timestamp: 2025-04-04T11:50:21.252Z
Learning: In the Developer-Program-Helper-Scripts repository, HTTP (instead of HTTPS) is acceptable for Axis camera API requests since the scripts are intended for local development and testing environments.**Applied to files:** - `project-strobe-color-from-github-workflow/README.md` </details> </details><details> <summary>🪛 Shellcheck (0.10.0)</summary> <details> <summary>project-strobe-color-from-github-workflow/trigger_strobe.sh</summary> [warning] 88-88: In POSIX sh, 'local' is undefined. (SC3043) --- [warning] 89-89: In POSIX sh, 'local' is undefined. (SC3043) </details> </details> <details> <summary>🪛 LanguageTool</summary> <details> <summary>project-strobe-color-from-github-workflow/README.md</summary> [uncategorized] ~76-~76: If this is a compound adjective that modifies the following noun, use a hyphen. Context: ... to an intelligent device that can poll third party APIs and set its color based on the API... (EN_COMPOUND_ADJECTIVE_INTERNAL) --- [style] ~88-~88: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. Context: ...tic access (see instructions below). 1. Create the color profiles in the Axis strobe (... (ENGLISH_WORD_REPEAT_BEGINNING_RULE) --- [style] ~145-~145: Try using a synonym here to strengthen your writing. Context: ...o be more specific about what the token gives access to.  </details> </details> <details> <summary>🪛 markdownlint-cli2 (0.17.2)</summary> <details> <summary>project-strobe-color-from-github-workflow/README.md</summary> 38-38: Link fragments should be valid (MD051, link-fragments) --- 39-39: Link fragments should be valid (MD051, link-fragments) --- 40-40: Spaces inside link text (MD039, no-space-in-links) --- 40-40: Link fragments should be valid (MD051, link-fragments) --- 41-41: Link fragments should be valid (MD051, link-fragments) --- 42-42: Link fragments should be valid (MD051, link-fragments) --- 43-43: Link fragments should be valid (MD051, link-fragments) --- 534-534: Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> </details> <details> <summary>🔇 Additional comments (17)</summary><blockquote> <details> <summary>project-strobe-color-from-github-workflow/config_agent.conf (1)</summary> `19-30`: **Polling every 5 s may breach GitHub rate limits – confirm requirements** The config sets `interval = "5s"` with only 1 s jitter. For private-repo PATs the REST API allows 5 k requests/hour ⇒ two devices at 5 s each will already hit limits. Verify the example really needs sub-10-second latency; otherwise ship a safer default (e.g. 30 s) and document how to tune. </details> <details> <summary>project-strobe-color-from-github-workflow/config_output_stdout.conf (1)</summary> `1-15`: **LGTM! Well-documented debug output configuration.** The configuration correctly uses Telegraf's file output plugin to send pipeline data to stdout for debugging purposes. The JSON format choice is appropriate for structured logging, and the comprehensive comments clearly explain the purpose and functionality. </details> <details> <summary>project-strobe-color-from-github-workflow/test_files/config_input_file.conf (1)</summary> `1-42`: **LGTM! Excellent test configuration design.** The mock input configuration perfectly mirrors the real GitHub API input structure while enabling local testing without network dependencies. The use of `${HELPER_FILES_DIR}` follows FixedIT Data Agent conventions, and the field mappings ensure identical behavior between test and production configurations. </details> <details> <summary>project-strobe-color-from-github-workflow/config_process_github.conf (1)</summary> `16-57`: **LGTM! Well-designed Starlark processor with solid logic.** The processor configuration correctly transforms GitHub workflow conclusions into strobe colors. The logic is sound: - Proper filtering with `namepass = ["github_workflow"]` - Sensible color mapping (success→green, failure→red, others→yellow) - Good default handling for running/unknown states - Creates clean output metrics for downstream processing The extensive comments make the transformation logic clear and maintainable. </details> <details> <summary>project-strobe-color-from-github-workflow/trigger_strobe.sh (4)</summary> `28-34`: **LGTM! Thorough environment variable validation.** The validation logic correctly checks for all required VAPIX credentials and provides clear error messages. The exit code 10 allows for proper error handling in the Telegraf pipeline. --- `49-64`: **LGTM! Robust JSON parsing and validation.** The JSON extraction using `jq -r '.fields.color'` correctly handles the Telegraf metric format, and the validation logic properly handles both missing fields and null values. The error messages provide helpful debugging information. --- `84-107`: **LGTM! Well-designed VAPIX API integration.** The `control_profile` function correctly implements: - HTTP Digest authentication for Axis devices - Proper VAPIX API endpoint and JSON payload format - Comprehensive error handling for API failures The curl command parameters are appropriate for the siren_and_light.cgi endpoint. --- `109-129`: **LGTM! Smart exclusive profile management.** The logic to activate the requested color and deactivate others ensures only one strobe pattern is active at a time. This eliminates potential conflicts between profile priorities and provides clear visual indication of the current workflow state. </details> <details> <summary>project-strobe-color-from-github-workflow/config_input_github.conf (1)</summary> `19-59`: **LGTM! Well-configured GitHub API input.** The HTTP input configuration correctly implements: - Efficient API polling with `per_page=1` for latest workflow run - Proper GitHub API endpoint structure with environment variable interpolation - Correct JSON parsing with `json_query = "workflow_runs"` to extract the array - Appropriate tag and field extraction for downstream processing - Secure authentication using Bearer token from environment variable The configuration follows GitHub API best practices and integrates well with the processing pipeline. </details> <details> <summary>project-strobe-color-from-github-workflow/config_output_strobe.conf (3)</summary> `31-31`: **LGTM: Command configuration is correct.** The use of the singular `command` parameter with array format is valid for Telegraf exec plugins. The environment variable substitution for `HELPER_FILES_DIR` follows the expected pattern. --- `38-53`: **Excellent batch configuration for real-time response.** The batch settings are optimally configured for immediate strobe response: - Individual metric processing prevents delays - Minimum buffer limit follows Telegraf constraints - Clear documentation explains the rationale --- `55-61`: **Well-configured timeout with helpful guidance.** The 10-second timeout appropriately accounts for multiple VAPIX API calls and network latency. The documentation provides clear guidance for adjusting the timeout if needed. </details> <details> <summary>project-strobe-color-from-github-workflow/README.md (5)</summary> `1-4`: **Excellent adherence to coding guidelines.** The introduction properly: - Links to the FixedIT Data Agent product page on first mention - Uses correct "Axis" company naming convention - Clearly explains the project's purpose and scope --- `82-92`: **Comprehensive and user-friendly setup instructions.** The high-level overview provides clear, actionable steps with important compatibility notes. The environment variable configuration instructions are particularly helpful with the semicolon concatenation example. --- `173-183`: **Excellent API testing documentation.** The curl command example and explanation of expected conclusion values (`success`, `failure`, `null`) provide clear guidance for users to test their GitHub API integration independently. --- `418-445`: **Well-balanced technical documentation.** The configuration files section effectively explains the data pipeline components and their interactions while maintaining accessibility for the dual audience of server-side dashboard users and edge device developers. --- `446-568`: **Exceptional testing documentation.** The local testing section provides comprehensive coverage with multiple testing scenarios: - Mock data testing for development - Real API integration testing - Full pipeline testing with hardware control - Clear error handling guidance This thorough approach enables effective debugging and validation at each integration level. </details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
7d61773 to
056bec0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (1)
project-strobe-color-from-github-workflow/README.md (1)
60-64: Device model names still miss the mandatory “AXIS” prefix (repeat notice)
Guidelines require product names to be written as “AXIS D4100-E”, “AXIS D4100-VE Mk II”, etc.
Please update this bullet accordingly.
🧹 Nitpick comments (3)
project-strobe-color-from-github-workflow/trigger_strobe.sh (1)
31-34: Minor: credentials leak via process list
Passing${VAPIX_PASSWORD}on the command line exposes it tops/top. Consider supplying credentials with--netrcor via an HTTP header instead.
(Understandable if this is an acceptable trade-off on constrained Axis devices, but worth noting.)project-strobe-color-from-github-workflow/README.md (2)
91-93: Typo: “concatanating” → “concatenating”-… parameter by concatanating them with `;` +… parameter by concatenating them with `;`
142-146: Capitalisation: “Github” → “GitHub”
Brand name should be capitalised consistently.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
📒 Files selected for processing (9)
README.md(1 hunks)project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/config_input_github.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_strobe.conf(1 hunks)project-strobe-color-from-github-workflow/config_process_github.conf(1 hunks)project-strobe-color-from-github-workflow/test_files/config_input_file.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- project-strobe-color-from-github-workflow/config_output_stdout.conf
🚧 Files skipped from review as they are similar to previous changes (6)
- project-strobe-color-from-github-workflow/config_agent.conf
- project-strobe-color-from-github-workflow/config_input_github.conf
- project-strobe-color-from-github-workflow/test_files/config_input_file.conf
- README.md
- project-strobe-color-from-github-workflow/config_process_github.conf
- project-strobe-color-from-github-workflow/config_output_strobe.conf
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit Configuration File
Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches.
Files:
project-strobe-color-from-github-workflow/trigger_strobe.shproject-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be refered to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/trigger_strobe.shproject-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (12)
📓 Common learnings
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Learnt from: daniel-falk
PR: fixedit-ai/client-faunia#42
File: .github/workflows/build_and_test.yml:58-62
Timestamp: 2024-11-05T08:27:27.211Z
Learning: In this repository, it's acceptable to use `fixedit-ai/install-fappcli-action@main` to test the latest main version.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 Shellcheck (0.10.0)
project-strobe-color-from-github-workflow/trigger_strobe.sh
[warning] 88-88: In POSIX sh, 'local' is undefined.
(SC3043)
[warning] 89-89: In POSIX sh, 'local' is undefined.
(SC3043)
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[style] ~91-~91: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...tic access (see instructions below). 1. Create the color profiles in the Axis strobe (...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~92-~92: Ensure spelling is correct
Context: ...tion under the Extra env parameter by concatanating them with ; (e.g. `GITHUB_TOKEN=my-to...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~148-~148: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
41-41: Link fragments should be valid
(MD051, link-fragments)
42-42: Link fragments should be valid
(MD051, link-fragments)
43-43: Spaces inside link text
(MD039, no-space-in-links)
43-43: Link fragments should be valid
(MD051, link-fragments)
44-44: Link fragments should be valid
(MD051, link-fragments)
45-45: Link fragments should be valid
(MD051, link-fragments)
46-46: Link fragments should be valid
(MD051, link-fragments)
537-537: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
3e4e57e to
8925b9e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (2)
project-strobe-color-from-github-workflow/trigger_strobe.sh (2)
88-90:localis non-portable in/bin/shscripts
localis a Bash/BusyBox extension and undefined in strict POSIX/bin/sh. Either drop it or change the shebang to Bash.
(Identical remark was raised previously.)
95-97:curlcall: propagate HTTP errors & send correct content-type
Without--faila 4xx/5xx response is treated as success; without aContent-Typeheader the payload isapplication/x-www-form-urlencoded.- curl --digest -u ${VAPIX_USERNAME}:${VAPIX_PASSWORD} "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ - -X POST \ - -d "{\"apiVersion\":\"1.0\",\"method\":\"$action\",\"params\":{\"profile\":\"$profile\"}}" + curl --fail --silent --show-error --digest \ + -u "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" \ + -H "Content-Type: application/json" \ + -X POST "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ + --data "{\"apiVersion\":\"1.0\",\"method\":\"$action\",\"params\":{\"profile\":\"$profile\"}}"
🧹 Nitpick comments (4)
README.md (1)
3-3: Avoid “Axis network cameras” wording – use the neutral “Axis devices”
Per the repo documentation guidelines we should avoid spotlighting cameras unless the solution is strictly visual-analytics related.
Consider re-phrasing to keep the intro device-agnostic.-This repository provides resources for the [FixedIT Data Agent ACAP](https://fixedit.ai/products-data-agent/) for the Axis network cameras and other Axis devices. +This repository provides resources for the [FixedIT Data Agent ACAP](https://fixedit.ai/products-data-agent/) for Axis devices —including network cameras, strobes, speakers, and other peripherals.project-strobe-color-from-github-workflow/trigger_strobe.sh (1)
1-2: Consider safe-shell defaults
Addingset -euo pipefailafter the shebang will make the script abort on the first error, unset variable, or failed pipeline, simplifying later debugging.project-strobe-color-from-github-workflow/README.md (2)
92-93: Typo: “concatanating” → “concatenating”-... parameter by concatanating them with `;` ... +... parameter by concatenating them with `;` ...
142-145: Minor style / brand spelling“Github Setting” → “GitHub Settings” to match official naming and plural form.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
📒 Files selected for processing (9)
README.md(1 hunks)project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/config_input_github.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_strobe.conf(1 hunks)project-strobe-color-from-github-workflow/config_process_github.conf(1 hunks)project-strobe-color-from-github-workflow/test_files/config_input_file.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
- project-strobe-color-from-github-workflow/config_output_stdout.conf
- project-strobe-color-from-github-workflow/config_agent.conf
- project-strobe-color-from-github-workflow/config_input_github.conf
- project-strobe-color-from-github-workflow/config_process_github.conf
- project-strobe-color-from-github-workflow/test_files/config_input_file.conf
- project-strobe-color-from-github-workflow/config_output_strobe.conf
🧰 Additional context used
📓 Path-based instructions (3)
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
README.mdproject-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be refered to from other sources like the top-level README.md file.
Files:
README.mdproject-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/trigger_strobe.sh
project-*/**
⚙️ CodeRabbit Configuration File
Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches.
Files:
project-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/trigger_strobe.sh
🧠 Learnings (20)
📓 Common learnings
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` for consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in `sshconnector/readme.md`, the release notes section may intentionally include both the new and ol...
Learnt from: daniel-falk
PR: fixedit-ai/client-leela-ai#95
File: SSHConnector/app/manifest.new.json:15-15
Timestamp: 2024-10-11T23:20:54.878Z
Learning: In `SSHConnector/README.md`, the release notes section may intentionally include both the new and old version numbers for documentation purposes.
Applied to files:
README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, functions in shared code like `find_and_connect_to_server`...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#313
File: acaps/shared_code/include/shared/server.h:124-127
Timestamp: 2025-06-26T12:38:46.233Z
Learning: In the fixedit-ai/fixedit-agents project, functions in shared code like `find_and_connect_to_server` in `acaps/shared_code/include/shared/server.h` are internal APIs used within the application, not public APIs. API breaking change concerns only apply to external interfaces, not internal function signature changes.
Applied to files:
README.md
📚 Learning: for prototype-level vscode plugin development, extensive documentation updates to readme and changel...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/assets/html/results.template.html:1-9
Timestamp: 2025-06-23T08:46:04.049Z
Learning: For prototype-level VSCode plugin development, extensive documentation updates to README and CHANGELOG are not prioritized until the core functionality is established.
Applied to files:
README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.md
📚 Learning: in the developer-program-helper-scripts repository, http (instead of https) is acceptable for axis c...
Learnt from: daniel-falk
PR: fixedit-ai/Developer-Program-Helper-Scripts#3
File: Network-APIs/Data-Collection/collect_images.py:39-68
Timestamp: 2025-04-04T11:50:21.252Z
Learning: In the Developer-Program-Helper-Scripts repository, HTTP (instead of HTTPS) is acceptable for Axis camera API requests since the scripts are intended for local development and testing environments.
Applied to files:
README.mdproject-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/trigger_strobe.sh
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in `bootstrap_agent/app/src/modules/vapix/vapix.c`, when handling curl errors, using `curl_easy_stre...
Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:296-309
Timestamp: 2024-10-28T09:38:09.979Z
Learning: In `bootstrap_agent/app/src/modules/vapix/vapix.c`, when handling cURL errors, using `curl_easy_strerror(curl_retval)` provides sufficient error details, so additional error categorization is redundant.
Applied to files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
📚 Learning: in the `bootstrap_agent/app/src/modules/vapix/vapix.c`, when the application sends curl requests to ...
Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:268-272
Timestamp: 2024-10-23T10:19:57.206Z
Learning: In the `bootstrap_agent/app/src/modules/vapix/vapix.c`, when the application sends cURL requests to itself (localhost), it's acceptable to use HTTP even when transmitting credentials, because the communication is internal to the device.
Applied to files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
📚 Learning: in `bootstrap_agent/app/src/modules/vapix/vapix.c`, adding curl timeout configurations in the `vapix...
Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:263-264
Timestamp: 2024-10-28T14:12:47.044Z
Learning: In `bootstrap_agent/app/src/modules/vapix/vapix.c`, adding cURL timeout configurations in the `vapix_get` function may break backward compatibility, so such changes may need to be postponed.
Applied to files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
📚 Learning: all vapix requests that handle user input from config files must implement proper input validation a...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#129
File: acaps/config_agent/app/src/vapix_recording.cpp:43-49
Timestamp: 2025-01-07T14:54:30.168Z
Learning: All VAPIX requests that handle user input from config files must implement proper input validation and URL encoding to prevent injection attacks. This includes validating the input format and using URL encoding functions (e.g., curl_easy_escape) for parameter values.
Applied to files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[style] ~91-~91: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...tic access (see instructions below). 1. Create the color profiles in the Axis strobe (...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~92-~92: Ensure spelling is correct
Context: ...tion under the Extra env parameter by concatanating them with ; (e.g. `GITHUB_TOKEN=my-to...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~148-~148: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
41-41: Link fragments should be valid
(MD051, link-fragments)
42-42: Link fragments should be valid
(MD051, link-fragments)
43-43: Spaces inside link text
(MD039, no-space-in-links)
43-43: Link fragments should be valid
(MD051, link-fragments)
44-44: Link fragments should be valid
(MD051, link-fragments)
45-45: Link fragments should be valid
(MD051, link-fragments)
46-46: Link fragments should be valid
(MD051, link-fragments)
537-537: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🪛 Shellcheck (0.10.0)
project-strobe-color-from-github-workflow/trigger_strobe.sh
[warning] 88-88: In POSIX sh, 'local' is undefined.
(SC3043)
[warning] 89-89: In POSIX sh, 'local' is undefined.
(SC3043)
🔇 Additional comments (1)
project-strobe-color-from-github-workflow/trigger_strobe.sh (1)
95-97: Quote variable expansions to avoid word-splitting/globbing
"${VAPIX_USERNAME}:${VAPIX_PASSWORD}"and"${VAPIX_IP}"should be quoted to survive passwords with spaces or shell wildcards.[ suggest_nitpick ]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (2)
project-strobe-color-from-github-workflow/trigger_strobe.sh (2)
88-90: Fix POSIX shell compatibility issues.The script uses
localwhich is not POSIX compliant and will fail on systems where/bin/shis linked todashor other minimal shells.Since this script will be deployed on Axis devices that typically have
/bin/shpointing to bash-compatible shells, you should either:
- Change the shebang to explicitly use bash:
-#!/bin/sh +#!/usr/bin/env bash
- Or remove the
localkeywords for POSIX compliance:- local profile=$1 # Profile name (green, yellow, red) - local action=$2 # Action to perform (start, stop) + profile=$1 # Profile name (green, yellow, red) + action=$2 # Action to perform (start, stop)
95-98: Improve curl error handling and content-type specification.The curl command lacks proper error handling and doesn't specify the JSON content-type header, which could cause VAPIX API calls to fail silently.
Apply this fix to ensure proper error handling and JSON content-type:
- curl --digest -u ${VAPIX_USERNAME}:${VAPIX_PASSWORD} "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ - -X POST \ - -d "{\"apiVersion\":\"1.0\",\"method\":\"$action\",\"params\":{\"profile\":\"$profile\"}}" + curl --fail --silent --show-error --digest \ + -u "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" \ + -H "Content-Type: application/json" \ + -X POST "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ + --data "{\"apiVersion\":\"1.0\",\"method\":\"$action\",\"params\":{\"profile\":\"$profile\"}}"This ensures HTTP errors are properly detected and the payload is sent as JSON.
🧹 Nitpick comments (2)
project-strobe-color-from-github-workflow/README.md (2)
79-79: Minor style improvement for compound adjective.Consider adding a hyphen to the compound adjective for better readability.
-...to an intelligent device that can poll third party APIs and set its color... +...to an intelligent device that can poll third-party APIs and set its color...
537-539: Add language specification for fenced code block.The error output example should specify the language for proper syntax highlighting.
-``` +```text Error in plugin: received status code 401 (Unauthorized)</blockquote></details> </blockquote></details> <details> <summary>📜 Review details</summary> **Configuration used: .coderabbit.yaml** **Review profile: CHILL** **Plan: Pro (Legacy)** <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 056bec0157e06ecbbd730434191ef1fd1e2ed408 and 8925b9ec891bf78c73fd0e5a634b3bb0b227194a. </details> <details> <summary>📒 Files selected for processing (9)</summary> * `README.md` (1 hunks) * `project-strobe-color-from-github-workflow/README.md` (1 hunks) * `project-strobe-color-from-github-workflow/config_agent.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_input_github.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_output_stdout.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_output_strobe.conf` (1 hunks) * `project-strobe-color-from-github-workflow/config_process_github.conf` (1 hunks) * `project-strobe-color-from-github-workflow/test_files/config_input_file.conf` (1 hunks) * `project-strobe-color-from-github-workflow/trigger_strobe.sh` (1 hunks) </details> <details> <summary>✅ Files skipped from review due to trivial changes (1)</summary> * project-strobe-color-from-github-workflow/test_files/config_input_file.conf </details> <details> <summary>🚧 Files skipped from review as they are similar to previous changes (5)</summary> * project-strobe-color-from-github-workflow/config_agent.conf * project-strobe-color-from-github-workflow/config_output_strobe.conf * project-strobe-color-from-github-workflow/config_process_github.conf * project-strobe-color-from-github-workflow/config_output_stdout.conf * project-strobe-color-from-github-workflow/config_input_github.conf </details> <details> <summary>🧰 Additional context used</summary> <details> <summary>📓 Path-based instructions (3)</summary> <details> <summary>**/*.md</summary> **⚙️ CodeRabbit Configuration File** > Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used. Files: - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>**/*</summary> **⚙️ CodeRabbit Configuration File** > This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be refered to from other sources like the top-level README.md file. Files: - `README.md` - `project-strobe-color-from-github-workflow/README.md` - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> <details> <summary>project-*/**</summary> **⚙️ CodeRabbit Configuration File** > Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Files: - `project-strobe-color-from-github-workflow/README.md` - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> </details><details> <summary>🧠 Learnings (20)</summary> <details> <summary>📓 Common learnings</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers usingprettier -w *.mdfor markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools likeblackfor Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommendautopep8for finding additional issues like incorrect names.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.</details> <details> <summary>📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (text) is preferred over additional heading levels (####) to avoid issues with PDF generation.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...</summary>Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: for prototype-level vscode plugin development, extensive documentation updates to readme and changel...</summary>Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/assets/html/results.template.html:1-9
Timestamp: 2025-06-23T08:46:04.049Z
Learning: For prototype-level VSCode plugin development, extensive documentation updates to README and CHANGELOG are not prioritized until the core functionality is established.**Applied to files:** - `README.md` </details> <details> <summary>📚 Learning: in `sshconnector/readme.md`, the release notes section may intentionally include both the new and ol...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-leela-ai#95
File: SSHConnector/app/manifest.new.json:15-15
Timestamp: 2024-10-11T23:20:54.878Z
Learning: InSSHConnector/README.md, the release notes section may intentionally include both the new and old version numbers for documentation purposes.**Applied to files:** - `README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (likeQUICKSTART_GUIDE.pdf) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the fixedit-ai/fixedit-agents project, functions in shared code like `find_and_connect_to_server`...</summary>Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#313
File: acaps/shared_code/include/shared/server.h:124-127
Timestamp: 2025-06-26T12:38:46.233Z
Learning: In the fixedit-ai/fixedit-agents project, functions in shared code likefind_and_connect_to_serverinacaps/shared_code/include/shared/server.hare internal APIs used within the application, not public APIs. API breaking change concerns only apply to external interfaces, not internal function signature changes.**Applied to files:** - `README.md` </details> <details> <summary>📚 Learning: in the developer-program-helper-scripts repository, http (instead of https) is acceptable for axis c...</summary>Learnt from: daniel-falk
PR: fixedit-ai/Developer-Program-Helper-Scripts#3
File: Network-APIs/Data-Collection/collect_images.py:39-68
Timestamp: 2025-04-04T11:50:21.252Z
Learning: In the Developer-Program-Helper-Scripts repository, HTTP (instead of HTTPS) is acceptable for Axis camera API requests since the scripts are intended for local development and testing environments.**Applied to files:** - `README.md` - `project-strobe-color-from-github-workflow/README.md` - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> <details> <summary>📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.**Applied to files:** - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In theget_osfunction incamera_params.cpp, when parsing OS version strings, Axis OS version components may include letters (e.g.,rc1). Therefore, validation should allow for alphanumeric characters in the version components.**Applied to files:** - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.**Applied to files:** - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the.github/workflows/unit_tests.ymlworkflow, it's acceptable to use only thepushtrigger if running tests on all pushes covers the necessary cases. Including thepull_requesttrigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.**Applied to files:** - `project-strobe-color-from-github-workflow/README.md` </details> <details> <summary>📚 Learning: in `bootstrap_agent/app/src/modules/vapix/vapix.c`, when handling curl errors, using `curl_easy_stre...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:296-309
Timestamp: 2024-10-28T09:38:09.979Z
Learning: Inbootstrap_agent/app/src/modules/vapix/vapix.c, when handling cURL errors, usingcurl_easy_strerror(curl_retval)provides sufficient error details, so additional error categorization is redundant.**Applied to files:** - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> <details> <summary>📚 Learning: in the `bootstrap_agent/app/src/modules/vapix/vapix.c`, when the application sends curl requests to ...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:268-272
Timestamp: 2024-10-23T10:19:57.206Z
Learning: In thebootstrap_agent/app/src/modules/vapix/vapix.c, when the application sends cURL requests to itself (localhost), it's acceptable to use HTTP even when transmitting credentials, because the communication is internal to the device.**Applied to files:** - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> <details> <summary>📚 Learning: in `bootstrap_agent/app/src/modules/vapix/vapix.c`, adding curl timeout configurations in the `vapix...</summary>Learnt from: fixedit-olatz
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/src/modules/vapix/vapix.c:263-264
Timestamp: 2024-10-28T14:12:47.044Z
Learning: Inbootstrap_agent/app/src/modules/vapix/vapix.c, adding cURL timeout configurations in thevapix_getfunction may break backward compatibility, so such changes may need to be postponed.**Applied to files:** - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> <details> <summary>📚 Learning: all vapix requests that handle user input from config files must implement proper input validation a...</summary>Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#129
File: acaps/config_agent/app/src/vapix_recording.cpp:43-49
Timestamp: 2025-01-07T14:54:30.168Z
Learning: All VAPIX requests that handle user input from config files must implement proper input validation and URL encoding to prevent injection attacks. This includes validating the input format and using URL encoding functions (e.g., curl_easy_escape) for parameter values.**Applied to files:** - `project-strobe-color-from-github-workflow/trigger_strobe.sh` </details> </details><details> <summary>🪛 LanguageTool</summary> <details> <summary>project-strobe-color-from-github-workflow/README.md</summary> [uncategorized] ~79-~79: If this is a compound adjective that modifies the following noun, use a hyphen. Context: ... to an intelligent device that can poll third party APIs and set its color based on the API... (EN_COMPOUND_ADJECTIVE_INTERNAL) --- [style] ~91-~91: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. Context: ...tic access (see instructions below). 1. Create the color profiles in the Axis strobe (... (ENGLISH_WORD_REPEAT_BEGINNING_RULE) --- [style] ~148-~148: Try using a synonym here to strengthen your writing. Context: ...o be more specific about what the token gives access to.  </details> </details> <details> <summary>🪛 markdownlint-cli2 (0.17.2)</summary> <details> <summary>project-strobe-color-from-github-workflow/README.md</summary> 41-41: Link fragments should be valid (MD051, link-fragments) --- 42-42: Link fragments should be valid (MD051, link-fragments) --- 43-43: Spaces inside link text (MD039, no-space-in-links) --- 43-43: Link fragments should be valid (MD051, link-fragments) --- 44-44: Link fragments should be valid (MD051, link-fragments) --- 45-45: Link fragments should be valid (MD051, link-fragments) --- 46-46: Link fragments should be valid (MD051, link-fragments) --- 537-537: Fenced code blocks should have a language specified (MD040, fenced-code-language) </details> </details> <details> <summary>🪛 Shellcheck (0.10.0)</summary> <details> <summary>project-strobe-color-from-github-workflow/trigger_strobe.sh</summary> [warning] 88-88: In POSIX sh, 'local' is undefined. (SC3043) --- [warning] 89-89: In POSIX sh, 'local' is undefined. (SC3043) </details> </details> </details> <details> <summary>🔇 Additional comments (16)</summary><blockquote> <details> <summary>project-strobe-color-from-github-workflow/trigger_strobe.sh (4)</summary> `31-34`: **Excellent environment variable validation.** The comprehensive validation of required environment variables with clear error messages follows security best practices and provides helpful debugging information. --- `49-64`: **Robust JSON parsing and validation logic.** The JSON extraction using `jq` with proper null checking and informative error messages demonstrates good defensive programming practices. The error handling covers edge cases like missing fields and JSON parsing failures. --- `69-82`: **Well-designed color validation with helpful error messages.** The case statement provides clear validation of supported colors with descriptive comments explaining each workflow state. The error message guides users on what colors are supported and reminds them about device configuration requirements. --- `113-129`: **Smart exclusive profile management.** The approach of deactivating other profiles when activating a new one is clever and eliminates the need to manage profile priorities. This ensures only one color is active at a time regardless of the profile configuration on the device. </details> <details> <summary>project-strobe-color-from-github-workflow/README.md (7)</summary> `1-4`: **Excellent project introduction with proper FixedIT Data Agent linking.** The introduction clearly explains the project purpose and correctly links to the FixedIT Data Agent product page on first mention, following the coding guidelines perfectly. --- `9-24`: **Outstanding visual documentation with Mermaid flowchart.** The flowchart provides an excellent high-level overview of the system workflow with clear steps and visual styling. This makes the technical process accessible to both IT professionals and developers. --- `54-65`: **Perfect positioning for the target audience.** The "Why Choose This Approach?" section excellently emphasizes the no-C/C++ development aspect and positions the solution for system integrators and IT professionals. The skill requirements are realistic and achievable for the target audience. --- `83-96`: **Clear and actionable setup instructions.** The high-level overview provides a logical sequence of setup steps with specific guidance on environment variable configuration. The concatenation format for multiple environment variables is clearly explained. --- `154-173`: **Comprehensive strobe profile configuration guidance.** The instructions for creating color profiles are thorough and include important details about duration settings and the exclusive operation model. The screenshots will be helpful for users following the setup process. --- `449-570`: **Excellent local testing documentation.** The testing section provides multiple testing scenarios from mock data to full integration testing. The progressive approach allows users to validate each component before moving to full deployment. Environment variable examples and expected outputs make troubleshooting straightforward. --- `421-447`: **Well-structured configuration file explanations.** Each configuration file is clearly explained with its purpose in the data pipeline. The descriptions help users understand how the components work together without being overly technical. </details> <details> <summary>README.md (5)</summary> `5-7`: **Improved documentation structure with proper heading levels.** The conversion from inline bold text to proper Markdown headers improves the document structure and readability. This follows better Markdown practices for hierarchical content organization. --- `13-16`: **Enhanced edge customization section with better structure.** The conversion to proper heading level and expanded introductory paragraph better explains the purpose of edge device customization examples. The emphasis on avoiding ACAP SDK complexity aligns well with the target audience. --- `17-18`: **Excellent project example integration.** The new GitHub Workflow to Strobe Color project example is perfectly positioned and clearly explains the real-world application. The description emphasizes the key benefit of no additional infrastructure requirements. --- `19-34`: **Outstanding visual representation of the workflow.** The Mermaid flowchart provides an immediate understanding of the system operation with clear steps and appealing color styling. This visual element significantly enhances the documentation quality. --- `36-36`: **Perfect summary statement.** The concluding sentence effectively reinforces the key value proposition of using simple configuration files instead of complex embedded development. </details> </blockquote></details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
141cbe7 to
6e70c0e
Compare
2e218da to
c12f501
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
project-strobe-color-from-github-workflow/README.md (5)
79-79: Hyphenate compound adjective “third-party”.Minor language-clarity nit: add a hyphen so the phrase reads as a single adjective.
- third party APIs + third-party APIs
92-92: Fix typo “concatanating” → “concatenating”.- parameter by concatanating them with `;` + parameter by concatenating them with `;`
97-97: Capitalize “GitHub” in the heading.GitHub is a proper noun; keep the case consistent.
-### Creating the github workflow +### Creating the GitHub workflow
142-145: Consistent “GitHub” casing in bullet list.-1. Go to Github Settings by pressing your profile picture in the top right corner and select "Settings" +1. Go to GitHub Settings by pressing your profile picture in the top right corner and select "Settings"(Apply the same change to any other “Github” occurrences in these steps.)
535-539: Specify a language for the fenced code block.Adds syntax-highlight hint and satisfies MD040.
-``` -Error in plugin: received status code 401 (Unauthorized) -``` +```text +Error in plugin: received status code 401 (Unauthorized) +```
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
⛔ Files ignored due to path filters (4)
project-strobe-color-from-github-workflow/.images/axis-strobe-all-profiles.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/axis-strobe-profile-configuration.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/github-token.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/webinar-on-youtube.pngis excluded by!**/*.png
📒 Files selected for processing (10)
project-strobe-color-from-github-workflow/.gitignore(1 hunks)project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/config_input_github.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_strobe.conf(1 hunks)project-strobe-color-from-github-workflow/config_process_github.conf(1 hunks)project-strobe-color-from-github-workflow/sample.json(1 hunks)project-strobe-color-from-github-workflow/test_files/config_input_file.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (9)
- project-strobe-color-from-github-workflow/config_output_strobe.conf
- project-strobe-color-from-github-workflow/config_input_github.conf
- project-strobe-color-from-github-workflow/sample.json
- project-strobe-color-from-github-workflow/test_files/config_input_file.conf
- project-strobe-color-from-github-workflow/trigger_strobe.sh
- project-strobe-color-from-github-workflow/config_agent.conf
- project-strobe-color-from-github-workflow/.gitignore
- project-strobe-color-from-github-workflow/config_output_stdout.conf
- project-strobe-color-from-github-workflow/config_process_github.conf
🧰 Additional context used
📓 Path-based instructions (2)
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (15)
📓 Common learnings
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the developer-program-helper-scripts repository, http (instead of https) is acceptable for axis c...
Learnt from: daniel-falk
PR: fixedit-ai/Developer-Program-Helper-Scripts#3
File: Network-APIs/Data-Collection/collect_images.py:39-68
Timestamp: 2025-04-04T11:50:21.252Z
Learning: In the Developer-Program-Helper-Scripts repository, HTTP (instead of HTTPS) is acceptable for Axis camera API requests since the scripts are intended for local development and testing environments.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[uncategorized] ~79-~79: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... to an intelligent device that can poll third party APIs and set its color based on the API...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~91-~91: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...tic access (see instructions below). 1. Create the color profiles in the Axis strobe (...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~148-~148: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
41-41: Link fragments should be valid
(MD051, link-fragments)
42-42: Link fragments should be valid
(MD051, link-fragments)
43-43: Spaces inside link text
(MD039, no-space-in-links)
43-43: Link fragments should be valid
(MD051, link-fragments)
44-44: Link fragments should be valid
(MD051, link-fragments)
45-45: Link fragments should be valid
(MD051, link-fragments)
46-46: Link fragments should be valid
(MD051, link-fragments)
537-537: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
project-strobe-color-from-github-workflow/config_output_strobe.conf
Outdated
Show resolved
Hide resolved
c12f501 to
8ca289e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (2)
project-strobe-color-from-github-workflow/README.md (2)
308-310: Add language identifiers to fenced code blocks
markdownlintflags these three code blocks for missing language tags (MD040).
Usetextfor plain console output or the appropriate language (e.g.json) to enable syntax highlighting.-``` +```text { "fields": { "color": "green" }, ... }Also applies to: 341-343, 374-376
348-350: Fix duplicate heading “Run locally with real GitHub API data”This heading appears twice, which breaks anchor generation and confuses navigation.
Rename one of them or merge the two sections.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
⛔ Files ignored due to path filters (4)
project-strobe-color-from-github-workflow/.images/axis-strobe-all-profiles.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/axis-strobe-profile-configuration.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/github-token.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/webinar-on-youtube.pngis excluded by!**/*.png
📒 Files selected for processing (10)
project-strobe-color-from-github-workflow/.gitignore(1 hunks)project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/config_input_github.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_strobe.conf(1 hunks)project-strobe-color-from-github-workflow/config_process_github.conf(1 hunks)project-strobe-color-from-github-workflow/sample.json(1 hunks)project-strobe-color-from-github-workflow/test_files/config_input_file.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- project-strobe-color-from-github-workflow/test_files/config_input_file.conf
🚧 Files skipped from review as they are similar to previous changes (8)
- project-strobe-color-from-github-workflow/trigger_strobe.sh
- project-strobe-color-from-github-workflow/config_output_stdout.conf
- project-strobe-color-from-github-workflow/config_agent.conf
- project-strobe-color-from-github-workflow/config_input_github.conf
- project-strobe-color-from-github-workflow/.gitignore
- project-strobe-color-from-github-workflow/sample.json
- project-strobe-color-from-github-workflow/config_output_strobe.conf
- project-strobe-color-from-github-workflow/config_process_github.conf
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit Configuration File
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (16)
📓 Common learnings
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:78-82
Timestamp: 2025-08-05T17:57:02.556Z
Learning: User daniel-falk prefers allowing curl to receive HTML error responses (without --fail flag) and then parsing/grepping the content to extract meaningful error messages for debug logging, rather than having curl fail immediately on HTTP errors. This approach provides more detailed troubleshooting information even though it requires additional validation steps.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:69-76
Timestamp: 2025-08-05T17:57:22.613Z
Learning: User daniel-falk prefers capturing and logging actual server error responses (even HTML error pages) over failing fast with curl --fail, because it provides more detailed debugging information and meaningful error messages for troubleshooting in prototype environments.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/mqtt_image_request_handler.sh:68-73
Timestamp: 2025-08-05T17:58:27.113Z
Learning: User daniel-falk takes a pragmatic approach to security in prototype environments - when input is controlled by their own system (like hardcoded parameter names and controlled MQTT messages), theoretical vulnerabilities like regex meta-character issues in parsing functions are acceptable rather than requiring defensive over-engineering.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: - when suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` f...
Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` for consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh, daniel-falk implemented...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:69-76
Timestamp: 2025-08-05T17:57:22.613Z
Learning: In prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh, daniel-falk implemented sophisticated error handling that decodes base64 responses and greps for HTML error pages, logging the full server error response content for debugging. This approach is preferred over curl --fail because it captures meaningful error messages from the VAPIX API rather than just generic failure status.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the developer-program-helper-scripts repository, http (instead of https) is acceptable for axis c...
Learnt from: daniel-falk
PR: fixedit-ai/Developer-Program-Helper-Scripts#3
File: Network-APIs/Data-Collection/collect_images.py:39-68
Timestamp: 2025-04-04T11:50:21.252Z
Learning: In the Developer-Program-Helper-Scripts repository, HTTP (instead of HTTPS) is acceptable for Axis camera API requests since the scripts are intended for local development and testing environments.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[style] ~145-~145: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
308-308: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
341-341: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
348-348: Multiple headings with the same content
(MD024, no-duplicate-heading)
374-374: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (1)
project-strobe-color-from-github-workflow/README.md (1)
57-61: Narrow the AXIS OS compatibility claim“Should be compatible with AXIS OS 11 and 12+” is broader than the guidelines permit.
Document the exact AXIS OS version(s) you have tested (e.g. “verified on AXIS OS 11.8.70 and 12.04.3”) or explicitly mark unverified versions as assumed.
This aligns with the conservative-compatibility preference noted in past reviews.
8ca289e to
ac0785c
Compare
|
Fixed comments and validated it against the latest coderabbit instructions.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
project-strobe-color-from-github-workflow/README.md (3)
41-63: Several ToC entries point to non-existing / conflicting anchors
Because of underscores and the duplicate heading noted above, markdown-lint flags MD051 for lines 57-63. After you fix the duplicate heading, regenerate the ToC (e.g. withmarkdown-toc) so anchor fragments match the final headings.
342-346: Add a language identifier to plain-text fenced blocks to silence MD040
Three fenced blocks that only show log/error output are missing a language tag (e.g. Lines 342-346, 375-378, 408-411). Appendtextto each opening fence:-``` +```text Error in plugin: received status code 401 (Unauthorized)Repeat for the other two blocks.
Also applies to: 375-378, 408-411
83-86: Hyphenate “third-party” (compound adjective)
Line 85: “third party APIs” → “third-party APIs”.
Very minor, but resolves the LanguageTool warning and reads better.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
📒 Files selected for processing (3)
project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/config_output_strobe.conf(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- project-strobe-color-from-github-workflow/config_agent.conf
- project-strobe-color-from-github-workflow/config_output_strobe.conf
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit Configuration File
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (21)
📓 Common learnings
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:78-82
Timestamp: 2025-08-05T17:57:02.556Z
Learning: User daniel-falk prefers allowing curl to receive HTML error responses (without --fail flag) and then parsing/grepping the content to extract meaningful error messages for debug logging, rather than having curl fail immediately on HTTP errors. This approach provides more detailed troubleshooting information even though it requires additional validation steps.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:69-76
Timestamp: 2025-08-05T17:57:22.613Z
Learning: User daniel-falk prefers capturing and logging actual server error responses (even HTML error pages) over failing fast with curl --fail, because it provides more detailed debugging information and meaningful error messages for troubleshooting in prototype environments.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/mqtt_image_request_handler.sh:68-73
Timestamp: 2025-08-05T17:58:27.113Z
Learning: User daniel-falk takes a pragmatic approach to security in prototype environments - when input is controlled by their own system (like hardcoded parameter names and controlled MQTT messages), theoretical vulnerabilities like regex meta-character issues in parsing functions are acceptable rather than requiring defensive over-engineering.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when reviewing markdown files in the fixedit-ai/fixedit-agents repository, always verify formatting ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: When reviewing markdown files in the fixedit-ai/fixedit-agents repository, always verify formatting suggestions by running `prettier --check` before suggesting changes. Daniel-falk consistently uses proper automated formatting, and apparent "formatting issues" may actually be correctly formatted content that just looks different in diff context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: - when suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` f...
Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` for consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode extension project vscode_plugins/acap-documentation-viewer, license.fixedit-developer-...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/LICENSE.fixedit-developer-friend:1-7
Timestamp: 2025-06-16T15:00:54.820Z
Learning: In the VSCode extension project vscode_plugins/acap-documentation-viewer, LICENSE.fixedit-developer-friend is an intermediate source file used by the generate-licenses.js script to autogenerate the complete LICENSE file. The main LICENSE file should be referenced in package.json and documentation, not the intermediate .fixedit-developer-friend file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, the license file generated by generate-lice...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/.gitignore:6-6
Timestamp: 2025-06-24T12:30:24.097Z
Learning: In the vscode_plugins/acap-documentation-viewer project, the LICENSE file generated by generate-licenses.js should be ignored in .gitignore and not version controlled, as it's a build artifact that consolidates dependency licenses.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents repository, when daniel-falk states that prettier has been used on ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: In the fixedit-ai/fixedit-agents repository, when daniel-falk states that Prettier has been used on markdown files, the formatting is typically already correct and no additional changes are needed. LanguageTool warnings on technical markdown content (like MQTT topic structures and configuration lists) are often false positives rather than actual formatting issues.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `bootstrap_agent` project, avoid using at-notations (e.g., `@param`, `@return`) in comments, ...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/include/modules/vapix/vapix.h:0-0
Timestamp: 2024-10-28T15:20:41.902Z
Learning: In the `bootstrap_agent` project, avoid using at-notations (e.g., `param`, `return`) in comments, as documentation generation tools are not used. Write comments for human consumption instead.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the `get_file_content` function in `acaps/config_agent/app/src/main.cpp` already has a todo comment ...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/config_agent/app/src/main.cpp:122-135
Timestamp: 2025-05-14T07:58:33.544Z
Learning: The `get_file_content` function in `acaps/config_agent/app/src/main.cpp` already has a TODO comment about improving error handling with more C++ styled approaches, making suggestions about this redundant.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[uncategorized] ~85-~85: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... to an intelligent device that can poll third party APIs and set its color based on the API...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~179-~179: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
57-57: Link fragments should be valid
(MD051, link-fragments)
58-58: Link fragments should be valid
(MD051, link-fragments)
59-59: Link fragments should be valid
(MD051, link-fragments)
60-60: Link fragments should be valid
(MD051, link-fragments)
61-61: Link fragments should be valid
(MD051, link-fragments)
62-62: Link fragments should be valid
(MD051, link-fragments)
342-342: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
375-375: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
382-382: Multiple headings with the same content
(MD024, no-duplicate-heading)
408-408: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (2)
project-strobe-color-from-github-workflow/README.md (2)
35-36: Axis model names now follow mandatory “AXIS ” convention – good job
The earlier violation of the naming rule is resolved; the models are now fully prefixed and spelled out exactly as required.
445-446: Verify that a LICENSE file has been added alongside this README
README references./LICENSE, but the file wasn’t part of this diff. The project-folder requirements mandate an explicit license file. Please confirm it exists in the PR branch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
project-strobe-color-from-github-workflow/README.md (3)
83-85: Add hyphen in compound adjective “third-party”- … poll third party APIs … + … poll third-party APIs …
341-344: Specify a language for the fenced blockGitHub-flavoured Markdown lints (MD040) on unlabeled code fences.
Add a language identifier (e.g.text) after the opening back-ticks.-``` +```text Error in plugin: received status code 401 (Unauthorized)
375-378: Same unlabeled fence hereApply the same fix as above to silence MD040.
-``` +```text Error: curl: (22) The requested URL returned error: 401 Error: Failed to start profile 'green'
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
📒 Files selected for processing (1)
project-strobe-color-from-github-workflow/README.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit Configuration File
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (21)
📓 Common learnings
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:78-82
Timestamp: 2025-08-05T17:57:02.556Z
Learning: User daniel-falk prefers allowing curl to receive HTML error responses (without --fail flag) and then parsing/grepping the content to extract meaningful error messages for debug logging, rather than having curl fail immediately on HTTP errors. This approach provides more detailed troubleshooting information even though it requires additional validation steps.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:69-76
Timestamp: 2025-08-05T17:57:22.613Z
Learning: User daniel-falk prefers capturing and logging actual server error responses (even HTML error pages) over failing fast with curl --fail, because it provides more detailed debugging information and meaningful error messages for troubleshooting in prototype environments.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/mqtt_image_request_handler.sh:68-73
Timestamp: 2025-08-05T17:58:27.113Z
Learning: User daniel-falk takes a pragmatic approach to security in prototype environments - when input is controlled by their own system (like hardcoded parameter names and controlled MQTT messages), theoretical vulnerabilities like regex meta-character issues in parsing functions are acceptable rather than requiring defensive over-engineering.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: in the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-app...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, public documentation (readme, changelog) is...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to pdf ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-developer-friend repository, the project has migrated from individual pret...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when creating github issues for refactoring tasks in the fixedit codebase, include comprehensive fil...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the fixedit-ai/fixedit-agents project does not document api endpoints in the changelog. api endpoint...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in this project, changelog entries in *_spec.md files are historical records and should remain uncha...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, documents like fixedit_data_agent_config_spec.md that are ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `get_os` function in `camera_params.cpp`, when parsing os version strings, axis os version co...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the github actions workflows for this repository, the fixedit cli will produce an error if multip...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger i...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: - when suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` f...
Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` for consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode extension project vscode_plugins/acap-documentation-viewer, license.fixedit-developer-...
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/LICENSE.fixedit-developer-friend:1-7
Timestamp: 2025-06-16T15:00:54.820Z
Learning: In the VSCode extension project vscode_plugins/acap-documentation-viewer, LICENSE.fixedit-developer-friend is an intermediate source file used by the generate-licenses.js script to autogenerate the complete LICENSE file. The main LICENSE file should be referenced in package.json and documentation, not the intermediate .fixedit-developer-friend file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the vscode_plugins/acap-documentation-viewer project, the license file generated by generate-lice...
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/.gitignore:6-6
Timestamp: 2025-06-24T12:30:24.097Z
Learning: In the vscode_plugins/acap-documentation-viewer project, the LICENSE file generated by generate-licenses.js should be ignored in .gitignore and not version controlled, as it's a build artifact that consolidates dependency licenses.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: when reviewing markdown files in the fixedit-ai/fixedit-agents repository, always verify formatting ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: When reviewing markdown files in the fixedit-ai/fixedit-agents repository, always verify formatting suggestions by running `prettier --check` before suggesting changes. Daniel-falk consistently uses proper automated formatting, and apparent "formatting issues" may actually be correctly formatted content that just looks different in diff context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents project, pdf conversion constraints take precedence over markdown l...
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the fixedit-ai/fixedit-agents repository, when daniel-falk states that prettier has been used on ...
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: In the fixedit-ai/fixedit-agents repository, when daniel-falk states that Prettier has been used on markdown files, the formatting is typically already correct and no additional changes are needed. LanguageTool warnings on technical markdown content (like MQTT topic structures and configuration lists) are often false positives rather than actual formatting issues.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: in the `bootstrap_agent` project, avoid using at-notations (e.g., `@param`, `@return`) in comments, ...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/include/modules/vapix/vapix.h:0-0
Timestamp: 2024-10-28T15:20:41.902Z
Learning: In the `bootstrap_agent` project, avoid using at-notations (e.g., `param`, `return`) in comments, as documentation generation tools are not used. Write comments for human consumption instead.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: the `get_file_content` function in `acaps/config_agent/app/src/main.cpp` already has a todo comment ...
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/config_agent/app/src/main.cpp:122-135
Timestamp: 2025-05-14T07:58:33.544Z
Learning: The `get_file_content` function in `acaps/config_agent/app/src/main.cpp` already has a TODO comment about improving error handling with more C++ styled approaches, making suggestions about this redundant.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[uncategorized] ~84-~84: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... to an intelligent device that can poll third party APIs and set its color based on the API...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~180-~180: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
57-57: Link fragments should be valid
(MD051, link-fragments)
58-58: Link fragments should be valid
(MD051, link-fragments)
59-59: Link fragments should be valid
(MD051, link-fragments)
60-60: Link fragments should be valid
(MD051, link-fragments)
61-61: Link fragments should be valid
(MD051, link-fragments)
62-62: Link fragments should be valid
(MD051, link-fragments)
342-342: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
375-375: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
project-strobe-color-from-github-workflow/README.md (1)
414-416: Add a missing LICENSE file to the project rootThe README (project-strobe-color-from-github-workflow/README.md, lines 414–416) references
./LICENSE, but no such file exists in the PR. Please either:
- Add the
LICENSEfile atproject-strobe-color-from-github-workflow/LICENSE(containing your MIT text), or- Update/remove the link in the README to point to the correct license location.
🧹 Nitpick comments (4)
project-strobe-color-from-github-workflow/README.md (4)
342-345: Add a language specifier to the fenced error-message blockMarkdown-lint flags MD040 because the block lacks a language hint.
Addingtext(orconsole) keeps tooling quiet and makes the snippet render with proper styling.-``` +```text Error in plugin: received status code 401 (Unauthorized)
375-378: Second code block also missing a language specifier (MD040)Same issue as above—add a language hint to avoid markdown-lint warnings.
-``` +```text Error: curl: (22) The requested URL returned error: 401 Error: Failed to start profile 'green'
384-384: Typo: “thw” → “the”Line reads: “This will test thw same functionality…”.
Minor spelling fix improves polish.
90-92: Be precise about tested AXIS OS versionsGuidelines recommend documenting only versions that have been explicitly tested instead of “11 and 12+”.
If you have verified on, e.g., 11.9 and 12.3, state those concrete versions to avoid over-promising compatibility.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)
📒 Files selected for processing (1)
project-strobe-color-from-github-workflow/README.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit Configuration File
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit Configuration File
Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit Configuration File
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (28)
📓 Common learnings
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: In the fixedit-ai/fixedit-agents repository, when daniel-falk states that Prettier has been used on markdown files, the formatting is typically already correct and no additional changes are needed. LanguageTool warnings on technical markdown content (like MQTT topic structures and configuration lists) are often false positives rather than actual formatting issues.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/utils/utils.ts:1-1
Timestamp: 2025-06-16T15:00:52.939Z
Learning: User daniel-falk prefers using established, well-tested JavaScript libraries over custom implementations for standard functionality like string sanitization, URL validation, and template inflation, especially for security-critical operations.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:67-67
Timestamp: 2025-07-27T10:49:53.485Z
Learning: User daniel-falk prefers explicit type annotations with proper dependencies over fallback mechanisms that silently disable type checking. He believes that if proper type hints are used, the required libraries should be added as dependencies rather than falling back to Any, which defeats the purpose of type checking.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:78-82
Timestamp: 2025-08-05T17:57:02.556Z
Learning: User daniel-falk prefers allowing curl to receive HTML error responses (without --fail flag) and then parsing/grepping the content to extract meaningful error messages for debug logging, rather than having curl fail immediately on HTTP errors. This approach provides more detailed troubleshooting information even though it requires additional validation steps.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:0-0
Timestamp: 2025-07-27T10:43:21.696Z
Learning: User daniel-falk prefers conservative documentation that only claims compatibility with Python versions that are actually tested, rather than making broad compatibility claims like "Python 3.8+" without verification. He believes it's better to document the specific version being used and tested rather than potentially fragile compatibility statements.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/axis_image_consumer.sh:69-76
Timestamp: 2025-08-05T17:57:22.613Z
Learning: User daniel-falk prefers capturing and logging actual server error responses (even HTML error pages) over failing fast with curl --fail, because it provides more detailed debugging information and meaningful error messages for troubleshooting in prototype environments.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/cloud_formation/web-service.yaml:67-67
Timestamp: 2025-07-28T10:11:12.253Z
Learning: User daniel-falk prefers managing sensitive configuration like API tokens through environment variables that are validated at deployment time, with clear error messages when required variables are missing. For CI/CD scenarios, these should be configured as repository secrets rather than hardcoded values.
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/mqtt_image_request_handler.sh:68-73
Timestamp: 2025-08-05T17:58:27.113Z
Learning: User daniel-falk takes a pragmatic approach to security in prototype environments - when input is controlled by their own system (like hardcoded parameter names and controlled MQTT messages), theoretical vulnerabilities like regex meta-character issues in parsing functions are acceptable rather than requiring defensive over-engineering.
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
📚 Learning: 2025-05-15T13:40:02.484Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/telegraf_agent/frontend/README.md:2-3
Timestamp: 2025-05-15T13:40:02.484Z
Learning: In the fixedit-ai/client-doordash repository, detailed documentation should be maintained in per-application README files rather than in the main README.md file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-01T08:43:55.730Z
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#14
File: vscode_plugins/acap-documentation-viewer/DEVELOP.md:85-85
Timestamp: 2025-08-01T08:43:55.730Z
Learning: In the vscode_plugins/acap-documentation-viewer project, public documentation (README, CHANGELOG) is intended for end users of the VS Code extension and should not include internal implementation details like data type conversion flows or system architecture. Developer documentation (DEVELOP.md) is the appropriate place for internal technical details that developers working on the extension need to understand.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-23T14:25:38.892Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:41-45
Timestamp: 2025-07-23T14:25:38.892Z
Learning: In the fixedit-ai/fixedit-agents project, when creating documentation that will be converted to PDF (like QUICKSTART_GUIDE.md), PDF output quality and formatting takes priority over GitHub markdown rendering. LaTeX environments like \begin{scriptsize} and \begin{verbatim} should be preserved even if they break GitHub preview, because end users primarily read the PDF versions rather than the GitHub markdown. This prioritizes user experience over developer experience.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-05T08:10:49.466Z
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/class/IndexResult.ts:0-0
Timestamp: 2025-08-05T08:10:49.466Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter for comprehensive code linting and formatting. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to 'all' for automatic code formatting.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-05T08:10:57.754Z
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#18
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:30-49
Timestamp: 2025-08-05T08:10:57.754Z
Learning: In the fixedit-ai/FixedIT-Developer-Friend repository, the project has migrated from individual Prettier and ESLint CI/CD jobs to using MegaLinter as the unified linting and formatting solution. The old .github/workflows/lint_acap-documentation-viewer.yml workflow was removed and replaced with .github/workflows/mega-linter.yml that uses MegaLinter with APPLY_FIXES set to "all" for automatic fixing.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-18T09:44:13.318Z
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#295
File: acaps/config_agent/app/src/vapix_stream_profiles.cpp:126-134
Timestamp: 2025-06-18T09:44:13.318Z
Learning: When creating GitHub issues for refactoring tasks in the FixedIT codebase, include comprehensive file lists, clear before/after code examples, implementation notes, and proper backlinks to the original discussion for better tracking and context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-18T11:12:50.995Z
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#302
File: acaps/telegraf_agent/README.md:37-46
Timestamp: 2025-06-18T11:12:50.995Z
Learning: The fixedit-ai/fixedit-agents project does not document API endpoints in the CHANGELOG. API endpoint additions and changes should not trigger changelog update suggestions.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-05-09T09:00:38.747Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#290
File: acaps/installer_agent/app/manifest.base.jsonnet:21-21
Timestamp: 2025-05-09T09:00:38.747Z
Learning: In this project, changelog entries in *_SPEC.md files are historical records and should remain unchanged. New version entries are added above previous ones, rather than replacing them. Each application (Installer Agent, Config Agent, Telegraf Agent) has its own independent version numbering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-23T10:29:18.040Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#428
File: FIXEDIT_DATA_AGENT_CONFIG_SPEC.md:40-50
Timestamp: 2025-07-23T10:29:18.040Z
Learning: In the fixedit-ai/fixedit-agents project, documents like FIXEDIT_DATA_AGENT_CONFIG_SPEC.md that are converted to PDF should not use markdown links to reference other files (like `QUICKSTART_GUIDE.pdf`) because those links will be broken in the PDF output. Plain text references should be used instead to maintain functionality across both markdown and PDF formats.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-07T15:23:05.897Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:57-62
Timestamp: 2025-08-07T15:23:05.897Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, when GitHub generates anchors for headings that contain backticks with spaces around them (like `### `filename` - Description`), it removes the backticks but preserves those spaces as dashes in the anchor, creating triple dashes (---) between the filename and description parts. TOC generators may not handle this correctly and need manual adjustment.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2024-11-10T19:48:25.180Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#34
File: acaps/bootstrap_agent/app/src/parameters/camera_params.cpp:30-51
Timestamp: 2024-11-10T19:48:25.180Z
Learning: In the `get_os` function in `camera_params.cpp`, when parsing OS version strings, Axis OS version components may include letters (e.g., `rc1`). Therefore, validation should allow for alphanumeric characters in the version components.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-05T18:06:55.605Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: When reviewing markdown files in the fixedit-ai/fixedit-agents repository, always verify formatting suggestions by running `prettier --check` before suggesting changes. Daniel-falk consistently uses proper automated formatting, and apparent "formatting issues" may actually be correctly formatted content that just looks different in diff context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2024-11-12T11:57:32.569Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#37
File: .github/workflows/build_and_test_acaps.yml:133-149
Timestamp: 2024-11-12T11:57:32.569Z
Learning: In the GitHub Actions workflows for this repository, the FixedIT CLI will produce an error if multiple files are produced, so it is safe to assume only one file will be generated.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2024-11-05T09:37:26.633Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#19
File: .github/workflows/unit_tests.yml:3-7
Timestamp: 2024-11-05T09:37:26.633Z
Learning: In the `.github/workflows/unit_tests.yml` workflow, it's acceptable to use only the `push` trigger if running tests on all pushes covers the necessary cases. Including the `pull_request` trigger may be unnecessary unless handling contributions from forked repositories or pull requests without new commits.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2024-10-25T10:25:19.311Z
Learnt from: daniel-falk
PR: fixedit-ai/Axis-ACAP-libraries#54
File: libraries/builder-base/Makefile:1-5
Timestamp: 2024-10-25T10:25:19.311Z
Learning: - When suggesting code changes, include steps to pin the versions of tools like `mypy` and `black` for consistency.
- Include formatting and linting of YAML files in the workflows directory when setting up static tests.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-16T15:00:54.820Z
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/LICENSE.fixedit-developer-friend:1-7
Timestamp: 2025-06-16T15:00:54.820Z
Learning: In the VSCode extension project vscode_plugins/acap-documentation-viewer, LICENSE.fixedit-developer-friend is an intermediate source file used by the generate-licenses.js script to autogenerate the complete LICENSE file. The main LICENSE file should be referenced in package.json and documentation, not the intermediate .fixedit-developer-friend file.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-24T12:30:24.097Z
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/.gitignore:6-6
Timestamp: 2025-06-24T12:30:24.097Z
Learning: In the vscode_plugins/acap-documentation-viewer project, the LICENSE file generated by generate-licenses.js should be ignored in .gitignore and not version controlled, as it's a build artifact that consolidates dependency licenses.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-16T07:51:38.439Z
Learnt from: fixedit-olatz
PR: fixedit-ai/fixedit-agents#428
File: acaps/fixedit_data_agent/QUICKSTART_GUIDE.md:152-160
Timestamp: 2025-07-16T07:51:38.439Z
Learning: In the fixedit-ai/fixedit-agents project, PDF conversion constraints take precedence over markdown linting compliance when there are conflicts with nested heading levels. Bold formatting (**text**) is preferred over additional heading levels (####) to avoid issues with PDF generation.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-05T18:06:55.605Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_echo/README.md:63-73
Timestamp: 2025-08-05T18:06:55.605Z
Learning: In the fixedit-ai/fixedit-agents repository, when daniel-falk states that Prettier has been used on markdown files, the formatting is typically already correct and no additional changes are needed. LanguageTool warnings on technical markdown content (like MQTT topic structures and configuration lists) are often false positives rather than actual formatting issues.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2024-10-28T15:20:41.902Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#3
File: bootstrap_agent/app/include/modules/vapix/vapix.h:0-0
Timestamp: 2024-10-28T15:20:41.902Z
Learning: In the `bootstrap_agent` project, avoid using at-notations (e.g., `param`, `return`) in comments, as documentation generation tools are not used. Write comments for human consumption instead.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-05-14T07:58:33.544Z
Learnt from: daniel-falk
PR: fixedit-ai/client-doordash#268
File: acaps/config_agent/app/src/main.cpp:122-135
Timestamp: 2025-05-14T07:58:33.544Z
Learning: The `get_file_content` function in `acaps/config_agent/app/src/main.cpp` already has a TODO comment about improving error handling with more C++ styled approaches, making suggestions about this redundant.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-01T11:34:26.699Z
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/README.md:1-35
Timestamp: 2025-07-01T11:34:26.699Z
Learning: User daniel-falk prefers using `prettier -w *.md` for markdown formatting instead of manual markdown fixes, and plans to integrate automated formatting into CI/CD pipelines systematically.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-11T10:09:50.781Z
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/ResultWebview.ts:0-0
Timestamp: 2025-07-11T10:09:50.781Z
Learning: User daniel-falk prefers detailed, verbose comments that explain the "why" behind code decisions, not just the "what". Comments should provide extra context and be written for readers' understanding, even if they're longer. This applies especially to security-related code where explaining the reasoning (like CSP nonce generation for XSS prevention) adds valuable context.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-25T14:43:45.529Z
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#12
File: vscode_plugins/acap-documentation-viewer/media/src/PrimarySidebar.ts:45-52
Timestamp: 2025-06-25T14:43:45.529Z
Learning: User fixedit-jackh prefers detailed explanatory comments that describe what each action does, rather than concise summaries, particularly for complex event handlers and message listeners in the VSCode extension codebase.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-07-01T11:33:53.832Z
Learnt from: daniel-falk
PR: fixedit-ai/FixedIT-Developer-Friend#17
File: cloud_infra/lambdas/fixedit-developer-friend-devcloud-dependency-cache/index.py:61-62
Timestamp: 2025-07-01T11:33:53.832Z
Learning: User daniel-falk prefers using automated formatting tools like `black` for Python code formatting instead of manual PEP 8 fixes, and plans to integrate these tools into CI/CD pipelines. They also recommend `autopep8` for finding additional issues like incorrect names.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-05T17:58:27.113Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-agents#436
File: prototypes/example_projects/mqtt_metadata_forward/mqtt_image_request_handler.sh:68-73
Timestamp: 2025-08-05T17:58:27.113Z
Learning: User daniel-falk takes a pragmatic approach to security in prototype environments - when input is controlled by their own system (like hardcoded parameter names and controlled MQTT messages), theoretical vulnerabilities like regex meta-character issues in parsing functions are acceptable rather than requiring defensive over-engineering.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-06-16T07:59:21.365Z
Learnt from: fixedit-jackh
PR: fixedit-ai/FixedIT-Developer-Friend#4
File: vscode_plugins/acap-documentation-viewer/src/controller/PrimarySidebar.ts:55-58
Timestamp: 2025-06-16T07:59:21.365Z
Learning: In vscode_plugins/acap-documentation-viewer/src/controller/PrimarySidebar.ts, when creating webview panels for documentation results, the URL from DocumentationResult.getUrl() should be used as a unique identifier to prevent tab replacement issues, since each documentation entry has a unique URL.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[style] ~180-~180: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
[grammar] ~384-~384: Ensure spelling is correct
Context: ...olling the strobe light. This will test thw same functionality as will run in the s...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🪛 markdownlint-cli2 (0.17.2)
project-strobe-color-from-github-workflow/README.md
342-342: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
375-375: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
Previously we did not filter by workflow name, we just used the latest run. This commit adds filtering logic. Now we are requesting the last 10 runs and first filter by workflow name, then keep the latest of the runs.
- Move the stdout output file to test_files since that is intended for testing only. - Add some more descriptions on how the test files are intended to be used.
- Add debug logging from script - Add more images to README and describe load order - Small fixes to review comments
950ce69 to
41db044
Compare
🎨 Code Formatting RequiredTrailing Whitespace IssuesSome files have trailing whitespace (spaces/tabs at end of lines). Files with trailing whitespace:
To fix: Remove the trailing spaces/tabs at the end of lines in your favorite editor. After fixing:
|
41db044 to
4bc13e7
Compare
- Default value for VAPIX_IP - Debug logging in name matching script - Better README with more images
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (3)
project-strobe-color-from-github-workflow/trigger_strobe.sh (2)
15-23: Correct env var classifications: TELEGRAF_DEBUG/HELPER_FILES_DIR are optional, not requiredThey’re only used for debug logging; script runs without them. Clarify to prevent misconfiguration.
Apply:
-# Environment Variables Required: -# - VAPIX_USERNAME: Device username -# - VAPIX_PASSWORD: Device password -# - TELEGRAF_DEBUG: Enable debug logging when set to "true" -# - HELPER_FILES_DIR: Directory for debug log files -# -# Optional Environment Variables: -# - VAPIX_IP: IP address of the Axis strobe device (defaults to 127.0.0.1) +# Environment Variables Required: +# - VAPIX_USERNAME: Device username +# - VAPIX_PASSWORD: Device password +# +# Optional Environment Variables: +# - VAPIX_IP: IP address of the Axis strobe device (defaults to 127.0.0.1) +# - TELEGRAF_DEBUG: Enable debug logging when set to "true" (default: false) +# - HELPER_FILES_DIR: Directory for debug log files (used only when TELEGRAF_DEBUG=true)
51-61: Guard debug logging when HELPER_FILES_DIR is unset to avoid noisy errorsWith set -u, referencing an unset HELPER_FILES_DIR is risky. Add a guard (or a safe default).
-DEBUG="${TELEGRAF_DEBUG:-false}" +DEBUG="${TELEGRAF_DEBUG:-false}" # Function to log debug messages to a file debug_log_file() { _dbg_log_message="$1" - if [ "$DEBUG" = "true" ]; then - echo "DEBUG: $_dbg_log_message" >> "${HELPER_FILES_DIR}/trigger_strobe.debug" 2>/dev/null || true + if [ "$DEBUG" = "true" ] && [ -n "${HELPER_FILES_DIR:-}" ]; then + echo "DEBUG: $_dbg_log_message" >> "${HELPER_FILES_DIR}/trigger_strobe.debug" 2>/dev/null || true fi return 0 }project-strobe-color-from-github-workflow/README.md (1)
124-136: Clarify VAPIX_IP default in Quick SetupMentioning the default helps users when the agent runs on-device vs. remotely.
4. **Configure FixedIT Data Agent variables:** @@ Replace `your_github_token` ... `Your Workflow Name` with the precise name of the workflow ... Also set the `Vapix username` and `Vapix password` parameters. For increased security, it is recommended to create a new user with `operator` privileges ... + Note: If the FixedIT Data Agent runs on a different host than the Axis device, set `VAPIX_IP` to the device's IP. When omitted, it defaults to `127.0.0.1`.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (7)
project-strobe-color-from-github-workflow/.images/debug_github_api_data.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/debug_logs_from_github_api.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/github-no-workflow-runs.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/github-workflow-runs.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/logs-skipped-workflow.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/logs-with-errors.pngis excluded by!**/*.pngproject-strobe-color-from-github-workflow/.images/output-messages-in-the-log.pngis excluded by!**/*.png
📒 Files selected for processing (4)
project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_process_filter_by_name.conf(1 hunks)project-strobe-color-from-github-workflow/test_files/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- project-strobe-color-from-github-workflow/test_files/config_output_stdout.conf
- project-strobe-color-from-github-workflow/config_process_filter_by_name.conf
🧰 Additional context used
📓 Path-based instructions (4)
project-*/**
⚙️ CodeRabbit configuration file
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/trigger_strobe.sh
**/*.md
⚙️ CodeRabbit configuration file
**/*.md: Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Headings should not include special characters like emojis or backticks. The table of contents should be generated with themarkdown-toctool, meaning that we should use the<!-- toc -->and<!-- tocstop -->tags.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/trigger_strobe.sh
project-*/**/*.sh
⚙️ CodeRabbit configuration file
Shell scripts should be written in portable shell (/bin/sh) syntax since bash is not installed on the Axis devices. Since
localis not supported in all cameras (like AXIS OS 9.80), it should be avoided unless the AXIS OS limitations are explicitly mentioned. If not usinglocal, it can be good to use a function specific prefix for the variable names to avoid conflicts with other variables. Clearly document in the head of the file which environment variables they expect and if they are optional or required. It's normally good to useset -eufor stricter error handling, but-o pipefailis not supported in the Axis devices' shell.
Files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
🧠 Learnings (7)
📚 Learning: 2025-10-15T11:33:37.022Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#24
File: README.md:31-34
Timestamp: 2025-10-15T11:33:37.022Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, prefer automatic TOC generation using `<!-- toc
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-07T15:23:05.927Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:57-62
Timestamp: 2025-08-07T15:23:05.927Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, when GitHub generates anchors for headings that contain backticks with spaces around them (like `### `filename` - Description`), it removes the backticks but preserves those spaces as dashes in the anchor, creating triple dashes (---) between the filename and description parts. TOC generators may not handle this correctly and need manual adjustment.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: In project-strobe-color-from-github-workflow/README.md, the FixedIT Data Agent “Extra env” semicolon-separated KEY=VALUE string must not include quotes around values. Use unquoted placeholders (e.g., GITHUB_WORKFLOW=your_workflow_name).
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T15:15:33.003Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:126-127
Timestamp: 2025-08-10T15:15:33.003Z
Learning: In the FixedIT Data Agent Extra env configuration, spaces in values are acceptable without quotes. For the GITHUB_WORKFLOW variable in project-strobe-color-from-github-workflow, using a placeholder with spaces like "Your Workflow Name" is preferred as it demonstrates proper configuration for the common case where GitHub workflow names contain spaces.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: For export examples in project-strobe-color-from-github-workflow/README.md, keep placeholders unquoted by default; prefer placeholders without spaces (e.g., your_workflow_name). Quoting is only needed when referencing other variables or if the actual values contain spaces/special characters.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T10:22:37.500Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T10:22:37.500Z
Learning: In project-strobe-color-from-github-workflow, the GITHUB_WORKFLOW environment variable is currently not used by any config or script; it appears only in README examples. If later introduced for GitHub API filtering, use a workflow file name (e.g., ci.yml) or numeric id and avoid quotes because the Data Agent passes quotes literally into the value, which can break URL paths.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T14:54:48.316Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:350-351
Timestamp: 2025-08-10T14:54:48.316Z
Learning: In the fixedit-data-agent-examples repository, shell portability requirements (such as Axis devices using POSIX /bin/sh instead of bash) should be documented in a general scripting guide rather than repeated in individual project README files. This approach was confirmed by daniel-falk for better documentation organization.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[grammar] ~32-~32: There might be a mistake here.
Context: ...-telegraf) - Overview and basic concepts - [Quick Start Guide: Telegraf Starlark Pro...
(QB_NEW_EN)
[grammar] ~41-~41: There might be a mistake here.
Context: ...(similar to setting up monitoring tools) - Basic shell scripting knowledge (can be ...
(QB_NEW_EN)
[grammar] ~42-~42: There might be a mistake here.
Context: ...pting knowledge (can be learned quickly) - Familiarity with REST APIs and JSON (com...
(QB_NEW_EN)
[grammar] ~43-~43: There might be a mistake here.
Context: ... JSON (common in modern IT environments) - Access to an Axis device with strobe cap...
(QB_NEW_EN)
[uncategorized] ~68-~68: The official name of this software platform is spelled with a capital “H”.
Context: ...f](#config_agentconf) - config_input_github.conf - [co...
(GITHUB)
[grammar] ~99-~99: Use a hyphen to join words.
Context: ...n intelligent device that can poll third party APIs and set its color based on th...
(QB_NEW_EN_HYPHEN)
[grammar] ~106-~106: There might be a mistake here.
Context: ...ilities (cat, echo, printf, tr). - Other notes: Uses HTTP Digest authenti...
(QB_NEW_EN)
[grammar] ~111-~111: There might be a mistake here.
Context: ...y - Minimum Data Agent version: 1.1 - Required features: Uses the `VAPIX_USE...
(QB_NEW_EN)
[style] ~112-~112: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...e in the web user interface in versions prior to 1.1. ## Quick Setup ### High-Level St...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~132-~132: The official name of this software platform is spelled with a capital “H”.
Context: ...W=Your Workflow Name ``` Replace your_github_token with the token you created in st...
(GITHUB)
[uncategorized] ~132-~132: The official name of this software platform is spelled with a capital “H”.
Context: ...ken](#creating-a-github-access-token)), your_github_username with your GitHub username, `y...
(GITHUB)
[grammar] ~142-~142: There might be a mistake here.
Context: ...les you uploaded** In this project, order of the files matter! This p...
(QB_NEW_EN)
[uncategorized] ~159-~159: The official name of this software platform is spelled with a capital “H”.
Context: ...ample. Adding this example file to the <repo-root>/.github/workflows folder will create a workflo...
(GITHUB)
[style] ~159-~159: To elevate your writing, try using an alternative expression here.
Context: ...or the repository. The name of the file does not matter, but the suffix .yml is required. You...
(MATTERS_RELEVANT)
[grammar] ~199-~199: There might be a mistake here.
Context: ....json is valid JSON" ``` > [!IMPORTANT] > **Important notes about the `GITHUB_WO...
(QB_NEW_EN)
[style] ~221-~221: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
[grammar] ~236-~236: There might be a mistake here.
Context: ...ence. 1. Set the "Color" (e.g. "Green"). 1. Set "Duration" to "Continuous" or "Time"...
(QB_NEW_EN)
[grammar] ~237-~237: There might be a mistake here.
Context: ...he same color without a time limitation. 1. Leave "Priority" as is. Since only one p...
(QB_NEW_EN)
[grammar] ~282-~282: There might be a mistake here.
Context: ...guration issue. This would be indicated by FixedIT Data Agent showing messages lik...
(QB_NEW_EN)
[grammar] ~288-~288: There might be a mistake here.
Context: ...xtra env` parameter handling (see below) - Target workflow not in results: Your t...
(QB_NEW_EN)
[grammar] ~289-~289: There might be a mistake here.
Context: ...-found-among-recent-runs) section below. - Invalid credentials: GitHub token issu...
(QB_NEW_EN)
[uncategorized] ~299-~299: The official name of this software platform is spelled with a capital “H”.
Context: ...e per_page parameter in config_input_github.conf might...
(GITHUB)
[uncategorized] ~299-~299: The official name of this software platform is spelled with a capital “H”.
Context: ...` parameter in config_input_github.conf might be too small. If you have 6...
(GITHUB)
[uncategorized] ~301-~301: The official name of this software platform is spelled with a capital “H”.
Context: ...** Increase per_page in config_input_github.conf to at...
(GITHUB)
[uncategorized] ~301-~301: The official name of this software platform is spelled with a capital “H”.
Context: ... per_page in config_input_github.conf to at least the number of workflo...
(GITHUB)
[uncategorized] ~305-~305: The official name of this software platform is spelled with a capital “H”.
Context: ...onfig files except config_agent.conf, config_input_github.conf, and config_output_stdout.conf....
(GITHUB)
[uncategorized] ~352-~352: The official name of this software platform is spelled with a capital “H”.
Context: ...ing GitHub's servers. ### config_input_github.conf Defines how to fetch workflow sta...
(GITHUB)
[uncategorized] ~378-~378: The official name of this software platform is spelled with a capital “H”.
Context: ...nt too. Upload this file instead of the config_input_github.conf file, then upload the `sample.jso...
(GITHUB)
[grammar] ~394-~394: There might be a mistake here.
Context: ... - GitHub API data fetching and parsing - Data transformation logic - Configuratio...
(QB_NEW_EN)
[grammar] ~395-~395: There might be a mistake here.
Context: ... and parsing - Data transformation logic - Configuration validation **What require...
(QB_NEW_EN)
[grammar] ~584-~584: There might be a mistake here.
Context: ...e LICENSE file for details.
(QB_NEW_EN)
🔇 Additional comments (2)
project-strobe-color-from-github-workflow/trigger_strobe.sh (1)
1-199: Overall: POSIX-safe and well-documentedSolid portability choices (/bin/sh, no local), clear error codes, masked password in debug, and exclusive profile handling. After the small robustness fixes above, this will be production-ready for the example.
Please confirm jq availability on target AXIS OS versions (README mentions requirement), or add a brief preflight check if needed:
- command -v jq >/dev/null 2>&1 || { printf "Error: jq not installed\n">&2; exit 12; }
project-strobe-color-from-github-workflow/README.md (1)
1-584: README qualityExcellent structure (template-aligned), correct “FixedIT Data Agent” capitalization and product link, clear troubleshooting, and accurate processor load order. Content meets project guidelines.
| _ctrl_api_response=$(curl --fail --digest --user "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ | ||
| -X POST \ | ||
| -H "Content-Type: application/json" \ | ||
| -d "{\"apiVersion\":\"1.0\",\"method\":\"$_ctrl_action\",\"params\":{\"profile\":\"$_ctrl_profile\"}}" 2>&1) | ||
| _ctrl_api_exit=$? | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add curl timeouts to prevent hangs on device/network issues
External calls without timeouts can hang Telegraf exec runs. Add conservative connect/overall timeouts.
- _ctrl_api_response=$(curl --fail --digest --user "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \
+ _ctrl_api_response=$(curl --fail --digest --connect-timeout 3 --max-time 8 \
+ --user "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \
-X POST \
-H "Content-Type: application/json" \
-d "{\"apiVersion\":\"1.0\",\"method\":\"$_ctrl_action\",\"params\":{\"profile\":\"$_ctrl_profile\"}}" 2>&1)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| _ctrl_api_response=$(curl --fail --digest --user "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ | |
| -X POST \ | |
| -H "Content-Type: application/json" \ | |
| -d "{\"apiVersion\":\"1.0\",\"method\":\"$_ctrl_action\",\"params\":{\"profile\":\"$_ctrl_profile\"}}" 2>&1) | |
| _ctrl_api_exit=$? | |
| _ctrl_api_response=$(curl --fail --digest --connect-timeout 3 --max-time 8 \ | |
| --user "${VAPIX_USERNAME}:${VAPIX_PASSWORD}" "http://${VAPIX_IP}/axis-cgi/siren_and_light.cgi" \ | |
| -X POST \ | |
| -H "Content-Type: application/json" \ | |
| -d "{\"apiVersion\":\"1.0\",\"method\":\"$_ctrl_action\",\"params\":{\"profile\":\"$_ctrl_profile\"}}" 2>&1) | |
| _ctrl_api_exit=$? |
🤖 Prompt for AI Agents
In project-strobe-color-from-github-workflow/trigger_strobe.sh around lines 141
to 146, the curl call has no timeouts and can hang; add conservative timeouts
(e.g., --connect-timeout 5 and --max-time 15) to the curl invocation so the
command fails quickly on network/device issues and prevents Telegraf exec hangs;
keep existing error capture and exit code logic unchanged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have a timeout in the telegraf config for this subprocess, so it should be fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@daniel-falk, you're absolutely right. I can see the 10-second timeout configured in config_output_strobe.conf for the exec output plugin, which will terminate the entire subprocess if it hangs. That provides adequate protection at the Telegraf level, making curl-specific timeouts redundant. Thank you for the clarification!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That did not work in shell/dash, but this does:
if ! color="$(printf '%s\n' "$json_input" | jq -re '.fields.color? // empty')"; then
debug_log_file "ERROR: jq failed to extract .fields.color from input:$json_input"
printf "Error: No color field found in JSON input:$json_input" >&2
exit 12
fiThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@daniel-falk, thank you for sharing the working solution! Your version is indeed more robust for shell/dash compatibility. Using printf '%s\n' instead of echo is more portable, and the jq -re with .fields.color? // empty provides much better error handling by:
- The
-eflag making jq exit with error status when no output is produced - The
? // emptypattern safely handling missing fields - The conditional wrapper properly catching jq failures
This is a great improvement over the simpler extraction approach. I appreciate you testing and finding what actually works in the target environment!
✏️ Learnings added
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/trigger_strobe.sh:130-135
Timestamp: 2025-10-16T16:49:09.148Z
Learning: In shell scripts for Axis devices (dash/shell), when extracting JSON fields with jq, use the pattern `if ! field="$(printf '%s\n' "$json_var" | jq -re '.path.to.field? // empty')"; then` instead of simple assignment `field=$(echo "$json_var" | jq -r '.path.to.field')`. This provides better error handling: `printf` is more portable than `echo`, the `-e` flag makes jq exit with error if no output, and `? // empty` safely handles missing fields.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (1)
project-strobe-color-from-github-workflow/README.md (1)
377-377: Fix broken link to sample data (point to test_files)Link targets the repo root; the file lives under test_files.
Apply this diff:
-An example successful response can be seen in the [sample.json](./sample.json) file. +An example successful response can be seen in the [test_files/sample.json](./test_files/sample.json) file.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
project-strobe-color-from-github-workflow/README.md(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit configuration file
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.md
**/*.md
⚙️ CodeRabbit configuration file
**/*.md: Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Headings should not include special characters like emojis or backticks. The table of contents should be generated with themarkdown-toctool, meaning that we should use the<!-- toc -->and<!-- tocstop -->tags.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.md
🧠 Learnings (7)
📚 Learning: 2025-10-15T11:33:37.022Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#24
File: README.md:31-34
Timestamp: 2025-10-15T11:33:37.022Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, prefer automatic TOC generation using `<!-- toc
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-07T15:23:05.927Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:57-62
Timestamp: 2025-08-07T15:23:05.927Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, when GitHub generates anchors for headings that contain backticks with spaces around them (like `### `filename` - Description`), it removes the backticks but preserves those spaces as dashes in the anchor, creating triple dashes (---) between the filename and description parts. TOC generators may not handle this correctly and need manual adjustment.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: In project-strobe-color-from-github-workflow/README.md, the FixedIT Data Agent “Extra env” semicolon-separated KEY=VALUE string must not include quotes around values. Use unquoted placeholders (e.g., GITHUB_WORKFLOW=your_workflow_name).
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T15:15:33.003Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:126-127
Timestamp: 2025-08-10T15:15:33.003Z
Learning: In the FixedIT Data Agent Extra env configuration, spaces in values are acceptable without quotes. For the GITHUB_WORKFLOW variable in project-strobe-color-from-github-workflow, using a placeholder with spaces like "Your Workflow Name" is preferred as it demonstrates proper configuration for the common case where GitHub workflow names contain spaces.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: For export examples in project-strobe-color-from-github-workflow/README.md, keep placeholders unquoted by default; prefer placeholders without spaces (e.g., your_workflow_name). Quoting is only needed when referencing other variables or if the actual values contain spaces/special characters.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T10:22:37.500Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T10:22:37.500Z
Learning: In project-strobe-color-from-github-workflow, the GITHUB_WORKFLOW environment variable is currently not used by any config or script; it appears only in README examples. If later introduced for GitHub API filtering, use a workflow file name (e.g., ci.yml) or numeric id and avoid quotes because the Data Agent passes quotes literally into the value, which can break URL paths.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T14:54:48.316Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:350-351
Timestamp: 2025-08-10T14:54:48.316Z
Learning: In the fixedit-data-agent-examples repository, shell portability requirements (such as Axis devices using POSIX /bin/sh instead of bash) should be documented in a general scripting guide rather than repeated in individual project README files. This approach was confirmed by daniel-falk for better documentation organization.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[grammar] ~56-~56: There might be a mistake here.
Context: ...ight green: Input nodes / data ingestion - Purple: Processing nodes / data processi...
(QB_NEW_EN)
[grammar] ~57-~57: There might be a mistake here.
Context: ...essing nodes / data processing and logic - Orange: Storage nodes / persistent data ...
(QB_NEW_EN)
[grammar] ~58-~58: There might be a mistake here.
Context: ... Orange: Storage nodes / persistent data - Red: Output nodes / notifications - Ligh...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...data - Red: Output nodes / notifications - Light gray: Configuration data - White: ...
(QB_NEW_EN)
[grammar] ~60-~60: There might be a mistake here.
Context: ...cations - Light gray: Configuration data - White: Logical operations This project ...
(QB_NEW_EN)
[grammar] ~67-~67: There might be a mistake here.
Context: ...-telegraf) - Overview and basic concepts - [Quick Start Guide: Telegraf Starlark Pro...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...(similar to setting up monitoring tools) - Basic shell scripting knowledge (can be ...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...pting knowledge (can be learned quickly) - Familiarity with REST APIs and JSON (com...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ... JSON (common in modern IT environments) - Access to an Axis device with strobe cap...
(QB_NEW_EN)
[uncategorized] ~103-~103: The official name of this software platform is spelled with a capital “H”.
Context: ...f](#config_agentconf) - config_input_github.conf - [co...
(GITHUB)
[grammar] ~134-~134: Use a hyphen to join words.
Context: ...n intelligent device that can poll third party APIs and set its color based on th...
(QB_NEW_EN_HYPHEN)
[grammar] ~141-~141: There might be a mistake here.
Context: ...ilities (cat, echo, printf, tr). - Other notes: Uses HTTP Digest authenti...
(QB_NEW_EN)
[grammar] ~146-~146: There might be a mistake here.
Context: ...y - Minimum Data Agent version: 1.1 - Required features: Uses the `VAPIX_USE...
(QB_NEW_EN)
[style] ~147-~147: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...e in the web user interface in versions prior to 1.1. ## Quick Setup ### High-Level St...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...W=Your Workflow Name ``` Replace your_github_token with the token you created in st...
(GITHUB)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...ken](#creating-a-github-access-token)), your_github_username with your GitHub username, `y...
(GITHUB)
[grammar] ~177-~177: There might be a mistake here.
Context: ...les you uploaded** In this project, order of the files matter! This p...
(QB_NEW_EN)
[uncategorized] ~194-~194: The official name of this software platform is spelled with a capital “H”.
Context: ...ample. Adding this example file to the <repo-root>/.github/workflows folder will create a workflo...
(GITHUB)
[style] ~194-~194: To elevate your writing, try using an alternative expression here.
Context: ...or the repository. The name of the file does not matter, but the suffix .yml is required. You...
(MATTERS_RELEVANT)
[grammar] ~234-~234: There might be a mistake here.
Context: ....json is valid JSON" ``` > [!IMPORTANT] > **Important notes about the `GITHUB_WO...
(QB_NEW_EN)
[style] ~256-~256: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
[grammar] ~271-~271: There might be a mistake here.
Context: ...ence. 1. Set the "Color" (e.g. "Green"). 1. Set "Duration" to "Continuous" or "Time"...
(QB_NEW_EN)
[grammar] ~272-~272: There might be a mistake here.
Context: ...he same color without a time limitation. 1. Leave "Priority" as is. Since only one p...
(QB_NEW_EN)
[grammar] ~317-~317: There might be a mistake here.
Context: ...guration issue. This would be indicated by FixedIT Data Agent showing messages lik...
(QB_NEW_EN)
[grammar] ~323-~323: There might be a mistake here.
Context: ...xtra env` parameter handling (see below) - Target workflow not in results: Your t...
(QB_NEW_EN)
[grammar] ~324-~324: There might be a mistake here.
Context: ...-found-among-recent-runs) section below. - Invalid credentials: GitHub token issu...
(QB_NEW_EN)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...e per_page parameter in config_input_github.conf might...
(GITHUB)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...` parameter in config_input_github.conf might be too small. If you have 6...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ...** Increase per_page in config_input_github.conf to at...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ... per_page in config_input_github.conf to at least the number of workflo...
(GITHUB)
[uncategorized] ~340-~340: The official name of this software platform is spelled with a capital “H”.
Context: ...onfig files except config_agent.conf, config_input_github.conf, and config_output_stdout.conf....
(GITHUB)
[uncategorized] ~387-~387: The official name of this software platform is spelled with a capital “H”.
Context: ...ing GitHub's servers. ### config_input_github.conf Defines how to fetch workflow sta...
(GITHUB)
[uncategorized] ~413-~413: The official name of this software platform is spelled with a capital “H”.
Context: ...nt too. Upload this file instead of the config_input_github.conf file, then upload the `sample.jso...
(GITHUB)
[grammar] ~429-~429: There might be a mistake here.
Context: ... - GitHub API data fetching and parsing - Data transformation logic - Configuratio...
(QB_NEW_EN)
[grammar] ~430-~430: There might be a mistake here.
Context: ... and parsing - Data transformation logic - Configuration validation **What require...
(QB_NEW_EN)
[grammar] ~619-~619: There might be a mistake here.
Context: ...e LICENSE file for details.
(QB_NEW_EN)
3869289 to
ed30990
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
README.md(2 hunks)project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
project-*/**
⚙️ CodeRabbit configuration file
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/trigger_strobe.shproject-strobe-color-from-github-workflow/README.md
project-*/**/*.sh
⚙️ CodeRabbit configuration file
Shell scripts should be written in portable shell (/bin/sh) syntax since bash is not installed on the Axis devices. Since
localis not supported in all cameras (like AXIS OS 9.80), it should be avoided unless the AXIS OS limitations are explicitly mentioned. If not usinglocal, it can be good to use a function specific prefix for the variable names to avoid conflicts with other variables. Clearly document in the head of the file which environment variables they expect and if they are optional or required. It's normally good to useset -eufor stricter error handling, but-o pipefailis not supported in the Axis devices' shell.
Files:
project-strobe-color-from-github-workflow/trigger_strobe.sh
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/trigger_strobe.shproject-strobe-color-from-github-workflow/README.mdREADME.md
**/*.md
⚙️ CodeRabbit configuration file
**/*.md: Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Headings should not include special characters like emojis or backticks. The table of contents should be generated with themarkdown-toctool, meaning that we should use the<!-- toc -->and<!-- tocstop -->tags.
Files:
project-strobe-color-from-github-workflow/README.mdREADME.md
🧠 Learnings (7)
📚 Learning: 2025-10-15T11:33:37.022Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#24
File: README.md:31-34
Timestamp: 2025-10-15T11:33:37.022Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, prefer automatic TOC generation using `<!-- toc
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-07T15:23:05.927Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:57-62
Timestamp: 2025-08-07T15:23:05.927Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, when GitHub generates anchors for headings that contain backticks with spaces around them (like `### `filename` - Description`), it removes the backticks but preserves those spaces as dashes in the anchor, creating triple dashes (---) between the filename and description parts. TOC generators may not handle this correctly and need manual adjustment.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: In project-strobe-color-from-github-workflow/README.md, the FixedIT Data Agent “Extra env” semicolon-separated KEY=VALUE string must not include quotes around values. Use unquoted placeholders (e.g., GITHUB_WORKFLOW=your_workflow_name).
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T15:15:33.003Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:126-127
Timestamp: 2025-08-10T15:15:33.003Z
Learning: In the FixedIT Data Agent Extra env configuration, spaces in values are acceptable without quotes. For the GITHUB_WORKFLOW variable in project-strobe-color-from-github-workflow, using a placeholder with spaces like "Your Workflow Name" is preferred as it demonstrates proper configuration for the common case where GitHub workflow names contain spaces.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: For export examples in project-strobe-color-from-github-workflow/README.md, keep placeholders unquoted by default; prefer placeholders without spaces (e.g., your_workflow_name). Quoting is only needed when referencing other variables or if the actual values contain spaces/special characters.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T10:22:37.500Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T10:22:37.500Z
Learning: In project-strobe-color-from-github-workflow, the GITHUB_WORKFLOW environment variable is currently not used by any config or script; it appears only in README examples. If later introduced for GitHub API filtering, use a workflow file name (e.g., ci.yml) or numeric id and avoid quotes because the Data Agent passes quotes literally into the value, which can break URL paths.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T14:54:48.316Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:350-351
Timestamp: 2025-08-10T14:54:48.316Z
Learning: In the fixedit-data-agent-examples repository, shell portability requirements (such as Axis devices using POSIX /bin/sh instead of bash) should be documented in a general scripting guide rather than repeated in individual project README files. This approach was confirmed by daniel-falk for better documentation organization.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[grammar] ~56-~56: There might be a mistake here.
Context: ...ight green: Input nodes / data ingestion - Purple: Processing nodes / data processi...
(QB_NEW_EN)
[grammar] ~57-~57: There might be a mistake here.
Context: ...essing nodes / data processing and logic - Orange: Storage nodes / persistent data ...
(QB_NEW_EN)
[grammar] ~58-~58: There might be a mistake here.
Context: ... Orange: Storage nodes / persistent data - Red: Output nodes / notifications - Ligh...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...data - Red: Output nodes / notifications - Light gray: Configuration data - White: ...
(QB_NEW_EN)
[grammar] ~60-~60: There might be a mistake here.
Context: ...cations - Light gray: Configuration data - White: Logical operations This project ...
(QB_NEW_EN)
[grammar] ~67-~67: There might be a mistake here.
Context: ...-telegraf) - Overview and basic concepts - [Quick Start Guide: Telegraf Starlark Pro...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...(similar to setting up monitoring tools) - Basic shell scripting knowledge (can be ...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...pting knowledge (can be learned quickly) - Familiarity with REST APIs and JSON (com...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ... JSON (common in modern IT environments) - Access to an Axis device with strobe cap...
(QB_NEW_EN)
[uncategorized] ~103-~103: The official name of this software platform is spelled with a capital “H”.
Context: ...f](#config_agentconf) - config_input_github.conf - [co...
(GITHUB)
[grammar] ~141-~141: There might be a mistake here.
Context: ...ilities (cat, echo, printf, tr). - Other notes: Uses HTTP Digest authenti...
(QB_NEW_EN)
[grammar] ~146-~146: There might be a mistake here.
Context: ...y - Minimum Data Agent version: 1.1 - Required features: Uses the `VAPIX_USE...
(QB_NEW_EN)
[style] ~147-~147: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...e in the web user interface in versions prior to 1.1. ## Quick Setup ### High-Level St...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...W=Your Workflow Name ``` Replace your_github_token with the token you created in st...
(GITHUB)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...ken](#creating-a-github-access-token)), your_github_username with your GitHub username, `y...
(GITHUB)
[grammar] ~177-~177: There might be a mistake here.
Context: ...les you uploaded** In this project, order of the files matters! This ...
(QB_NEW_EN)
[uncategorized] ~194-~194: The official name of this software platform is spelled with a capital “H”.
Context: ...ample. Adding this example file to the <repo-root>/.github/workflows folder will create a workflo...
(GITHUB)
[style] ~194-~194: To elevate your writing, try using an alternative expression here.
Context: ...or the repository. The name of the file does not matter, but the suffix .yml is required. You...
(MATTERS_RELEVANT)
[grammar] ~234-~234: There might be a mistake here.
Context: ....json is valid JSON" ``` > [!IMPORTANT] > **Important notes about the `GITHUB_WO...
(QB_NEW_EN)
[style] ~256-~256: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
[grammar] ~271-~271: There might be a mistake here.
Context: ...ence. 1. Set the "Color" (e.g. "Green"). 1. Set "Duration" to "Continuous" or "Time"...
(QB_NEW_EN)
[grammar] ~272-~272: There might be a mistake here.
Context: ...he same color without a time limitation. 1. Leave "Priority" as is. Since only one p...
(QB_NEW_EN)
[grammar] ~317-~317: There might be a mistake here.
Context: ...guration issue. This would be indicated by FixedIT Data Agent showing messages lik...
(QB_NEW_EN)
[grammar] ~323-~323: There might be a mistake here.
Context: ...xtra env` parameter handling (see below) - Target workflow not in results: Your t...
(QB_NEW_EN)
[grammar] ~324-~324: There might be a mistake here.
Context: ...-found-among-recent-runs) section below. - Invalid credentials: GitHub token issu...
(QB_NEW_EN)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...e per_page parameter in config_input_github.conf might...
(GITHUB)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...` parameter in config_input_github.conf might be too small. If you have 6...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ...** Increase per_page in config_input_github.conf to at...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ... per_page in config_input_github.conf to at least the number of workflo...
(GITHUB)
[uncategorized] ~340-~340: The official name of this software platform is spelled with a capital “H”.
Context: ...onfig files except config_agent.conf, config_input_github.conf, and config_output_stdout.conf....
(GITHUB)
[uncategorized] ~387-~387: The official name of this software platform is spelled with a capital “H”.
Context: ...ing GitHub's servers. ### config_input_github.conf Defines how to fetch workflow sta...
(GITHUB)
[uncategorized] ~413-~413: The official name of this software platform is spelled with a capital “H”.
Context: ...nt too. Upload this file instead of the config_input_github.conf file, then upload the `sample.jso...
(GITHUB)
[grammar] ~429-~429: There might be a mistake here.
Context: ... - GitHub API data fetching and parsing - Data transformation logic - Configuratio...
(QB_NEW_EN)
[grammar] ~430-~430: There might be a mistake here.
Context: ... and parsing - Data transformation logic - Configuration validation **What require...
(QB_NEW_EN)
[grammar] ~619-~619: There might be a mistake here.
Context: ...e LICENSE file for details.
(QB_NEW_EN)
README.md
[grammar] ~14-~14: There might be a mistake here.
Context: ...tHub Workflow Status with an Axis Strobe](#visualizing-a-github-workflow-status-with-an-axis-strobe) - [Creating a Timelapse with AWS S3 Upload]...
(QB_NEW_EN)
🪛 Shellcheck (0.11.0)
project-strobe-color-from-github-workflow/trigger_strobe.sh
[warning] 86-86: In POSIX sh, here-strings are undefined.
(SC3011)
ed30990 to
768cf06
Compare
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
project-strobe-color-from-github-workflow/test_files/config_output_stdout.conf (1)
6-15: Consider adding flush_interval for immediate debugging output.The configuration is correct and will work for debugging purposes. However, without an explicit
flush_intervalsetting, Telegraf uses its default interval, which may delay output visibility during debugging sessions.Apply this diff to flush output immediately:
[[outputs.file]] # Output target: stdout for console display. # 'stdout' is a special file target that writes to standard output. # This makes the data visible in Telegraf logs and terminal output. files = ["stdout"] # Data serialization format for human-readable output. # JSON format preserves all metric information in structured form. # Each metric becomes one line of JSON output for easy parsing/reading. data_format = "json" + + # Flush immediately for real-time debugging visibility + flush_interval = "0s"
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
project-strobe-color-from-github-workflow/README.md(1 hunks)project-strobe-color-from-github-workflow/config_agent.conf(1 hunks)project-strobe-color-from-github-workflow/test_files/config_output_stdout.conf(1 hunks)project-strobe-color-from-github-workflow/trigger_strobe.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- project-strobe-color-from-github-workflow/trigger_strobe.sh
🧰 Additional context used
📓 Path-based instructions (3)
project-*/**
⚙️ CodeRabbit configuration file
project-*/**: Each example project for the FixedIT Data Agent should be self-contained and designed as a standalone example / tutorial showing how to use the FixedIT Data Agent. The project should be well documented and include all the necessary files to run the example. A reader should be able to understand the background and the purpose of the project, and be able to understand the implementation details and how to use it. If the project includes a dashboard, it should be placed in a new folder in the repo-root/dashboard-deployments/ directory instead of being included in the project folder. In the README for the project, the first time the FixedIT Data Agent is mentioned, we should link to the product page: https://fixedit.ai/products-data-agent/ Emphasize that these solutions are accessible to system integrators and IT professionals without requiring complex C/C++ ACAP development. Highlight that custom edge intelligence can be implemented using familiar IT tools (configuration files, shell scripts, REST APIs) rather than traditional embedded programming approaches. Note that bash does not exist on the Axis devices, so .sh scripts should be written in portable shell syntax.
README Structure: All project README files should follow the standardized template at.project_readme_template.md. This template ensures consistent documentation that serves both audiences: (1) IT professionals who want plug-and-play solutions, and (2) developers who want to customize and extend the examples. The template enforces a logical structure: 1) Introduction and background (project purpose, how it works, why choose this approach) 2) Technical explanation and quick start guide (compatibility, setup, troubleshooting) 3) Developer-oriented notes (local testing, implementation details)
Key README Requirements: - Include compatibility sections for both AXIS OS and FixedIT Data Agent versions - Explain host testing and its limitations and why certain parts require actual Axis d...
Files:
project-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/config_agent.confproject-strobe-color-from-github-workflow/test_files/config_output_stdout.conf
**/*.md
⚙️ CodeRabbit configuration file
**/*.md: Documentation files should clearly communicate the dual audience: (1) server-side dashboard users who want to keep agent with bundled configs, and (2) edge device developers who want to customize agent behavior. Ensure examples and instructions are appropriate for the intended skill level and use case. Since this is a public repository, we should not include any sensitive information, the instructions should be easily understandable for a wide audience, and we should avoid using any jargon or technical terms that are not commonly used.
Headings should not include special characters like emojis or backticks. The table of contents should be generated with themarkdown-toctool, meaning that we should use the<!-- toc -->and<!-- tocstop -->tags.
Files:
project-strobe-color-from-github-workflow/README.md
**/*
⚙️ CodeRabbit configuration file
This repository serves FixedIT Data Agent users across a spectrum from plug-and-play dashboard deployment to advanced edge device customization. Consider whether changes maintain accessibility for both DevOps professionals (server-side focus) and developers (edge customization focus). If new features are added or existing ones changed significantly, ensure documentation clearly explains the intended audience and usage level. We use prettier for formatting of common file formats like markdown, yaml, json, etc. Example projects should be placed in the repo-root in a directory named project-*/. Whenever referencing Axis device model names like "D4100-VE mk II" or "M3045", prefix it with "AXIS" in capital letters (e.g. "AXIS D4100-VE mk II"). When using Axis as a company name, use "Axis Communications", note that all-caps is only used when "AXIS" is used in their product names, not their company name. When using the name of an Axis product, google on the name to verify that it is correctly identified. Avoid using 'cameras' or 'Axis cameras' unless the solution in related to visual analytics, otherwise prefer using 'Axis devices' to show that the FixedIT Data Agent also works with strobes, speakers, door stations, etc. Images used for the README should be placed in a directory called .images/ in the affected project folder. These images might also be referred to from other sources like the top-level README.md file.
Files:
project-strobe-color-from-github-workflow/README.mdproject-strobe-color-from-github-workflow/config_agent.confproject-strobe-color-from-github-workflow/test_files/config_output_stdout.conf
🧠 Learnings (7)
📚 Learning: 2025-10-15T11:33:37.022Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#24
File: README.md:31-34
Timestamp: 2025-10-15T11:33:37.022Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, prefer automatic TOC generation using `<!-- toc
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-07T15:23:05.927Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:57-62
Timestamp: 2025-08-07T15:23:05.927Z
Learning: In the fixedit-ai/fixedit-data-agent-examples repository, when GitHub generates anchors for headings that contain backticks with spaces around them (like `### `filename` - Description`), it removes the backticks but preserves those spaces as dashes in the anchor, creating triple dashes (---) between the filename and description parts. TOC generators may not handle this correctly and need manual adjustment.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: In project-strobe-color-from-github-workflow/README.md, the FixedIT Data Agent “Extra env” semicolon-separated KEY=VALUE string must not include quotes around values. Use unquoted placeholders (e.g., GITHUB_WORKFLOW=your_workflow_name).
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T15:15:33.003Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:126-127
Timestamp: 2025-08-10T15:15:33.003Z
Learning: In the FixedIT Data Agent Extra env configuration, spaces in values are acceptable without quotes. For the GITHUB_WORKFLOW variable in project-strobe-color-from-github-workflow, using a placeholder with spaces like "Your Workflow Name" is preferred as it demonstrates proper configuration for the common case where GitHub workflow names contain spaces.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T09:31:58.742Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T09:31:58.742Z
Learning: For export examples in project-strobe-color-from-github-workflow/README.md, keep placeholders unquoted by default; prefer placeholders without spaces (e.g., your_workflow_name). Quoting is only needed when referencing other variables or if the actual values contain spaces/special characters.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-08T10:22:37.500Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:114-114
Timestamp: 2025-08-08T10:22:37.500Z
Learning: In project-strobe-color-from-github-workflow, the GITHUB_WORKFLOW environment variable is currently not used by any config or script; it appears only in README examples. If later introduced for GitHub API filtering, use a workflow file name (e.g., ci.yml) or numeric id and avoid quotes because the Data Agent passes quotes literally into the value, which can break URL paths.
Applied to files:
project-strobe-color-from-github-workflow/README.md
📚 Learning: 2025-08-10T14:54:48.316Z
Learnt from: daniel-falk
PR: fixedit-ai/fixedit-data-agent-examples#5
File: project-strobe-color-from-github-workflow/README.md:350-351
Timestamp: 2025-08-10T14:54:48.316Z
Learning: In the fixedit-data-agent-examples repository, shell portability requirements (such as Axis devices using POSIX /bin/sh instead of bash) should be documented in a general scripting guide rather than repeated in individual project README files. This approach was confirmed by daniel-falk for better documentation organization.
Applied to files:
project-strobe-color-from-github-workflow/README.md
🪛 LanguageTool
project-strobe-color-from-github-workflow/README.md
[grammar] ~56-~56: There might be a mistake here.
Context: ...ight green: Input nodes / data ingestion - Purple: Processing nodes / data processi...
(QB_NEW_EN)
[grammar] ~57-~57: There might be a mistake here.
Context: ...essing nodes / data processing and logic - Orange: Storage nodes / persistent data ...
(QB_NEW_EN)
[grammar] ~58-~58: There might be a mistake here.
Context: ... Orange: Storage nodes / persistent data - Red: Output nodes / notifications - Ligh...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...data - Red: Output nodes / notifications - Light gray: Configuration data - White: ...
(QB_NEW_EN)
[grammar] ~60-~60: There might be a mistake here.
Context: ...cations - Light gray: Configuration data - White: Logical operations This project ...
(QB_NEW_EN)
[grammar] ~67-~67: There might be a mistake here.
Context: ...-telegraf) - Overview and basic concepts - [Quick Start Guide: Telegraf Starlark Pro...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...(similar to setting up monitoring tools) - Basic shell scripting knowledge (can be ...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...pting knowledge (can be learned quickly) - Familiarity with REST APIs and JSON (com...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ... JSON (common in modern IT environments) - Access to an Axis device with strobe cap...
(QB_NEW_EN)
[uncategorized] ~103-~103: The official name of this software platform is spelled with a capital “H”.
Context: ...f](#config_agentconf) - config_input_github.conf - [co...
(GITHUB)
[grammar] ~141-~141: There might be a mistake here.
Context: ...ilities (cat, echo, printf, tr). - Other notes: Uses HTTP Digest authenti...
(QB_NEW_EN)
[grammar] ~146-~146: There might be a mistake here.
Context: ...y - Minimum Data Agent version: 1.1 - Required features: Uses the `VAPIX_USE...
(QB_NEW_EN)
[style] ~147-~147: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...e in the web user interface in versions prior to 1.1. ## Quick Setup ### High-Level St...
(EN_WORDINESS_PREMIUM_PRIOR_TO)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...W=Your Workflow Name ``` Replace your_github_token with the token you created in st...
(GITHUB)
[uncategorized] ~167-~167: The official name of this software platform is spelled with a capital “H”.
Context: ...ken](#creating-a-github-access-token)), your_github_username with your GitHub username, `y...
(GITHUB)
[grammar] ~177-~177: There might be a mistake here.
Context: ...les you uploaded** In this project, order of the files matters! This ...
(QB_NEW_EN)
[uncategorized] ~194-~194: The official name of this software platform is spelled with a capital “H”.
Context: ...ample. Adding this example file to the <repo-root>/.github/workflows folder will create a workflo...
(GITHUB)
[style] ~194-~194: To elevate your writing, try using an alternative expression here.
Context: ...or the repository. The name of the file does not matter, but the suffix .yml is required. You...
(MATTERS_RELEVANT)
[grammar] ~234-~234: There might be a mistake here.
Context: ....json is valid JSON" ``` > [!IMPORTANT] > **Important notes about the `GITHUB_WO...
(QB_NEW_EN)
[style] ~256-~256: Try using a synonym here to strengthen your writing.
Context: ...o be more specific about what the token gives access to. 
[grammar] ~271-~271: There might be a mistake here.
Context: ...ence. 1. Set the "Color" (e.g. "Green"). 1. Set "Duration" to "Continuous" or "Time"...
(QB_NEW_EN)
[grammar] ~272-~272: There might be a mistake here.
Context: ...he same color without a time limitation. 1. Leave "Priority" as is. Since only one p...
(QB_NEW_EN)
[grammar] ~317-~317: There might be a mistake here.
Context: ...guration issue. This would be indicated by FixedIT Data Agent showing messages lik...
(QB_NEW_EN)
[grammar] ~323-~323: There might be a mistake here.
Context: ...xtra env` parameter handling (see below) - Target workflow not in results: Your t...
(QB_NEW_EN)
[grammar] ~324-~324: There might be a mistake here.
Context: ...-found-among-recent-runs) section below. - Invalid credentials: GitHub token issu...
(QB_NEW_EN)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...e per_page parameter in config_input_github.conf might...
(GITHUB)
[uncategorized] ~334-~334: The official name of this software platform is spelled with a capital “H”.
Context: ...` parameter in config_input_github.conf might be too small. If you have 6...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ...** Increase per_page in config_input_github.conf to at...
(GITHUB)
[uncategorized] ~336-~336: The official name of this software platform is spelled with a capital “H”.
Context: ... per_page in config_input_github.conf to at least the number of workflo...
(GITHUB)
[uncategorized] ~340-~340: The official name of this software platform is spelled with a capital “H”.
Context: ...onfig files except config_agent.conf, config_input_github.conf, and config_output_stdout.conf....
(GITHUB)
[uncategorized] ~387-~387: The official name of this software platform is spelled with a capital “H”.
Context: ...ing GitHub's servers. ### config_input_github.conf Defines how to fetch workflow sta...
(GITHUB)
[uncategorized] ~413-~413: The official name of this software platform is spelled with a capital “H”.
Context: ...nt too. Upload this file instead of the config_input_github.conf file, then upload the `sample.jso...
(GITHUB)
[grammar] ~619-~619: There might be a mistake here.
Context: ...e LICENSE file for details.
(QB_NEW_EN)
🔇 Additional comments (2)
project-strobe-color-from-github-workflow/config_agent.conf (1)
1-36: LGTM! Well-documented Telegraf agent configuration.The configuration file is clear, well-structured, and includes helpful inline documentation explaining each parameter's purpose. The use of environment variables for
debugmode and the inclusion ofcollection_jitterto prevent API rate limiting are good practices.One minor consideration: Line 26 mentions "a much longer interval is recommended" for production. While the 5-second interval is appropriate for demonstration purposes, you might consider adding a specific suggestion (e.g., "consider 60s or higher for production") to help users choose an appropriate value.
project-strobe-color-from-github-workflow/README.md (1)
1-619: Excellent comprehensive documentation following the project template.This README exemplifies the standardized template requirements for example projects:
✅ Structure & Content:
- Clear introduction with link to FixedIT Data Agent product page
- Comprehensive "How It Works" section with detailed mermaid diagram showing data flow
- Proper "Why Choose This Approach?" section emphasizing accessibility for IT professionals without C/C++ development
- Well-organized table of contents with proper anchor links
- Compatibility sections for both AXIS OS and FixedIT Data Agent versions
- Quick Setup section with step-by-step instructions
- Troubleshooting guidance positioned right after setup
- Detailed local testing instructions with clear limitations
✅ Technical Accuracy:
- Environment variable examples follow the learnings about FixedIT Data Agent's Extra env handling (no quotes in semicolon-separated lists, spaces acceptable in values)
- Proper Axis device model naming with AXIS prefix for specific models
- Clear documentation of configuration file roles and load order requirements
✅ Audience Considerations:
- Effectively targets both IT professionals seeking plug-and-play solutions and developers wanting to customize
- Comprehensive troubleshooting section helps users diagnose common issues
- Local testing section clearly distinguishes what works on host vs. what requires actual device
The documentation is thorough, well-structured, and serves as an excellent example for future projects in this repository.
Based on learnings and coding guidelines.
|
Merging this now since FixedIT Data Agent v1.1 is released and the v1.0 compatibility snapshot is tagged. |



This PR adds the strobe control example project with extensive documentation. It also adds some new instructions to coderabbit related to example projects.
BLOCKED UNTIL THE FIXEDIT DATA AGENT V1.1 IS RELEASED SINCE WE NEED TO SEE LOAD ORDER.
Summary by CodeRabbit
New Features
Documentation
Tests
Chores