Skip to content

chore: Enhance security, CI stability, and dashboard features#179

Closed
yacosta738 wants to merge 63 commits into
minorfrom
main
Closed

chore: Enhance security, CI stability, and dashboard features#179
yacosta738 wants to merge 63 commits into
minorfrom
main

Conversation

@yacosta738
Copy link
Copy Markdown
Contributor

This pull request introduces several improvements across documentation, CI workflows, and project skills, with a focus on enhanced frontend design guidance, security scanning, and workflow reliability. The most notable changes are the addition of a comprehensive "frontend-design" skill, documentation and workflow updates for Snyk security scanning, improved Docker publishing documentation, and reliability fixes in commit message checks and Renovate automation.

Documentation and Skills

  • Added a new frontend-design skill in .agents/skills/frontend-design/SKILL.md, providing detailed best practices and decision rules for building production-grade frontend UIs that avoid generic AI patterns. This includes when to use the skill, critical design patterns, code examples, and command-line tips.
  • Registered the frontend-design skill in .agents/AGENTS.md for discoverability and usage guidance.

Security and CI Enhancements

  • Documented the new snyk-security.yml workflow in .github/workflows/README.md, outlining its purpose, triggers, and steps for running Snyk Code, Open Source, Container, and IaC scans, with SARIF uploads for GitHub Code Scanning. [1] [2]
  • Added the Snyk workflow to the workflow summary table for visibility.

Docker Publishing and Workflow Updates

  • Updated the publishing workflow documentation to clarify that both runtime and dashboard Docker images are built and published, and improved step descriptions for clarity.
  • Pinned Docker-related GitHub Actions to specific commit SHAs in _publish.yml for improved security and reproducibility. [1] [2]

Automation and Reliability Fixes

  • Improved the commit message check script (check-commit-msg.sh) to use more robust Bash idioms and ensure error messages are sent to stderr.
  • Enhanced the Renovate fix workflow (fix-renovate.yml) by adding a step to re-validate the PR head SHA before performing write actions, preventing race conditions and ensuring that automation only acts on the correct commit. Also updated the push command to use HEAD for accuracy. [1] [2]

Changelog and Journal Updates

  • Updated .agents/journal/scribe-journal.md with detailed entries for recent documentation audits, asset/link fixes, and coverage configuration, ensuring a clear record of project improvements and validation steps. [1] [2]

yacosta738 and others added 30 commits March 6, 2026 10:44
…149) (#150)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix: clients/web/apps/docs/package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-ASTRO-15338137
- https://snyk.io/vuln/SNYK-JS-ASTRO-15338138
- https://snyk.io/vuln/SNYK-JS-ASTRO-15357600

* fix: clients/web/apps/docs/package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-ASTRO-15338137
- https://snyk.io/vuln/SNYK-JS-ASTRO-15338138
- https://snyk.io/vuln/SNYK-JS-ASTRO-15357600

---------

Co-authored-by: snyk-io[bot] <141718529+snyk-io[bot]@users.noreply.github.com>
#151)

* feat(docker): enhance local development setup with Docker Compose support for dashboard

* feat: update config bindings to use value properties for improved reactivity

* feat(docker): add dashboard Docker image build and smoke check functionality

* feat(docker): update Docker actions and improve post-install script error handling

* refactor: fix qa code

* chore(deps): refresh web lockfile after CI checks
Align Sonar test and coverage scope with Kotlin/KMP conventions and remove low-value smells so quality metrics reflect real risk.
* docs: sync CLI reference and intro with codebase

* docs(es): localize tech stack and reorder journal
Temporarily set new coverage gate to 70 with CI automation, expand coverage exclusions for low-ROI paths, and split peripheral command/tool wiring helpers to reduce Rust cognitive complexity.
…rs (#156)

* ci: configure Stylelint and SonarQube report paths for multiple linters

- Configure Stylelint in `clients/web` with Vue and Tailwind support.
- Add `lint:style` script to `clients/web/package.json`.
- Update `sonarqube-analysis.yml` to run Stylelint, Hadolint, and Actionlint.
- Enable Android Lint generation in Gradle step.
- Configure SonarQube report paths for Stylelint, Android Lint, Hadolint, and Actionlint.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: configure Stylelint and SonarQube report paths for multiple linters

- Configure Stylelint in `clients/web` with Vue and Tailwind support (ignoring @layer).
- Add `lint:style` script to `clients/web/package.json`.
- Update `sonarqube-analysis.yml` to run Stylelint, Hadolint (safe path handling), and Actionlint (pinned v1.7.11).
- Enable Android Lint generation in Gradle step.
- Configure SonarQube report paths for Stylelint, Android Lint, Hadolint, and Actionlint.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: address PR feedback for SonarQube linters configuration

- Add explicit `pnpm -C clients/web install` step.
- Remove `|| true` from linting steps to surface failures.
- Refactor Hadolint and Actionlint to use safe Docker-based execution with `find -exec`.
- Add `layer` to Stylelint `at-rule-no-unknown` ignore list.
- Ensure all Sonar property keys match requested values.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: Update .github/workflows/sonarqube-analysis.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Yuniel Acosta Pérez <33158051+yacosta738@users.noreply.github.com>

* ci: fix pnpm/action-setup SHA and ensure clean workflow configuration

- Update `pnpm/action-setup` SHA to working version `41ff72655975bd51cab0327fa583b6e92b6d3061`.
- Address PR feedback by adding explicit `pnpm -C clients/web install`.
- Surface failures by removing `|| true` from linting steps.
- Use safe Docker-based execution for Hadolint and Actionlint with `find -exec`.
- Add `layer` to Stylelint ignore list for Tailwind support.
- Ensure all Sonar property keys match requested values.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: fix lockfile sync and address CI failures

- Synchronize root `pnpm-lock.yaml` with `package.json`.
- Update `pnpm/action-setup` to a verified commit SHA.
- Explicitly install `clients/web` dependencies in CI.
- Ensure Stylelint configuration ignores Tailwind's `@layer`.
- Configure SonarQube report paths for Stylelint, Android Lint, Hadolint, and Actionlint.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: finalize Stylelint and SonarQube reporting configuration

- Configure Stylelint in `clients/web` with Vue/Tailwind support.
- Enforce long hex notation and normalize colors across the web module.
- Fix CI workflow: use working pnpm action SHA, safe Docker exec for linters.
- Sync `pnpm-lock.yaml` with root `package.json`.
- Configure SonarQube report paths for Stylelint, Android Lint, Hadolint, and Actionlint.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: address Docker rate limits and finalize SonarQube reporting

- Switch Hadolint and Actionlint to binary-based execution to avoid Docker Hub rate limits.
- Ensure 6-digit hex notation consistency across the web monorepo.
- Fix pnpm/action-setup SHA to verified version.
- Explicitly install clients/web dependencies in CI.
- Configure all requested SonarQube report paths.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

* ci: finalize SonarQube reporting setup and fix CI stability

- Configure Stylelint in `clients/web` with Vue, SCSS, and Tailwind support.
- Enforce 6-digit hex notation across the web module and normalize existing colors.
- Fix SonarQube analysis workflow:
  - Synchronize lockfile and use verified `pnpm/action-setup` SHA.
  - Explicitly install workspace dependencies.
  - Use binary-based execution for Hadolint and Actionlint to bypass Docker rate limits.
  - Correct Sonar report path property keys.
- Fix Dockerfiles in `clients/agent-runtime` to resolve Hadolint parse errors.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>

---------

Signed-off-by: Yuniel Acosta Pérez <33158051+yacosta738@users.noreply.github.com>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…eatures (#157)

* feat(conductor): implement conductor task routing and observability features

* fix(ci): harden Sonar gate step and conductor telemetry wiring

* fix(docs): align hero heading property order for stylelint

* ci(sonar): enforce PR coverage gate update via project lookup

* ci(sonar): include organization in quality gate API calls

* ci(sonar): include metric parameters when updating gate condition

* ci(sonar): switch PR project off built-in quality gate

* fix(ci): correct Sonar workflow heredoc indentation

* fix(ci): select Sonar quality gate by gateId

* fix(gradle): prioritize plugin portal before jitpack in build-logic

* fix(ci): make Sonar gate-relax step non-blocking on PRs

* fix(ci): make Sonar quality gate advisory on PRs

* fix(ci): address Sonar hotspot checks in sonar workflow
…otection

Hardens the `ImageInfoTool` by implementing a standardized security
pattern:
1. Enforces rate limiting via `is_rate_limited` and `record_action`.
2. Resolves relative paths against the configured `workspace_dir`.
3. Performs `tokio::fs::canonicalize` and validates the resolved path
   against the workspace root using `is_resolved_path_allowed` to
   prevent symlink and traversal escapes.
4. Ensures all filesystem errors return a failed `ToolResult` instead
   of a hard `Err`, maintaining consistency with other tools.

Adds comprehensive unit tests for rate limiting and symlink protection.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>
Hardens the `ImageInfoTool` by implementing a standardized security
pattern:
1. Enforces rate limiting via `is_rate_limited` and `record_action`.
2. Resolves relative paths against the configured `workspace_dir`.
3. Performs `tokio::fs::canonicalize` and validates the resolved path
   against the workspace root using `is_resolved_path_allowed` to
   prevent symlink and traversal escapes.
4. Redacts absolute internal paths from error messages when a workspace
   escape is detected, returning an opaque message instead.
5. Ensures all filesystem errors return a failed `ToolResult` instead
   of a hard `Err`, maintaining consistency and improving error handling.

Adds comprehensive unit tests for rate limiting, symlink protection,
and redacted error reporting.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>
…me context

Introduce a shared bootstrap module to construct observer/runtime/security/memory/tools once and reuse it across agent, channels, and gateway while preserving provider strategy per surface.
yacosta738 and others added 26 commits March 8, 2026 17:05
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Yuniel Acosta Pérez <33158051+yacosta738@users.noreply.github.com>
… diagram assets to public/

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>
…chitecture guides

- Moved Mermaid and PlantUML diagrams from `src/content/docs/` to `public/` to ensure they are served correctly.
- Fixed broken relative links in `getting-started.md`, `release.md`, and `architecture.md`.
- Corrected Architecture Overview links and labels in the Spanish guide.
- Renamed architecture diagram table columns to reflect logical IDs.
- Configured Lychee link checker to ignore Mermaid/PlantUML assets.
- Maintained 1:1 parity between English and Spanish documentation.
- Updated `scribe-journal.md` with the changes.
- Verified fixes with Playwright and successful Astro build.

Co-authored-by: yacosta738 <33158051+yacosta738@users.noreply.github.com>
…nes (#172)

* refactor(bootstrap): add full/code/lite capability profiles

* fix(bootstrap): honor configured agent profile across runtime paths

* refactor(agent): simplify memory and observer creation by using full agent profile

* test(bootstrap): make lite profile tool assertion order-independent

* refactor(frontend-design): enhance description and guidelines for UI creation
* test(bootstrap): add feature-flag parity matrix

* test(agent-runtime): share bootstrap and MCP test helpers
docs(web): align marketing and docs with Corvus runtime identity
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 9, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (2)
  • main
  • develop

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8e33bac4-79ef-4d03-b89b-4bb82454bf72

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 9, 2026

✅ Contributor Report

User: @yacosta738
Status: Passed (12/13 metrics passed)

Metric Description Value Threshold Status
PR Merge Rate PRs merged vs closed 88% >= 30%
Repo Quality Repos with ≥100 stars 0 >= 0
Positive Reactions Positive reactions received 9 >= 1
Negative Reactions Negative reactions received 0 <= 5
Account Age GitHub account age 3054 days >= 30 days
Activity Consistency Regular activity over time 108% >= 0%
Issue Engagement Issues with community engagement 0 >= 0
Code Reviews Code reviews given to others 398 >= 0
Merger Diversity Unique maintainers who merged PRs 2 >= 0
Repo History Merge Rate Merge rate in this repo 91% >= 0%
Repo History Min PRs Previous PRs in this repo 135 >= 0
Profile Completeness Profile richness (bio, followers) 90 >= 0
Suspicious Patterns Spam-like activity detection 1 N/A

Contributor Report evaluates based on public GitHub activity. Analysis period: 2025-03-09 to 2026-03-09

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Mar 9, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
76.8% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@yacosta738 yacosta738 closed this Mar 9, 2026
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.

1 participant