feat: Add Q0: Pre-commit hooks setup. #41

Merged
brent.edwards merged 25 commits from Q0-quality-automation into master 2026-02-12 07:21:53 +00:00
Member
No description provided.
hurui200320 requested changes 2026-02-10 08:44:27 +00:00
Dismissed
hurui200320 left a comment

I finished the review with the help of OpenCode (via branch diff). I left several comments here. As usual, I (and AI) might be wrong, so please feel free to correct me and close the items that I'm wrong. Thanks : )

I finished the review with the help of OpenCode (via branch diff). I left several comments here. As usual, I (and AI) might be wrong, so please feel free to correct me and close the items that I'm wrong. Thanks : )
@ -0,0 +85,4 @@
### Nightly Quality
A nightly workflow (`.forgejo/workflows/nightly-quality.yml`) runs at midnight UTC:
Member

On which branch? Does it run on master or develop only, or all branches? This is also not specificed in the pipeline yaml file, so might be a good idea to make it explicit.

On which branch? Does it run on master or develop only, or all branches? This is also not specificed in the pipeline yaml file, so might be a good idea to make it explicit.
Author
Member

The workflow is not limited to any branch, so -- according to https://forgejo.org/docs/latest/user/actions/basic-concepts/ -- it should run against all branches.

The workflow is not limited to any branch, so -- according to https://forgejo.org/docs/latest/user/actions/basic-concepts/ -- it should run against all branches.
hurui200320 marked this conversation as resolved
@ -0,0 +94,4 @@
- Reports uploaded as artifacts (90-day retention)
## Security Scanning
Member

Security scanning section is empty.

Security scanning section is empty.
Author
Member

It's not empty. It just goes from ## to ###.

It's not empty. It just goes from ## to ###.
hurui200320 marked this conversation as resolved
@ -0,0 +138,4 @@
| E | 21-30 | Very complex - must refactor |
| F | 31+ | Extremely complex - CI fails |
Current project average: **A (3.56)**
Member

Just a concern: Since this document is not being automatically updated, the number or the current status here might be out of date as people keep working on the project. Maybe add a date to it if you want to keep it?

Just a concern: Since this document is not being automatically updated, the number or the current status here might be out of date as people keep working on the project. Maybe add a date to it if you want to keep it?
Author
Member

I am going to remove that line.

I am going to remove that line.
hurui200320 marked this conversation as resolved
@ -929,4 +1004,0 @@
- [ ] **Q0.6c** Test on fresh checkout
- [ ] Commit: "feat(qa): add developer setup script"
- [ ] Tests: Verify all hooks work correctly
- [ ] **Q0.7** [Rui] Write script to test all pre-commit hooks:
Member

I have no objections on someone taking my tasks. But I do notice that the original plan said:

Write script to test all pre-commit hooks

Which, I assume we should have some robot testing? Today when I run opencode to do Q0.7, it generates several files under the robot and features folder for behavior tests. Considering this was my task, so if you want, you can uncheck the items and let me do them. Or just ask opencode to generate some test for the pre-commit hooks : )

I have no objections on someone taking my tasks. But I do notice that the original plan said: > Write script to test all pre-commit hooks Which, I assume we should have some robot testing? Today when I run opencode to do Q0.7, it generates several files under the `robot` and `features` folder for behavior tests. Considering this was my task, so if you want, you can uncheck the items and let me do them. Or just ask opencode to generate some test for the pre-commit hooks : )
Author
Member

The difference is that you should test the pre-commit hooks. My code needed to write them.

The difference is that you should test the pre-commit hooks. My code needed to write them.
hurui200320 marked this conversation as resolved
@ -961,3 +1080,1 @@
- [ ] **Q1.4d** Fail if any security issues
- [ ] **Q1.4e** Generate summary comment for PR
- [ ] Commit: "feat(ci): add quality gate enforcement"
- [X] **Stage Q1: CI/CD Pipeline** (Day 2) **[Brent]** - COMPLETED 2026-02-09
Member

The Tests section is not checked, according to

Only mark the parent complete when every sub-bullet

This item shouldn't be marked as completed.

The `Tests` section is not checked, according to > Only mark the parent complete when every sub-bullet This item shouldn't be marked as completed.
Author
Member

Great catch. Done.

Great catch. Done.
hurui200320 marked this conversation as resolved
@ -962,2 +1080,2 @@
- [ ] **Q1.4e** Generate summary comment for PR
- [ ] Commit: "feat(ci): add quality gate enforcement"
- [X] **Stage Q1: CI/CD Pipeline** (Day 2) **[Brent]** - COMPLETED 2026-02-09
- [X] Code: Extend Forgejo Actions workflow for comprehensive PR validation
Member

Q1.5 is not checked, according to

Only mark the parent complete when every sub-bullet

This item shouldn't be marked as completed.

Q1.5 is not checked, according to > Only mark the parent complete when every sub-bullet This item shouldn't be marked as completed.
Author
Member

Fixed.

Fixed.
hurui200320 marked this conversation as resolved
@ -0,0 +1,7 @@
#!/bin/sh
Member

I noticed that this script is not being used anywhere, only mentioned in the documentation. Also notice this line from the implementation plan:

NO wrapper scripts - use tools directly as designed.

I noticed that this script is not being used anywhere, only mentioned in the documentation. Also notice this line from the implementation plan: > NO wrapper scripts - use tools directly as designed.
Author
Member

Fixed.

Fixed.
hurui200320 marked this conversation as resolved
@ -0,0 +1,87 @@
#!/usr/bin/env bash
Member

I noticed that this script is not being used anywhere, only mentioned in the documentation. Maybe we should call it in the pipeline so if someone changeds something and break this script, we could know by a pipeline failure or so.

I noticed that this script is not being used anywhere, only mentioned in the documentation. Maybe we should call it in the pipeline so if someone changeds something and break this script, we could know by a pipeline failure or so.
Author
Member

OpenCode added a .devcontainer/post-create.sh that will automatically run the script.

OpenCode added a `.devcontainer/post-create.sh` that will automatically run the script.
hurui200320 marked this conversation as resolved
freemo force-pushed Q0-quality-automation from 9c0d31950e to 0b8f508420 2026-02-10 13:39:42 +00:00 Compare
freemo force-pushed Q0-quality-automation from 0b8f508420 to 3f7cb06981 2026-02-10 16:04:19 +00:00 Compare
Complete Brent QA tasks Q1.5, 10B.4, 10C.1, and 10C.4 on the Q0-quality-automation branch.

- Add edge_case_plan_scenarios.feature (26 scenarios) covering concurrent
  plan execution, resource conflicts, validation failure chains, and
  rollback edge cases
- Add validation_test_fixtures.feature (34 scenarios) covering AST
  security, lambda validation, content sanitization, project model
  validation, change-list coercion, and ActionArgument parsing
- Add branch protection rules documentation in docs/development/ci-cd.md
- Establish quality metrics baseline (96% coverage, 0 lint/type/security
  findings)
- Fix missing langchain-anthropic dependency in pyproject.toml
- Fix Rich table column wrapping in plan_lifecycle_cli_steps.py by
  patching console width during tests

Suite: 107 features, 1673 scenarios, 7777 steps — all passing.
Author
Member

I apologize. I messed up. I did not change the branch when OpenCode added more material.

I apologize. I messed up. I did not change the branch when OpenCode added more material.
Removed `run-semgrep.sh` and automatically run setup-dev.sh
CoreRasurae left a comment

I did a code review with Opus 4.6 and the main findings are in the comments however there is this other set of findings, which for some of the cases they might be relavant:

MEDIUM Findings (11)

ID File Category Description
M1 scripts/check-quality-gates.py Test Coverage Zero test scenarios for 5 quality gate functions. check_complexity returns True on JSONDecodeError.
M2 scripts/check-adr-compliance.py Bug ADR-002 and ADR-007 checks use raw string matching (not AST). False positives on comments/docstrings.
M3 pyproject.toml:213 Bug major_version_zero = true contradicts version = "1.0.0". Breaking changes will bump minor instead of major.
M4 pyproject.toml (dev deps) Bug Commitizen not in [project.optional-dependencies] dev. Developers outside devcontainer won't have it.
M5 .pre-commit-config.yaml:72-78 Performance Pyright runs full src/ type-check on every commit. Slow and frustrating for developers. Move to pre-push.
M6 docs/development/ci-cd.md Documentation Mixes master and main references. Line 150 says main matching (wrong) CI config.
M7 features/edge_case_plan_scenarios.feature Test Quality "Concurrent" scenarios are purely sequential. No actual concurrent/threaded testing. Mislabeled.
M8 features/steps/edge_case_plan_steps.py:269 Test Quality os.environ.pop("CLEVERAGENTS_TESTING_USE_MOCK_AI") without restore. Potential cross-scenario pollution.
M9 scripts/setup-dev.sh:25 Bug grep -oP requires GNU grep with PCRE. Not portable to all container images.
M10 .forgejo/workflows/ci.yml:62 Security Bandit JSON step uses || true which swallows crashes, not just findings.
M11 features/steps/edge_case_plan_steps.py:255-261 Performance All resource-conflict scenarios run full MigrationRunner.run_migrations() each time.
I did a code review with Opus 4.6 and the main findings are in the comments however there is this other set of findings, which for some of the cases they might be relavant: MEDIUM Findings (11) | ID | File | Category | Description | |----|------|----------|-------------| | M1 | scripts/check-quality-gates.py | Test Coverage | Zero test scenarios for 5 quality gate functions. check_complexity returns True on JSONDecodeError. | | M2 | scripts/check-adr-compliance.py | Bug | ADR-002 and ADR-007 checks use raw string matching (not AST). False positives on comments/docstrings. | | M3 | pyproject.toml:213 | Bug | major_version_zero = true contradicts version = "1.0.0". Breaking changes will bump minor instead of major. | | M4 | pyproject.toml (dev deps) | Bug | Commitizen not in [project.optional-dependencies] dev. Developers outside devcontainer won't have it. | | M5 | .pre-commit-config.yaml:72-78 | Performance | Pyright runs full src/ type-check on every commit. Slow and frustrating for developers. Move to pre-push. | | M6 | docs/development/ci-cd.md | Documentation | Mixes master and main references. Line 150 says main matching (wrong) CI config. | | M7 | features/edge_case_plan_scenarios.feature | Test Quality | "Concurrent" scenarios are purely sequential. No actual concurrent/threaded testing. Mislabeled. | | M8 | features/steps/edge_case_plan_steps.py:269 | Test Quality | os.environ.pop("CLEVERAGENTS_TESTING_USE_MOCK_AI") without restore. Potential cross-scenario pollution. | | M9 | scripts/setup-dev.sh:25 | Bug | grep -oP requires GNU grep with PCRE. Not portable to all container images. | | M10 | .forgejo/workflows/ci.yml:62 | Security | Bandit JSON step uses \|\| true which swallows crashes, not just findings. | | M11 | features/steps/edge_case_plan_steps.py:255-261 | Performance | All resource-conflict scenarios run full MigrationRunner.run_migrations() each time. |
@ -17,19 +17,19 @@ jobs:
image: python:3.13-slim
steps:
- uses: actions/checkout@v4
Member

CI triggers on main but repo default branch is master (CI/CD)

  • File: .forgejo/workflows/ci.yml:4-6
  • Commit: 7ef5ebb, persists through 0511261
  • Description: on: push: branches: [main, develop] and pull_request: branches: [main]. Confirmed: origin/HEAD -> origin/master. The entire CI pipeline (lint, typecheck, security, quality, coverage, build, docker, helm) will not trigger on pushes to master or PRs targeting master. All quality gates are effectively dead.
CI triggers on main but repo default branch is master (CI/CD) - File: .forgejo/workflows/ci.yml:4-6 - Commit: 7ef5ebb, persists through 0511261 - Description: on: push: branches: [main, develop] and pull_request: branches: [main]. Confirmed: origin/HEAD -> origin/master. The entire CI pipeline (lint, typecheck, security, quality, coverage, build, docker, helm) will not trigger on pushes to master or PRs targeting master. All quality gates are effectively dead.
Author
Member

This is critical. Thank you.

This is critical. Thank you.
@ -78,0 +157,4 @@
- name: Run tests with coverage
run: |
coverage run --source=src -m behave -q --no-capture || true
Member

CI coverage job uses || true -- masks test failures

  • File: .forgejo/workflows/ci.yml:145-157
  • Commit: 7ef5ebb
  • Description: coverage run ... -m behave ... || true unconditionally swallows test failures. Partial failures producing >85% coverage pass silently.
  • Fix: Remove || true; capture behave exit code separately from coverage threshold.

I think this is not relevant, that this is okay, because we have unit_tests target to check for the unit tests and here we are mostly concerned about coverage.

CI coverage job uses || true -- masks test failures - File: .forgejo/workflows/ci.yml:145-157 - Commit: 7ef5ebb - Description: coverage run ... -m behave ... || true unconditionally swallows test failures. Partial failures producing >85% coverage pass silently. - Fix: Remove || true; capture behave exit code separately from coverage threshold. I think this is not relevant, that this is okay, because we have unit_tests target to check for the unit tests and here we are mostly concerned about coverage.
Author
Member

Did it anyway.

Did it anyway.
@ -0,0 +13,4 @@
hooks:
- id: no-commit-to-branch
name: Prevent direct commits to main
args: ["--branch", "main"]
Member

Pre-commit branch protection guards main instead of master

  • File: .pre-commit-config.yaml:12
  • Description: no-commit-to-branch configured with args: ["--branch", "main"]. Direct commits to master are not blocked.
  • Fix: Change to args: ["--branch", "master"].
Pre-commit branch protection guards main instead of master - File: .pre-commit-config.yaml:12 - Description: no-commit-to-branch configured with args: ["--branch", "main"]. Direct commits to master are not blocked. - Fix: Change to args: ["--branch", "master"].
Author
Member

Done.

Done.
@ -0,0 +79,4 @@
- id: semgrep-eval-exec
name: Semgrep eval/exec detection
language: system
entry: scripts/run-semgrep.sh
Member

Deleted run-semgrep.sh still referenced by pre-commit config (Tooling Breakage)

  • File: .pre-commit-config.yaml:82-86
  • Commit: 7caac27 deletes the script; .pre-commit-config.yaml unchanged
  • Description: The semgrep-eval-exec hook has entry: scripts/run-semgrep.sh, but scripts/ only contains check-adr-compliance.py, check-quality-gates.py, do-something.sh, setup-dev.sh. Every git commit touching Python files in src/ will fail with a file-not-found error. Pre-commit is broken for all developers.
  • Fix: Either inline the semgrep command in the hook entry, remove the hook, or restore the script.
Deleted run-semgrep.sh still referenced by pre-commit config (Tooling Breakage) - File: .pre-commit-config.yaml:82-86 - Commit: 7caac27 deletes the script; .pre-commit-config.yaml unchanged - Description: The semgrep-eval-exec hook has entry: scripts/run-semgrep.sh, but scripts/ only contains check-adr-compliance.py, check-quality-gates.py, do-something.sh, setup-dev.sh. Every git commit touching Python files in src/ will fail with a file-not-found error. Pre-commit is broken for all developers. - Fix: Either inline the semgrep command in the hook entry, remove the hook, or restore the script.
Author
Member

Fixed. Thank you for an excellent code review!

Fixed. Thank you for an excellent code review!
test: harden code sandbox, add path traversal protection, and fix test mocks
Some checks failed
CI / lint (pull_request) Failing after 3s
CI / typecheck (pull_request) Failing after 3s
CI / coverage (pull_request) Has been skipped
CI / quality (pull_request) Failing after 5s
CI / security (pull_request) Failing after 6s
CI / behave (3.11) (pull_request) Failing after 2s
CI / behave (3.12) (pull_request) Failing after 2s
CI / behave (3.13) (pull_request) Failing after 3s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 3s
761db2518c
ci(.forgejo/workflows/ci.yml): adding node to the jobs
Some checks failed
CI / lint (pull_request) Failing after 16s
CI / typecheck (pull_request) Successful in 26s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 20s
CI / quality (pull_request) Failing after 16s
CI / behave (3.11) (pull_request) Failing after 11s
CI / behave (3.12) (pull_request) Failing after 11s
CI / behave (3.13) (pull_request) Failing after 14s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 13s
3c63a4c132
Many steps in ci were failing due to missing `node`.
ci(pyproject.toml): force the version of ruff
Some checks failed
CI / lint (pull_request) Failing after 16s
CI / typecheck (pull_request) Successful in 27s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 18s
CI / quality (pull_request) Failing after 15s
CI / behave (3.11) (pull_request) Failing after 11s
CI / behave (3.12) (pull_request) Failing after 11s
CI / behave (3.13) (pull_request) Failing after 13s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 14s
1774debbc4
ruff should now be version 0.15.
build(.pre-commit-config.yaml): moving ruff to version 0.15.0
Some checks failed
CI / lint (pull_request) Failing after 15s
CI / typecheck (pull_request) Successful in 26s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 18s
CI / quality (pull_request) Failing after 17s
CI / behave (3.11) (pull_request) Failing after 12s
CI / behave (3.12) (pull_request) Failing after 11s
CI / behave (3.13) (pull_request) Failing after 13s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 13s
16794e43ae
The version of ruff wasn't right in .pre-commit-config.yaml
build(features/steps): fix 14 files to match new ruff format
Some checks failed
CI / lint (pull_request) Failing after 16s
CI / typecheck (pull_request) Successful in 27s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 19s
CI / quality (pull_request) Failing after 15s
CI / behave (3.11) (pull_request) Failing after 11s
CI / behave (3.12) (pull_request) Failing after 10s
CI / behave (3.13) (pull_request) Failing after 14s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 13s
c5004ae918
style(robot/-and-typings/numpy): fix style problems found by ruff check
Some checks failed
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 25s
CI / security (pull_request) Successful in 18s
CI / quality (pull_request) Failing after 15s
CI / behave (3.11) (pull_request) Failing after 11s
CI / behave (3.12) (pull_request) Failing after 11s
CI / behave (3.13) (pull_request) Failing after 13s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 14s
CI / coverage (pull_request) Failing after 15s
51bfee28a9
style(src/cleveragents/reactive/application.py): simplify the code that gets an F on complexity metric
Some checks failed
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Failing after 16s
CI / behave (3.11) (pull_request) Failing after 11s
CI / behave (3.12) (pull_request) Failing after 11s
CI / behave (3.13) (pull_request) Failing after 14s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Failing after 14s
CI / coverage (pull_request) Failing after 16s
a40d48cbea
Forgejo shows the following error: ::error::@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.
ci(.forgejo/workflows/ci.yml): remove behave 3.11 and 3.12
Some checks failed
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 24s
CI / security (pull_request) Successful in 18s
CI / quality (pull_request) Failing after 16s
CI / behave (3.13) (pull_request) Failing after 15s
CI / helm (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / build (pull_request) Failing after 14s
CI / coverage (pull_request) Failing after 17s
ea783c57e9
ci(.forgejo/workflows/ci.yml): remove unused behave-parallel
Some checks failed
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 14s
CI / behave (3.13) (pull_request) Failing after 14s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / build (pull_request) Successful in 11s
CI / coverage (pull_request) Failing after 14s
4ae8a9ee3a
No longer installing behave-parallel. Also removed other uploads that won't work.
build(behave.ini): remove ", src" from "paths"
Some checks failed
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 25s
CI / security (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 13s
CI / behave (3.13) (pull_request) Failing after 3m46s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 4m20s
3ed11f7988
The code was seeing the whole text as one path.
test(behave): fix behave tests
Some checks failed
CI / lint (pull_request) Successful in 18s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Failing after 3m50s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 4m20s
17fe46d925
There had been over 100 behave tests failing. There should be none failing now.
test(features/steps): fix features that depend on running as user not superuser
Some checks failed
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 25s
CI / security (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Failing after 3m54s
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 4m17s
d4a48caeec
test(features/steps): remove ansi codes
Some checks failed
CI / lint (pull_request) Successful in 17s
CI / security (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 24s
CI / quality (pull_request) Successful in 15s
CI / build (pull_request) Successful in 13s
CI / behave (3.13) (pull_request) Successful in 3m43s
CI / docker (pull_request) Failing after 33s
CI / helm (pull_request) Failing after 6s
CI / coverage (pull_request) Successful in 4m20s
c9605c9381
Remove rich formatting from output
Merge branch 'master' into Q0-quality-automation
Some checks failed
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 27s
CI / security (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 11s
CI / behave (3.13) (pull_request) Successful in 3m47s
CI / docker (pull_request) Failing after 32s
CI / helm (pull_request) Failing after 7s
CI / coverage (pull_request) Successful in 4m16s
04070ca3ff
# Conflicts:
#	implementation_plan.md
fix(ci): fix docker build job and Dockerfile
Some checks failed
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 24s
CI / security (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 15s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Successful in 3m45s
CI / docker (pull_request) Failing after 6s
CI / coverage (pull_request) Successful in 4m12s
945cced381
- Add DinD service container and docker:cli image so docker CLI is available
- Fix Dockerfile: remove missing uv.lock, fix build order (copy source before build)
- Remove helm job (k8s/ directory does not exist yet)
fix(ci): use docker:dind as main container instead of services
Some checks failed
CI / lint (pull_request) Successful in 15s
CI / security (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 15s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Successful in 3m41s
CI / docker (pull_request) Failing after 22s
CI / coverage (pull_request) Successful in 4m19s
d0f1c8bae3
Forgejo act_runner service container networking fails with 'network not
found'. Use docker:dind directly with --privileged and start dockerd
inline to avoid the services networking issue.
fix(docker): copy README.md into build stage for hatchling
All checks were successful
CI / lint (pull_request) Successful in 14s
CI / typecheck (pull_request) Successful in 24s
CI / security (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 41s
CI / behave (3.13) (pull_request) Successful in 3m39s
CI / docker (pull_request) Successful in 39s
CI / coverage (pull_request) Successful in 4m17s
58d79558ce
behave-parallel pulls behave>=1.2.6 which resolves to 1.3.3. Behave
1.3.3 no longer strips trailing colons from step text before tables,
breaking the architecture.feature step matcher.
fix(nox): run asv machine --yes before benchmarks
All checks were successful
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 25s
CI / security (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 14s
CI / build (pull_request) Successful in 12s
CI / behave (3.13) (pull_request) Successful in 3m45s
CI / coverage (pull_request) Successful in 4m10s
CI / docker (pull_request) Successful in 47s
63b54ac8ab
asv requires machine info to be configured before running benchmarks.
Without this, asv run fails on first use or in CI/containers.
brent.edwards deleted branch Q0-quality-automation 2026-02-12 07:21:53 +00:00
freemo added this to the v3.0.0 milestone 2026-02-23 17:24:52 +00:00
Owner

Closes #212

Closes #212
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!41
No description provided.