Skip to content

Conversation

@daniel-falk
Copy link
Contributor

@daniel-falk daniel-falk commented Aug 7, 2025

Explain the timelapse project in the root readme. Also add more structure and a table of content to it.

Summary by CodeRabbit

  • Documentation
    • Added a Table of Contents for easier navigation.
    • Introduced a new example: "Creating a Timelapse with AWS S3 Upload," featuring a workflow overview, preview image, YouTube link, and flowchart.
    • Improved section structure and formatting for clarity and consistency.
    • Enhanced markdown heading anchors to support Unicode and special characters for better cross-platform linking.

@coderabbitai
Copy link

coderabbitai bot commented Aug 7, 2025

Walkthrough

The README.md was updated to include a Table of Contents, improved section structuring, and a new example project detailing a timelapse workflow using AWS S3 uploads. Additional formatting adjustments and a Mermaid flowchart were added to enhance navigation and clarity. The .coderabbit.yaml configuration was also updated to specify using HTML anchor tags for headings with Unicode or backticks for consistent linking.

Changes

Cohort / File(s) Change Summary
Documentation Enhancements
README.md
Added Table of Contents, restructured sections with explicit headers, introduced a new timelapse S3 upload example, included a Mermaid flowchart, and improved formatting consistency.
Configuration Update
.coderabbit.yaml
Added instructions to use HTML anchor tags for headings containing Unicode characters or backticks to ensure consistent linking behavior across platforms.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant FixedIT Data Agent
    participant AXIS Device
    participant AWS S3

    User->>FixedIT Data Agent: Configure timelapse workflow
    FixedIT Data Agent->>AXIS Device: Fetch image at intervals
    AXIS Device-->>FixedIT Data Agent: Return image (binary)
    FixedIT Data Agent->>FixedIT Data Agent: Encode image (base64), wrap in JSON
    FixedIT Data Agent->>AWS S3: Upload image with timestamped filename
    AWS S3-->>FixedIT Data Agent: Confirm upload
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

  • Feature/main docs for strobe #6: Adds detailed example projects under "Edge Device Customization," including Mermaid flowcharts, similar to the new timelapse S3 upload example.
  • fixedit-ai/Developer-Program-Helper-Scripts#4: Enhances README.md documentation by adding structured navigation elements and new content sections related to Axis devices.
  • Add more instructions to coderabbit #8: Adds instructions and a README template to standardize documentation, directly relating to the README restructuring and enhancements.

Suggested reviewers

  • fixedit-olatz

Note

🔌 MCP (Model Context Protocol) integration is now available in Early Access!

Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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 (2)
README.md (2)

27-30: Conform to naming convention: use “AXIS” for product references

Per the repo guidelines, product names should carry the all-caps “AXIS” prefix. Update the text accordingly:

- … controlling an Axis strobe light …
+ … controlling an AXIS strobe light …

60-63: Forward-referenced node may confuse Mermaid viewers

B3 is used in the main graph before it is declared inside the sub-graph. Although Mermaid renders forward references, placing the definition first (or moving the B3 --> C edge down) improves readability and avoids IDE/preview warnings.

-    A["⏳ Wait<br/>Sleep for interval"] --> B1["📥 VAPIX API Call<br/>Fetch JPEG image"]
-    B3 --> C["☁️ AWS S3<br/>Upload with local buffer"]
+    A["⏳ Wait<br/>Sleep for interval"] --> B1["📥 VAPIX API Call<br/>Fetch JPEG image"]
+    %% B3 is declared later in the sub-graph; keep edges close to declaration for clarity
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between bb81048 and 27a0bf1.

📒 Files selected for processing (1)
  • README.md (2 hunks)
🧰 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:

  • 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:

  • README.md
🧠 Learnings (12)
📓 Common learnings
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.
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.
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/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.
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#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.
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/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.
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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • 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:

  • README.md
📚 Learning: 2025-08-05T17:57:22.613Z
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:

  • README.md
🪛 LanguageTool
README.md

[style] ~76-~76: Consider using a different verb to strengthen your wording.
Context: ... traditional embedded programming. This shows that it is possible to work with binary...

(SHOW_INDICATE)

🪛 markdownlint-cli2 (0.17.2)
README.md

56-56: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

Copy link

@coderabbitai coderabbitai bot left a 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)
README.md (1)

58-59: Use proper capitalization for generic company references.

Per repository style, reserve all-caps “AXIS” for product names; when referring generically use “Axis device(s)”.

-…at regular intervals from an AXIS device…
+…at regular intervals from an Axis device…
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 27a0bf1 and df4eee1.

📒 Files selected for processing (2)
  • .coderabbit.yaml (1 hunks)
  • README.md (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .coderabbit.yaml
🧰 Additional context used
📓 Path-based instructions (2)
**/*.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.
Anchor Links: For headings that contain Unicode characters (emojis, special characters) or backticks, use HTML anchor tags to ensure consistent linking behavior across different platforms (GitHub, VS Code, etc.). Add a separate line with <a id="anchor-name"></a> before the heading, and update the table of contents to reference this manual anchor.

Files:

  • 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:

  • README.md
🧠 Learnings (17)
📓 Common learnings
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.
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.
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/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.
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: 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/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.
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.
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/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.
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.
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-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:

  • 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:

  • 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:

  • README.md
📚 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:

  • 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:

  • 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:

  • 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:

  • README.md
📚 Learning: 2024-10-11T23:20:54.878Z
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: 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:

  • README.md
📚 Learning: 2025-06-23T08:46:04.049Z
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: 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:

  • 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:

  • 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:

  • README.md
📚 Learning: 2024-11-04T11:06:32.617Z
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 in `acaps/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:

  • 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:

  • README.md
📚 Learning: 2025-08-05T17:57:22.613Z
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:

  • README.md
🪛 LanguageTool
README.md

[style] ~82-~82: Consider using a different verb to strengthen your wording.
Context: ... traditional embedded programming. This shows that it is possible to work with binary...

(SHOW_INDICATE)

🪛 markdownlint-cli2 (0.17.2)
README.md

62-62: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)

🔇 Additional comments (1)
README.md (1)

5-14: TOC looks good – anchors now resolve correctly.
The manual IDs for emoji headings fix the navigation issue noted in the previous review. Nice cleanup.

@daniel-falk daniel-falk merged commit 2bf53e1 into main Aug 8, 2025
3 checks passed
@daniel-falk daniel-falk deleted the feature/add-timelapse-to-main-readme branch August 8, 2025 11:57
@coderabbitai coderabbitai bot mentioned this pull request Aug 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants