brent.edwards
04c8a886db
feat(cli): add session commands
2026-02-20 01:10:19 +00:00
khyari hamza
eeb0d49377
test(security): add coverage for audit CLI, logging, and redaction edge cases
...
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 29s
CI / security (pull_request) Successful in 38s
CI / integration_tests (pull_request) Successful in 2m22s
CI / unit_tests (pull_request) Successful in 4m0s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 10m6s
CI / coverage (pull_request) Successful in 11m21s
Add 22 new Behave scenarios covering:
- audit CLI commands (list, show, prune, count)
- audit service context manager and owned-session paths
- corrupt JSON details fallback in _row_to_entry
- configure_structlog dev/prod/invalid and get_logger
- redaction edge cases (empty key, empty URL, empty pattern,
show_secrets bypass, nested dict processor)
2026-02-19 20:10:56 +00:00
khyari hamza
201be39632
fix(security): address review findings for audit logging
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 19s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 22s
CI / security (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 2m19s
CI / unit_tests (pull_request) Successful in 6m55s
CI / docker (pull_request) Successful in 37s
CI / benchmark-regression (pull_request) Successful in 11m13s
CI / coverage (pull_request) Failing after 13m40s
2026-02-19 19:23:30 +00:00
khyari hamza
ae41167a1d
feat(security): add audit logging for apply
2026-02-19 19:23:30 +00:00
khyari hamza
cea3bad758
refactor(ops): address re-review findings for cleanup commands
...
- Use model_copy(update=...) in test helpers so Pydantic ge=
validators are enforced during tests, not just env vars (NEW-1)
- Promote _extract_plan_id_from_sandbox to public staticmethod
and reuse in CLI active-plan detection to eliminate duplicate
plan-ID parsing logic (NEW-2)
- Cache _get_sandbox_dirs result for service instance lifetime
and have CLI active-plan detection use the cached listing so
/tmp is iterated only once per invocation (NEW-3)
2026-02-19 14:20:16 +00:00
khyari hamza
bab4560dde
feat(ops): add cleanup commands
2026-02-19 13:46:48 +00:00
khyari hamza
d815339c52
feat(security): add secrets masking and validation (H-21/SEC5)
...
Implement centralized redaction utility that masks API keys, tokens,
and credentials across CLI output, structlog logs, and error messages.
- Add shared/redaction.py with pattern-based secret detection (sk-*,
sk-ant-*, tok_*, Bearer tokens), sensitive key name detection,
database URL masking, custom pattern registration, and thread-safe
global show_secrets flag
- Add config/logging.py with structlog configuration integrating the
secrets_masking_processor into the processor chain
- Add --show-secrets global CLI option to reveal secrets when needed
- Redact error details in main.py, project.py, and auto_debug.py
error handlers before printing
- Wrap format_output() in formatting.py with automatic dict redaction
- Add show_secrets field and safe __repr__ to Settings model
- Add 43-scenario Behave feature (features/security_secrets.feature)
- Add 10 Robot Framework smoke tests (robot/security_secrets.robot)
- Add ASV benchmarks (benchmarks/security_secrets_bench.py)
- Add reference docs (docs/reference/secrets_handling.md)
2026-02-19 11:15:18 +00:00
brent.edwards
9802424a41
Merge branch 'master' into develop-20260217
...
CI / lint (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 21s
CI / build (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 29s
CI / security (pull_request) Successful in 35s
CI / integration_tests (pull_request) Failing after 2m31s
CI / unit_tests (pull_request) Successful in 7m5s
CI / docker (pull_request) Successful in 1m1s
CI / coverage (pull_request) Successful in 10m41s
# Conflicts:
# robot/database_integration.robot
2026-02-19 00:57:48 +00:00
CoreRasurae
272f6fc255
test(unit): fix failing tests related to RichTerm usage
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 39s
CI / integration_tests (pull_request) Failing after 2m20s
CI / unit_tests (pull_request) Successful in 3m42s
CI / docker (pull_request) Successful in 50s
CI / coverage (pull_request) Successful in 11m8s
2026-02-18 23:55:05 +00:00
brent.edwards
2dfad7ec71
Merge branch 'master' into develop-20260217
...
CI / lint (pull_request) Successful in 13s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 17s
CI / security (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 26s
CI / integration_tests (pull_request) Successful in 2m17s
CI / unit_tests (pull_request) Successful in 6m10s
CI / docker (pull_request) Successful in 37s
CI / coverage (pull_request) Successful in 13m53s
# Conflicts:
# implementation_plan.md
2026-02-18 23:08:48 +00:00
brent.edwards
b50987731a
fix(test): resolve CI test failures from session isolation and subprocess timeouts
...
- Fix resource_repository Behave scenario 'Resolve by ULID returns the
resource' by propagating res_type_name through context instead of
relying on fragile list_types() across SQLAlchemy sessions
- Increase subprocess timeouts in Robot Framework integration tests to
prevent SIGTERM kills under parallel execution load (10s->30s, 20s->60s,
30s->60s across 7 robot files)
2026-02-18 22:59:09 +00:00
khyari hamza
02c75fb4bb
feat(cli): enhance version/info/diagnostics with --format and --check
...
Add structured data builders and Rich renderers for version, info, and
diagnostics commands. Support --format rich/plain/json/yaml output parity
and --check flag for diagnostics (exits non-zero on errors).
Includes Behave scenarios, Robot smoke tests, ASV benchmarks, and updates
existing tests to match the new Rich panel output format.
2026-02-18 12:18:03 +00:00
brent.edwards
52f74f3ddb
Merge master into develop-20260217
2026-02-18 05:52:05 +00:00
freemo
b2c3c08415
Tests: Fixed broken tests
CI / lint (push) Failing after 14s
CI / quality (push) Successful in 20s
CI / security (push) Successful in 40s
CI / typecheck (push) Successful in 44s
CI / coverage (push) Has been skipped
CI / build (push) Successful in 15s
CI / integration_tests (push) Successful in 4m6s
CI / unit_tests (push) Successful in 18m3s
CI / docker (push) Has been skipped
2026-02-17 22:59:16 -05:00
brent.edwards
24866b2244
Merge branch 'master' into develop-20260217
2026-02-18 03:27:00 +00:00
brent.edwards
629f286bd3
Merge branch 'feature/m3-skill-domain-robot' into develop-20260217
CI / lint (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 1m0s
CI / security (pull_request) Successful in 48s
CI / quality (pull_request) Successful in 31s
CI / integration_tests (pull_request) Successful in 5m49s
CI / build (pull_request) Successful in 16s
CI / coverage (pull_request) Failing after 14m54s
CI / unit_tests (pull_request) Successful in 30m45s
CI / docker (pull_request) Successful in 42s
2026-02-18 02:45:31 +00:00
brent.edwards
a2ec1ccc44
Merge branch 'feature/m3-tool-domain-robot' into develop-20260217
2026-02-18 02:45:27 +00:00
brent.edwards
0a7a8d15be
Merge branch 'feature/m1-resource-db-robot-tests' into develop-20260217
2026-02-18 02:45:22 +00:00
brent.edwards
4e3150bd50
Merge branch 'feature/m3-session-domain-robot' into develop-20260217
...
# Conflicts:
# implementation_plan.md
2026-02-18 02:45:08 +00:00
brent.edwards
a9ee5fbc0e
Merge branch 'feature/m3-session-persistence' into develop-20260217
2026-02-18 02:44:11 +00:00
brent.edwards
6f09f23d29
Merge branch 'feature/m1-persistence-tests' into develop-20260217
...
# Conflicts:
# docs/development/testing.md
2026-02-18 02:43:58 +00:00
brent.edwards
b6c1c72d43
Merge branch 'feature/m1-cli-tests' into develop-20260217
2026-02-18 02:43:05 +00:00
brent.edwards
d476e45fba
style(ruff-format): fix one unformatted file
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 28s
CI / security (pull_request) Successful in 25s
CI / quality (pull_request) Successful in 16s
CI / integration_tests (pull_request) Successful in 5m24s
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 15m45s
CI / coverage (pull_request) Successful in 9m11s
CI / docker (pull_request) Successful in 1m4s
2026-02-18 02:17:58 +00:00
freemo
77a0a95dc3
Tests: Added coverage to get us to 97%
CI / lint (pull_request) Successful in 26s
CI / security (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 1m2s
CI / quality (pull_request) Successful in 17s
CI / build (pull_request) Successful in 25s
CI / integration_tests (pull_request) Failing after 3m2s
CI / lint (push) Successful in 23s
CI / unit_tests (pull_request) Failing after 17m24s
CI / docker (pull_request) Has been skipped
CI / typecheck (push) Successful in 40s
CI / security (push) Successful in 37s
CI / quality (push) Successful in 25s
CI / build (push) Successful in 16s
CI / integration_tests (push) Failing after 7m16s
CI / unit_tests (push) Failing after 24m35s
CI / docker (push) Has been skipped
CI / coverage (pull_request) Failing after 37m0s
CI / coverage (push) Failing after 37m15s
2026-02-17 21:00:05 -05:00
freemo
79f91c51b1
Tests: ensuring tests have coverage and work.
2026-02-17 20:55:49 -05:00
freemo
a4db605e1c
feat(tool): add resource binding resolution
2026-02-17 20:55:46 -05:00
freemo
a8558f13ca
feat(cli): add project context commands
2026-02-17 20:55:43 -05:00
freemo
08639183e2
feat(resource): add DAG linking and discovery
2026-02-17 20:55:32 -05:00
freemo
3b005ddcd4
feat(service): resolve automation profiles with precedence
2026-02-17 20:18:18 -05:00
freemo
7e7d2e7727
feat(execute): add changeset model and change capture
2026-02-17 20:18:15 -05:00
freemo
5480cd36fd
feat(project): add context policy model
2026-02-17 20:07:38 -05:00
freemo
9464ec6285
feat(domain): add automation profile model and built-ins
2026-02-17 20:07:34 -05:00
freemo
093204a703
feat(resource): add fs-mount and fs-directory types
2026-02-17 20:07:31 -05:00
brent.edwards
3598924d6f
test(cov): add skill CLI and service coverage scenarios
...
CI / lint (pull_request) Waiting to run
CI / typecheck (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
Add 19 behave scenarios covering uncovered paths in skill_service.py
and cli/commands/skill.py to bring coverage above the 97% threshold:
- show with includes, MCP servers, agent_skills, inline tools, Referenced By
- tools with mixed MCP/inline sources
- list with non-local namespaces
- remove without --yes (abort path)
- update with dependent skills (Affected Actors panel)
- service edge cases: skill_count, empty names, source filtering, no config_path
- add with missing-description YAML (validation failure)
2026-02-18 01:03:11 +00:00
brent.edwards
686c834602
feat: merge branch 'master' into feature/m3-tool-domain-robot
CI / lint (pull_request) Failing after 24s
CI / typecheck (pull_request) Successful in 1m3s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 33s
CI / build (pull_request) Successful in 16s
CI / integration_tests (pull_request) Successful in 10m26s
CI / unit_tests (pull_request) Successful in 16m18s
CI / docker (pull_request) Has been skipped
2026-02-17 17:02:27 -08:00
brent.edwards
b528cde8e7
feat: merge branch 'master' into feature/m1-persistence-tests
CI / typecheck (pull_request) Waiting to run
CI / lint (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
2026-02-18 00:43:28 +00:00
brent.edwards
60d10cef7c
Merge branch 'master' into feature/m1-cli-tests
CI / lint (pull_request) Waiting to run
CI / typecheck (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
2026-02-18 00:42:19 +00:00
brent.edwards
c8fa6f716d
style(ruff-format): ruff format run
...
CI / lint (pull_request) Successful in 21s
CI / typecheck (pull_request) Has been cancelled
CI / security (pull_request) Has been cancelled
CI / quality (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
One file repaired.
2026-02-18 00:39:41 +00:00
brent.edwards
1fbc062b48
style(format): 1 file reformatted
CI / lint (pull_request) Waiting to run
CI / typecheck (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
2026-02-18 00:34:44 +00:00
brent.edwards
9e9f229b3a
fix(test): commit edge row so delete step sees it in its own session
...
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 28s
CI / security (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 17s
CI / integration_tests (pull_request) Successful in 9m58s
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 15m47s
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-18 00:28:29 +00:00
brent.edwards
b1c011702f
feat: merge branch 'master' into feature/m3-skill-domain-robot
2026-02-18 00:21:04 +00:00
CoreRasurae
47cad3c77b
feat(session): add session persistence and repositories
CI / lint (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 29s
CI / security (pull_request) Has been cancelled
CI / quality (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
2026-02-18 00:10:15 +00:00
brent.edwards
ea7fcc0ba0
fix(test): resolve AmbiguousStep collision, invalid ULIDs, and edge commit
...
CI / lint (pull_request) Waiting to run
CI / typecheck (pull_request) Waiting to run
CI / security (pull_request) Waiting to run
CI / quality (pull_request) Waiting to run
CI / unit_tests (pull_request) Waiting to run
CI / integration_tests (pull_request) Waiting to run
CI / coverage (pull_request) Blocked by required conditions
CI / build (pull_request) Waiting to run
CI / docker (pull_request) Blocked by required conditions
Three issues prevented the behave suite from running:
1. plan_persistence_steps.py and plan_repository_steps.py both defined
@then('the retrieved plan description should be "..."'), causing an
AmbiguousStep error that broke all ~50 feature files. Renamed the
persistence step to "the persisted plan description should be".
2. The three-level hierarchy scenario used plan IDs containing O, I,
and L which are excluded from the ULID charset. Replaced with valid
characters (O->0, I->0, L->K).
3. resource_repository_steps.py flushed but never committed the edge
row, so the delete method's separate session could not see it.
2026-02-18 00:09:56 +00:00
brent.edwards
bd647d58cf
fix(resource_repository_steps.py): add missing commit() statement
CI / lint (pull_request) Failing after 23s
CI / typecheck (pull_request) Successful in 59s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 46s
CI / quality (pull_request) Successful in 17s
CI / build (pull_request) Successful in 25s
CI / integration_tests (pull_request) Successful in 4m59s
CI / unit_tests (pull_request) Successful in 25m30s
CI / docker (pull_request) Has been skipped
2026-02-18 00:04:09 +00:00
brent.edwards
d950d48aa9
fix(resource_repository_steps.py): add missing commit() statement
CI / lint (pull_request) Failing after 15s
CI / typecheck (pull_request) Successful in 29s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 17s
CI / build (pull_request) Successful in 26s
CI / integration_tests (pull_request) Successful in 5m14s
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2026-02-18 00:00:22 +00:00
brent.edwards
2840514729
feat: Merge branch 'master' into feature/m1-resource-db-robot-tests
2026-02-17 15:59:22 -08:00
brent.edwards
d24079f129
fix(resource_repository_steps.py): add missing commit() statement
CI / lint (pull_request) Failing after 21s
CI / typecheck (pull_request) Successful in 44s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Successful in 36s
CI / quality (pull_request) Successful in 21s
CI / build (pull_request) Successful in 16s
CI / integration_tests (pull_request) Successful in 10m2s
CI / unit_tests (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2026-02-17 23:58:10 +00:00
brent.edwards
6c7bcab01e
feat: merge branch 'master' into feature/m3-session-domain-robot
2026-02-17 15:56:13 -08:00
brent.edwards
9db88a9541
fix(test): commit edge row so delete step sees it in its own session
...
CI / lint (pull_request) Successful in 19s
CI / typecheck (pull_request) Successful in 30s
CI / coverage (pull_request) Waiting to run
CI / quality (pull_request) Successful in 16s
CI / security (pull_request) Successful in 39s
CI / build (pull_request) Successful in 21s
CI / integration_tests (pull_request) Successful in 7m32s
CI / unit_tests (pull_request) Successful in 15m52s
CI / docker (pull_request) Waiting to run
The "Deleting a resource with edges is rejected" scenario was failing
because the ResourceEdgeModel row was flushed but never committed.
Since ResourceRepository.delete() obtains its own session from the
factory, the uncommitted edge was invisible and ResourceHasEdgesError
was never raised.
2026-02-17 23:38:45 +00:00
brent.edwards
cdbd0bdd23
feat: merge branch 'master' into feature/m3-skill-cli
CI / lint (pull_request) Successful in 24s
CI / typecheck (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 17s
CI / security (pull_request) Successful in 50s
CI / build (pull_request) Successful in 25s
CI / integration_tests (pull_request) Successful in 5m30s
CI / unit_tests (pull_request) Successful in 16m39s
CI / coverage (pull_request) Failing after 9m0s
CI / docker (pull_request) Successful in 55s
2026-02-17 22:45:44 +00:00