2dd76dfd7f4c1903d2ace450de7f0bd23ddf3f59
1987 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
2dd76dfd7f |
docs(contributors): restore missing CONTRIBUTORS.md entries lost in merge
CI / security (pull_request) Failing after 0s
CI / build (pull_request) Failing after 0s
CI / push-validation (pull_request) Successful in 31s
CI / helm (pull_request) Successful in 39s
CI / lint (pull_request) Successful in 1m1s
CI / quality (pull_request) Successful in 1m6s
CI / typecheck (pull_request) Successful in 1m31s
CI / coverage (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 4m45s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 5m14s
CI / integration_tests (pull_request) Successful in 5m53s
CI / status-check (pull_request) Failing after 0s
Restores five HAL 9000 contribution entries that were accidentally
removed during the merge of master into the PR branch (commit
|
||
|
|
b34b140edc |
Merge remote-tracking branch 'origin/master' into fix/issue-6329-resource-remove-edge-table
CI / quality (pull_request) Successful in 33s
CI / lint (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 1m4s
CI / security (pull_request) Successful in 1m31s
CI / build (pull_request) Successful in 40s
CI / helm (pull_request) Successful in 30s
CI / push-validation (pull_request) Successful in 25s
CI / e2e_tests (pull_request) Failing after 3m31s
CI / integration_tests (pull_request) Successful in 6m24s
CI / unit_tests (pull_request) Successful in 7m13s
CI / docker (pull_request) Successful in 1m19s
CI / coverage (pull_request) Successful in 8m52s
CI / status-check (pull_request) Failing after 1s
# Conflicts: # CHANGELOG.md # CONTRIBUTORS.md |
||
|
|
0257841825
|
Revert "refactor(agents): migrate all agent definitions to use skills for universal rules"
CI / build (push) Successful in 18s
CI / helm (push) Successful in 30s
CI / typecheck (push) Successful in 50s
CI / push-validation (push) Successful in 21s
CI / lint (push) Successful in 3m19s
CI / e2e_tests (push) Failing after 3m21s
CI / quality (push) Successful in 3m50s
CI / security (push) Successful in 4m13s
CI / integration_tests (push) Successful in 9m9s
CI / unit_tests (push) Successful in 9m9s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 8m26s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h14m43s
CI / benchmark-regression (push) Has been skipped
This reverts commit
|
||
|
|
bb97f1450e
|
refactor(agents): migrate all agent definitions to use skills for universal rules
CI / push-validation (push) Successful in 16s
CI / lint (push) Successful in 18s
CI / typecheck (push) Successful in 31s
CI / helm (push) Successful in 31s
CI / build (push) Successful in 32s
CI / e2e_tests (push) Successful in 3m27s
CI / quality (push) Successful in 3m43s
CI / integration_tests (push) Successful in 4m0s
CI / security (push) Successful in 4m11s
CI / unit_tests (push) Successful in 8m38s
CI / coverage (push) Successful in 5m38s
CI / docker (push) Successful in 1m30s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m4s
CI / benchmark-regression (push) Has been skipped
Replace ~600 chars of verbatim per-agent boilerplate with skill references. All 91 agents now load cleveragents-agent-rules for exhaustive pagination, label management, bot signatures, and credential flow rules. Adds explicit skill: "*": deny + targeted allows to every agent permission block, matching the existing bash: and task: deny-first convention. Tier selectors carry no skill permissions since they are pure pass-through with no skill references in their bodies. forgejo-label-manager also grants forgejo-api for its curl pattern reference. |
||
|
|
dceb0e91d3
|
docs(skill): add cleveragents-agent-rules universal agent rules skill
Introduces a new skill containing the complete specification for the five universal operational rules every agent must follow: exhaustive pagination protocol, label management via forgejo-label-manager, bot signature format, credential flow hierarchy, and localhost:4096 restriction. |
||
|
|
93c349d531 |
Build: Stopped using codex for most of our agents
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 34s
CI / lint (push) Successful in 3m22s
CI / build (push) Successful in 3m48s
CI / integration_tests (push) Successful in 3m57s
CI / quality (push) Successful in 4m13s
CI / typecheck (push) Successful in 4m30s
CI / security (push) Successful in 4m50s
CI / e2e_tests (push) Successful in 6m28s
CI / unit_tests (push) Successful in 9m8s
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
|
||
|
|
d167155e90 |
Build: Removed gemini as a model option
CI / lint (push) Successful in 19s
CI / quality (push) Successful in 19s
CI / typecheck (push) Successful in 44s
CI / security (push) Successful in 44s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 29s
CI / push-validation (push) Successful in 21s
CI / unit_tests (push) Successful in 7m32s
CI / integration_tests (push) Successful in 7m29s
CI / docker (push) Successful in 1m0s
CI / coverage (push) Successful in 9m26s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / e2e_tests (push) Successful in 6m11s
CI / status-check (push) Successful in 1s
|
||
|
|
c9dc70004c |
docs(skill): add full redundancy and self-healing documentation to cleveragents-system skill
CI / push-validation (push) Successful in 22s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 33s
CI / typecheck (push) Successful in 48s
CI / quality (push) Successful in 53s
CI / security (push) Successful in 1m9s
CI / integration_tests (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 6m43s
CI / unit_tests (push) Successful in 7m1s
CI / coverage (push) Successful in 6m59s
CI / docker (push) Successful in 1m33s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h13m54s
CI / benchmark-regression (push) Has been skipped
Add new references/redundancy/README.md (280 lines) covering: - Three-layer redundancy architecture overview (product-builder / watchdog / supervisors) with the key insight that each layer uses a different observation mechanism to prevent blind spots between layers - Layer 1 (product-builder): fast cycle (60s liveness), deep inspection (5-min message reading with anti-pattern catalogue: error loops, circular patterns, policy violations, context exhaustion), worker health check (pool count vs expected), hourly verification - Layer 2 (system-watchdog): independent 5-min audit using Forgejo tracking issue STALENESS rather than OpenCode session status — catches frozen-but-alive sessions that appear healthy to product-builder; session introspection for anti-pattern detection; clear role separation (watchdog detects, product-builder restarts) - Layer 3 (supervisor self-monitoring): per-cycle worker health checks, stuck detection (15-min threshold), completed vs crashed distinction, pool filling - State persistence as the foundation of self-healing: everything externalized to Forgejo (tracking issues, attempt comments, claim protocol, announcements) - Supervisor crash-recovery pattern: session crash → product-builder detects ≤60s → relaunch → READ_TRACKING_STATE first → light/moderate/full recovery based on offline duration → resume from recovered state - Worker crash-recovery pattern: crash → supervisor detects in next cycle → Forgejo evidence check → re-dispatch at same or escalated tier - Two independent health signals table: OpenCode (session presence/status, latency 60s) vs Forgejo (tracking staleness, latency 2×interval) — what each catches - Complete failure mode catalogue (13 failure types with: who detects it, how, recovery action, and whether recovery is automatic or requires human) - async-agent-monitor health classifications: healthy/stuck/idle/finished/errored with threshold and configurable idle_threshold_minutes parameter - Redundancy gaps and limitations: product-builder has no watcher; watchdog detects but cannot restart; worker downtime latency varies by supervisor sleep Expand SKILL.md (539 → 775 lines, 10 → 13 decision trees): - Significantly expand 'Is something wrong?' tree: now lists every failure type with which layer detects it, how detection works, and recovery action (supervisor missing, frozen, error loop, waiting for input, worker crashed, worker frozen, supervisor stopped dispatching, orphaned claim, CI violations, multiple supervisors down, product-builder crash) - Add new 'How does the system self-heal?' tree: full three-layer redundancy decision tree with per-layer mechanics (fast/deep/hourly cadences), the Forgejo persistence foundation, complete supervisor crash-recovery pattern, complete worker crash-recovery pattern, and the single-point-of-failure note - Update Key Numbers table: add worker health check and hourly cycle entries; clarify session health threshold is configurable; add watchdog staleness threshold (2×interval); add supervisor max downtime (≤60s); add worker re-dispatch latency (varies by sleep interval) - Update frontmatter description to cover self-healing and redundancy - Update reference index to describe the new redundancy reference file ISSUES CLOSED: #0 |
||
|
|
e1e65c85ae |
docs(skill): final cleanup pass — remove remaining duplicated project knowledge, cross-reference other skills
agent-registry/README.md:
- Remove typecheck-fixer 'Never uses type: ignore' rule (contributing rule,
lives in cleveragents-contributing not the system registry)
- Remove coverage-improver '>=97%' threshold (project-specific threshold,
lives in cleveragents-contributing)
- Change new-issue-creator description from 'following CONTRIBUTING.md format'
to 'following the project issue format' with cross-reference pointer
- Remove subtask-loop trivial description; expand to show the full
implement → test → quality gates → review loop it manages
- Remove duplicate forgejo-label-manager entry ('See above.') — was listed
twice in the utility subagents table
- Add cross-reference note at top of Utility Subagents section: descriptions
focus on system role; project-specific rules (testing philosophy, quality
gates, commit standards, issue format) are in cleveragents-contributing
- AUTO-IMP-SUP dispatch ordering: add inline cross-reference note pointing
to cleveragents-contributing and cleverthis-guidelines for label definitions
- AUTO-OWNR description: replace specific label names ('MoSCoW labels',
'Wont Do') with generic role description + cross-reference note
SKILL.md:
- Reference Index: fix tracking-system entry description — remove 'label rules'
(those were removed from tracking-system last pass); replace with accurate
description of what the file now covers (Automation Tracking and needs
feedback labels as system-specific labels)
No system-specific content was removed: all agent prefixes, the full
announcement relevancy matrix, worker tag patterns, sleep intervals, worker
count formulas, tier system mechanics, tracking system operations, credential
propagation hierarchy, and claim/heartbeat/release protocol are fully preserved.
ISSUES CLOSED: #0
|
||
|
|
e816e1af9e |
docs(skill): final pass — expand relevancy matrix, remove duplicated knowledge, cross-reference other skills
SKILL.md: - Expand 'Which announcements should I consume?' from a partial example (only showed IMP-SUP and said 'use agent-prefix-info for the rest') to the FULL canonical cross-agent attention table: all 17 supervisors plus product-builder, every source prefix with its minimum priority threshold and rationale, universal baseline rule, and rule-of-thumb note - 'How do I apply a label?' tree: replace detailed label scope breakdown (State/, Priority/, MoSCoW/, Type/) and detailed forgejo-label-manager internals with cross-references to cleveragents-contributing and cleverthis-guidelines; keep only system-critical labels (Automation Tracking, needs feedback, Blocked) and the forbidden operations list (which is an agent permission concern unique to this system) - 'How does a supervisor launch a worker?' Step 5: replace 'CONTRIBUTING.md rules (commit standards, testing, PR requirements)' with reference to the cleveragents-contributing skill, noting that product-builder pre-loads these via ref-reader and passes them in briefings - Quick Reference: add explicit pointers to cleveragents-contributing and forgejo-api skills for the label-related lines - Frontmatter description: rewrite Covers section to remove duplicated label scope and forgejo-api curl content; add explicit note that label rules and scopes live in cleveragents-contributing and cleverthis-guidelines, and that curl patterns are in the forgejo-api skill tracking-system/README.md: - Remove entire 'Label Rules (CRITICAL)' section (Never Create Labels, Only Org-Level Labels, Always Use forgejo-label-manager, scope conflict rules) — this is fully covered in cleveragents-contributing - Remove entire 'The forgejo-api Skill and Label Operations' section (paginated org label fetch loop, PUT replace-all curl, DELETE single label curl) — this belongs in the forgejo-api skill which forgejo-label-manager loads automatically - Replace both removed sections with a focused 'System-Specific Labels' section covering only what is unique to the system: Automation Tracking as the universal discovery mechanism and needs feedback as the human escalation signal that stops worker dispatch - Priority labels table: change from defining what each priority level IS (duplicates cleverthis-guidelines) to showing when to use each for autonomous system announcements specifically; add cross-reference note coordination/README.md: - Remove duplicated 'Announcement Relevancy Matrix Quick Reference' table (9 rows covering only some supervisors) — the full authoritative table is now in SKILL.md; replace with a two-sentence pointer to SKILL.md and agent-prefix-info for programmatic lookup ISSUES CLOSED: #0 |
||
|
|
2dbcdc80ae |
docs(skill): add cleveragents-system self-reflection skill
New skill covering the complete operational architecture of the CleverAgents autonomous development system — how it runs, not what it builds. SKILL.md (539 lines) with 9 decision trees: - 'What does this agent do?' — prefix-to-agent mapping for all 17+1 supervisors - 'Which supervisor owns this worker?' — reverse lookup from worker tags - 'How many workers can this supervisor run?' — N_FULL/N_HALF/N_QUARTER formula with concrete examples at N=4, N=8, N=16 - 'How does a supervisor launch a worker?' — full dispatch flow including tier selector indirection, model inheritance, and credential inclusion - 'Do I need to launch something asynchronously?' — when/why to use prompt_async vs synchronous calls; why only async-agent-manager calls localhost:4096 - 'How do I apply a label to an issue or PR?' — forbidden operations list; forgejo-label-manager delegation; org-level vs repo-level; never create - 'How do I create a tracking issue or announcement?' — CREATE_TRACKING_ISSUE invariants; READ-then-CREATE startup order; announcement lifecycle - 'Which announcements should I consume?' — full relevancy matrix per agent type - 'How does state recovery work on startup?' — mandatory READ-then-CREATE protocol with urgency tiers based on offline duration - 'Which model tier should I use?' — escalation decision logic with comment parsing - 'How do credentials get to workers?' — env var hierarchy; why workers never read env vars; two bot accounts (primary + reviewer) - 'Is something wrong with the system?' — diagnostic patterns Complete supervisor registry table (17 supervisors + product-builder) with prefixes, agent definitions, worker counts, sleep intervals, and tracking prefixes. Key Numbers table (25 entries covering all timeouts, thresholds, and intervals). Reference files (1,292 lines across 6 files): agent-registry/README.md — full agent hierarchy diagram, all 17 pool supervisor detailed entries (purpose, worker count, sleep, worker tag pattern, special notes), worker-to-supervisor mapping table, utility subagent catalog (35+ entries), shared prompt fragment catalog. async-operations/README.md — why prompt_async exists (fire-and-forget vs blocking); complete OpenCode Server API reference (list sessions, create session, prompt_async, get status, get messages, get specific session, delete session) with curl examples and response shapes; full session naming convention with all supervisor and worker tag patterns in a table; common operations (starting supervisors/workers, checking status, detecting stuck sessions, cleanup); error handling policy (retry 3×). tracking-system/README.md — status vs announcement issue distinction; the one-at-a-time invariant; cycle number uniqueness; rolling average interval formula (0.90×old + 0.10×actual); CREATE_TRACKING_ISSUE step-by-step process; mandatory startup recovery protocol (READ then CREATE, with wrong-order warning); discovery patterns; announcement lifecycle; priority labels for announcements and when to use each; label rules (NEVER create; org-level only; always use forgejo-label-manager; forbidden Forgejo MCP tools list); forgejo-api skill curl patterns for label operations; complete automation-tracking-manager operations table. tier-system/README.md — four model tiers (haiku/codex/sonnet/opus) with model IDs, cost ranks, and use cases; how tier selectors work (pass-through inheritance mechanism, full call chain diagram); progressive escalation decision table; reading escalation history from attempt comments; human escalation trigger (Opus×3 same-problem) and steps; default model assignments for all agents grouped by model; runtime Gemini 2.5 Pro overrides. credential-flow/README.md — all environment variables with required/optional/ default columns; auto-detection of FORGEJO_URL/OWNER/REPO from git remote; credential hierarchy diagram; two bot accounts (primary vs reviewer) and why; worker credential rules (NEVER read env vars; everything from prompt); what a supervisor must include in every worker prompt; CA_MAX_PARALLEL_WORKERS formula with examples at N=1/4/8/16; security notes. coordination/README.md — claim protocol (CLAIM/HEARTBEAT/RELEASE comment prefixes); claim lifecycle; expiry (2 hours without heartbeat); availability check algorithm; exact comment formats for all three types; PR work conflict matrix (code-change vs merge-attempt vs review); session-level deduplication via tag search (primary mechanism); system-watchdog monitoring of violations; startup deduplication by product-builder; bot signature formats; announcement relevancy matrix quick reference table. ISSUES CLOSED: #0 |
||
|
|
47b4c5fbfb |
docs(skill): final pass — 2 new trees, expanded trees, reference file completions
CI / push-validation (push) Successful in 10s
CI / helm (push) Successful in 28s
CI / build (push) Successful in 29s
CI / typecheck (push) Successful in 53s
CI / lint (push) Successful in 3m44s
CI / quality (push) Successful in 3m58s
CI / security (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 4m49s
CI / integration_tests (push) Successful in 6m47s
CI / unit_tests (push) Successful in 8m3s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
SKILL.md (1,878 → 2,099 lines, 23 → 25 decision trees): New 'Is my work done?' tree — comprehensive Definition of Done checklist synthesising all requirements across implementation, three-level testing (unit/integration/benchmarks), coverage ≥ 97%, five CI quality checks, commit anatomy (atomic, body, footer), documentation (changelog, docstrings, CONTRIBUTORS.md), PR fields (description, dep direction, Epic scope, milestone, Type label), CI checks, and issue state transitions. New 'What design pattern should I use?' tree — all 24 patterns from CONTRIBUTING.md categorised across Creational (Factory, Abstract Factory, Builder, Prototype, Singleton, Object Pool, DI), Structural (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Module), Behavioral (Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor, Null Object), and Architectural (Repository, Unit of Work, Service Layer, MVC, CQRS, Event Sourcing, Specification). Every pattern includes a when-to-use description and a CleverAgents-specific example. Expand 'Am I about to write code?' — link to new patterns tree. Expand 'Am I writing tests?' — add And/But/Outline Gherkin keywords with examples, add Scenario Outline explanation, add naming good/bad examples with anti-pattern list, expand integration test guidance with what good integration tests exercise (CLI, DB, filesystem, service layer), expand Hypothesis section with 6 specific use cases and recommended strategies to build. Expand 'Am I about to commit?' — improve commit body guidance with a worked example showing what to write (context, why this approach, risks, caveats). Expand 'Am I triaging?' — add Epic/Legendary triage rules (no point estimates, no milestone assignment, sign-off labels required for closure). Add two branches to master decision tree for new trees. Reference files: references/testing/README.md (187 → 296 lines): - Add Gherkin Quality Guidelines section: Given/When/Then semantics table, Scenario Outline explanation with example, naming rules with good/bad table, common anti-patterns (implementation details, multiple behaviors, missing Then) - Add Property-Based Testing (Hypothesis) section: when-to-use table with 6 specific CleverAgents use cases, recommended strategies to build, integration with Behave step definitions with worked example references/langchain-langgraph/README.md (307 → 375 lines): - Add RxPY Reactive Streams section: Subject vs BehaviorSubject vs ReplaySubject decision table with when-to-use and code examples, key operators table with use cases and code examples, backpressure management patterns (debounce vs throttle_first with examples), and clear list of what RxPY is NOT for references/toolchain/README.md (271 → 272 lines): - Add Hypothesis to tool table (property-based testing, nox -s unit_tests) references/ci-cd/README.md (124 → 131 lines): - Fix project-specific version number in release example (v3.6.0 → generic v<MAJOR>.<MINOR>.<PATCH>) - Add release failure recovery procedure (verify secrets → build locally → delete tag → fix → re-tag) ISSUES CLOSED: #0 |
||
|
|
05e4f7446c |
docs(skill): expand cleveragents-contributing SKILL.md — 5 new trees, all trees deepened
Add 5 new decision trees: 'Should this be an Issue, Epic, or Legendary?' — hierarchy decision with one-commit test, demonstrable-capability test, strategic-pillar test, promotion/demotion rules, and quick self-test questions. 'Is this ticket well-scoped?' — all 11 quality criteria from CONTRIBUTING.md (Atomicity, Single Commit, Single Responsibility, Assignability, Verifiability, Self-Containment, Implementation Independence, Subtask Decomposition, Leaf Node, Mandatory Parent, Finite Completion) each with pass/fail test. 'What ticket state should this be in?' — full lifecycle state machine (Unverified → Verified → In progress → Paused → In review → Completed → Wont Do) with who can perform each transition and what labels are required. 'Am I triaging a ticket?' — maintainer triage 7-step process (duplicate check, validity assessment, completeness check, label assignment, milestone assignment, parent linking, bug companion TDD issue check). 'What branch name should I use?' — branch naming rules with all prefixes (feature/mN-, bugfix/mN-, tdd/mN-), source of milestone number N, kebab- case rules, traceability requirement (shared suffix between tdd/ and bugfix/ branches), and examples. Expand existing trees: 'Am I creating an issue?' — add 11 quality criteria summary, better acceptance criteria examples (good vs bad), note on Metadata section verbatim requirements. 'Am I about to write code?' — add SOLID principle explanations per letter, add WIP management section (git stash vs draft commits), add ADR step detail. 'Am I about to commit?' — add cosmetic-first-then-functional guidance, expand commit hygiene section with interactive rebase detail and goal of clean history (no wip commits). 'Am I submitting a PR?' — add post-submission CI failure handling (new commit not force-push), add major-change review handling (address every comment). 'Am I reviewing a PR?' — add blocking vs suggestion vs question comment distinction with examples, add approve-with-suggestions pattern, add no-wip- commits check in commit quality section. 'Am I writing tests?' — add integration vs e2e distinction (integration = real services; e2e = real LLM API keys), add Gherkin quality guidelines (Given/When/Then semantics, scenario naming, one behavior per scenario), add Hypothesis property-based testing section, expand test failure remediation to include real-bug-triggers-TDD-workflow path. 'Am I looking at a CI failure?' — add integration_tests failure diagnosis, add guidance for when unit test failure reveals a real bug (triggers full TDD workflow), expand benchmark-regression failure guidance. 'Am I documenting something?' — add CHANGELOG entry format (good vs bad examples), add ADR document structure (Title/Status/Context/Decision/ Consequences/Alternatives). 'Am I writing LangChain/LangGraph code?' — add RxPY reactive streams section (Subject, BehaviorSubject, ReplaySubject, operators, backpressure). 'Am I releasing a new version?' — add 'when to bump' section noting most PRs don't need bumps, add release failure recovery procedure (delete tag, fix, re-tag). Update master decision tree to add 5 new branches. Update Key Numbers table: add benchmark regression threshold (10%), cyclomatic complexity limit (>10), Hypothesis entry, benchmark regression threshold, issue quality criteria count, bug priority rule, TDD assignee preference. Update frontmatter to document new coverage. ISSUES CLOSED: #0 |
||
|
|
5a24b5bdf2 |
docs(skill): add cleveragents-spec skill from docs/specification.md
New skill covering every architectural concept, entity, workflow, CLI command, and design decision from docs/specification.md (47,181 lines read in full). Explains WHAT the system is intended to build. SKILL.md (1,282 lines) — 18 decision trees: - 'What am I working on?' master routing tree - 'What is a Plan?' — 4 phases, reversion rules, hierarchy, decision tree - 'How does a plan run?' — step-by-step Action→Strategize→Execute→Apply - 'What is a Decision?' — 10 types, data model, dual tree+DAG structure, timing by phase, decision recording protocol - 'How do I correct a plan?' — revert vs append modes, Strategize vs Execute correction mechanics, affected subtree computation - 'What is an Invariant?' — 4 scopes, precedence chain (plan>action> project>global), non-overridable globals, Invariant Reconciliation Actor - 'What is an Actor?' — LLM vs graph types, Jinja2+env-var preprocessing, specialized roles (strategy/execution/estimation/invariant) - 'What is a Tool?' — 4 sources, capability metadata, 4-stage lifecycle, resource bindings and slots, anonymous tools, metadata overrides - 'What is a Validation?' — Tool subtype, always read-only, required vs informational modes, 3 attachment scopes, wrapping existing tools - 'What is a Skill?' — composition patterns, includes, tool overrides - 'What is a Resource?' — physical vs virtual, 34+ built-in types, DAG, type inheritance, 5-sandbox strategies, 6-level execution env routing, devcontainer auto-discovery and lazy activation - 'What is a Project?' — resource linking, multi-project plans, context config, execution environment - 'Which automation profile applies?' — 8 built-in profiles, 11 flags, Safety Profile, Automation Guard, Semantic Escalation, progressive trust - 'How does naming work?' — namespace format, types, ULID vs name identity - 'Which CLI command do I use?' — every command group with key flags - 'What is the architecture?' — 4 layers, 2 deployment modes, A2A protocol (full method routing, error codes, streaming), DI container - 'What is the ACMS?' — UKO, CRP, 10-slot pipeline, hot/warm/cold tiers - 'Which milestone am I in?' — v3.2.0–v3.8.0 status + cross-milestone invariants - Key Numbers table (35 entries) Reference files (1,974 lines across 9 files): - plan-lifecycle: phase mechanics, decision tree schema, checkpoint triggers, child plan execution modes, merge strategies, plan identity fields - entities: data models for Plan, Decision, Action, Session, Invariant, AutomationProfile, SafetyProfile, AutomationGuard, Namespace - architecture: 4-layer diagram, deployment modes, complete A2A method routing tables (standard + plan + registry + context + sync + health), streaming events, authentication, error taxonomy, full tech stack - automation-profiles: threshold table for all 8 built-in profiles, use cases, Semantic Escalation algorithm, custom profile YAML - actors-tools-skills: Actor/Tool/Validation/Skill YAML schemas with complete annotated examples, Jinja2 filter reference, LSP integration detail, LSPToolAdapter, actor context precedence - resources: complete resource type hierarchy (all 34+ types), sandbox strategies, type inheritance rules, execution environment routing, devcontainer integration, CLI usage - acms: UKO 4-layer ontology, CRP, 10-slot Context Assembly Pipeline with per-slot component names, hot/warm/cold eviction rules, skeleton compression, context view configuration - milestones: v3.2.0–v3.8.0 deliverables, architectural constraints, and definitions of done; cross-milestone quality gates and invariants - cli-commands: complete CLI reference for all command groups with all flags: plan, action, session, project, actor, skill, tool, validation, resource, invariant, automation-profile, lsp, config, utility ISSUES CLOSED: #0 |
||
|
|
38a2773261 |
docs(skill): expand cleveragents-contributing SKILL.md with 7 new trees and deep expansions
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 34s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 52s
CI / build (push) Successful in 3m20s
CI / quality (push) Successful in 3m39s
CI / integration_tests (push) Successful in 4m10s
CI / e2e_tests (push) Successful in 4m31s
CI / unit_tests (push) Successful in 5m3s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
Add 7 new decision trees covering gaps found in CONTRIBUTING.md audit: 'Am I creating an issue?' — full issue anatomy: mandatory Metadata section (exact commit message first line + branch name), Subtasks checkbox format with example, Definition of Done section, label rules (State/Unverified +Type+Priority; MoSCoW by owner only), Ref field rules, parent and blocking link mechanics via Forgejo dependencies, bug issues companion TDD issue rule. 'Am I about to write code?' — spec-first mandate (read docs/specification.md before any code), ADR process for architectural changes, branch must match issue Metadata, test-first requirement, SOLID + arg validation + type annotations requirements, prohibited list (# type: ignore, half-done work, mocks in src/, if-testing guards). 'Am I about to commit?' — self-review diff (git add -p), atomicity rules (one logical change, no cosmetic+functional mixing, code-move then modify), completeness rules (tests + docs + changelog + ancillary files in same commit), bisect-friendly / revertibility requirements, prescribed commit first line verbatim from issue Metadata, Commitizen usage, pre-commit hook rules, commit hygiene (topic branches, interactive rebase before merging). 'Am I submitting a PR?' — all 12 PR requirements numbered, with critical dependency direction rule (PR→blocks→issue; reversed = deadlock with full explanation), closing keywords, one Epic per PR, milestone + Type/ label, after-submission state transitions, complete merge checklist. 'Am I reviewing a PR?' — eligibility and approval rules, CI gate check, all 6 reviewer criteria (correctness, spec alignment, test quality, type safety, readability, performance, security, style, documentation, commit quality), requesting changes protocol, maintainer override rule. 'Am I documenting something?' — single canonical surface rule, traceability (module.class.method + commit hash; never file:linenum), same-commit rule, code-level docstring requirements, spec.md authority. 'Am I writing error handling?' — mandatory argument validation pattern (before ANY other logic) with Python code example, exception propagation rules (never suppress, never bare except, never return None on error), fail-fast principles, AssertionError for TDD expected-fail steps. Expand existing trees: - 'Am I writing tests?': add multi-level testing mandate (unit + integration + benchmarks required for every task), what tests must cover (error paths, edge cases, failure modes), test failure remediation rules - 'Which nox session?': clarify format vs format --check difference - 'Am I looking at a CI failure?': add quality/complexity failure diagnosis, common causes per job type, more detail on coverage and unit_tests failures - 'Am I writing LangChain/LangGraph code?': clarify MemorySaver requirement, memory class selection (Buffer vs Entity), format prohibition reasoning - 'Which directory?': add /benchmarks/ to directory tree Update master decision tree with 6 new branches for new trees. Update Key Numbers table with 4 new rows. Update frontmatter description to cover all new topics. Override highlights table: add commit first line and PR dep direction rows. ISSUES CLOSED: #0 |
||
|
|
82471f87f0 |
docs(skill): add cleveragents-contributing project-specific skill
New skill covering all CONTRIBUTING.md project-specific rules that supplement or override the generic cleverthis-guidelines skill. Prominently declares override precedence at the top of SKILL.md and in every reference file — this skill's rules apply unconditionally when they conflict with the general skill. SKILL.md (839 lines) contains: - Override notice table comparing cleverthis-guidelines vs this project for 18 specific topics (framework, directories, tool names, etc.) - Master decision tree routing all project-specific situations - 9 detailed decision trees: file placement (exact directories), tests (Behave/Robot Framework rules), TDD bug fix workflow (full 6-step with branch naming), TDD issue-capture test (exact three-tag system with AssertionError enforcement), nox session reference (all sessions + CI job mappings + required-for-merge), CI failure diagnosis (per-job remediation), plan CLI (v3 vs legacy, ULID, storage backends), LangChain/LangGraph code (TypedDict, MemorySaver, BaseLanguageModel, FakeListLLM, canonical node pattern), Python imports (top-of-file, TYPE_CHECKING exception), dev env setup (complete tool inventory), and release process (backwards compat policy, Docker, secrets) - Key Numbers table with 33 project-specific values Reference files (1254 lines total): - testing/README.md: Behave rules, Robot Framework, TDD tag system with full examples and validation rules, AssertionError requirement, coverage threshold, mock placement, LangGraph testing, ASV benchmarks - ci-cd/README.md: all 13 CI jobs with nox session mappings, 3 workflow triggers, 5 required-for-merge checks, secrets table, caching policy, nightly quality sweep, branch protection - toolchain/README.md: complete nox session catalogue, Pyright prohibition on # type: ignore, ruff config, Hatch, pyproject.toml as single source, pre-commit setup, Commitizen, Python import rules with examples, error handling patterns with Python code - langchain-langgraph/README.md: TypedDict state, verb-based node naming, MemorySaver, conditional edges, BaseLanguageModel abstraction, prompt templates, sync+async requirement, output parsing, env var configuration, LangSmith disabled by default, retry decorators, canonical node template, FakeListLLM testing, state/workflow/streaming/memory test patterns - file-organization/README.md: exact directory map, per-directory rules and prohibitions, docs/specification.md authority, BDD step-file naming rules - cli-workflow/README.md: v3 vs legacy comparison table, ULID format, why mixing is impossible (separate storage backends), error diagnosis for common failure modes, manual migration steps, backwards compat policy ISSUES CLOSED: #0 |
||
|
|
caaafacf45 |
docs(skill): final pass — remove remaining project-specific language, add multi-language examples
CI / push-validation (push) Successful in 18s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 32s
CI / quality (push) Successful in 32s
CI / typecheck (push) Successful in 1m2s
CI / security (push) Successful in 1m3s
CI / integration_tests (push) Successful in 4m3s
CI / unit_tests (push) Successful in 5m37s
CI / docker (push) Successful in 8s
CI / e2e_tests (push) Successful in 7m25s
CI / coverage (push) Successful in 10m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
SKILL.md: - Remove stale 'v3 vs legacy plan workflow' reference from frontmatter description - Change all git tag version examples from project-specific v3.6.0 to generic v1.2.3 - Branch name example: upgrade-langchain -> upgrade-dependencies - Documentation traceability module path: was Python-only example, now shows Python, Java, TypeScript, and Go side by side - Task runner session tree: remove bare Python tool names from BEFORE SUBMITTING and SPECIFIC SITUATIONS subsections (bandit+semgrep+vulture, vulture, Radon, MkDocs, Robot Framework) — session descriptions are now tool-agnostic project-tools/README.md: - Full rewrite from Python-only reference to language-agnostic guide - Adds language/tooling note at top explaining Python/nox as the project example - Comprehensive equivalents table covering Python, JS/TS, Java/Kotlin, and Go for every concern (task runner, lint, format, type check, unit/integration tests, coverage, security scan, unused code, complexity, build, docs, benchmarks) - Project environment management section with language comparison table - Dependency caching section with per-language cache key patterns - Configuration files section as a multi-language comparison table - Development setup checklist shows nox/npm/gradlew/go alternatives side by side - 'Always Runnable' section with examples in all four ecosystems - git tag example: v3.6.0 -> v1.2.3 (generic) testing/README.md: - 'Never use stub/pass implementations' -> 'Never use empty/stub implementations (no no-op bodies)' — removes Python-keyword 'pass' used as if universal ISSUES CLOSED: #0 |
||
|
|
85ac059489 |
docs(skill): remove CleverAgents-specific content and finish tool generalisation
Remove from SKILL.md and all reference files: - 'Am I choosing between Legacy and v3 plan workflow?' decision tree - LangChain/LangGraph sections (write-code tree, testing tree, code-style README, testing README) - FakeListLLM / MemorySaver / TypedDict LangGraph references - Backwards-compat pre-v3.0.0 policy block (project-version-specific) - v3 ULID format and Backwards-compat-starts rows from Key Numbers table - v3 Plan Lifecycle vs Legacy table from code-style README - Master-tree branch pointing to the v3/legacy workflow tree Generalise across all reference files: - commits/README: pre-commit checklist uses 'task runner session (e.g. nox -s X)' - pull-requests/README: fix approval count 2->1 with self-approval permitted; remove 'neither approver may be original author' (project allows self-approval); generalise automated-checks table command column - testing/README: remove LangChain/LangGraph Testing section; generalise all bare nox commands with task-runner framing and language note at top - code-style/README: rewrite General Principles to language-agnostic tooling guidance; generalise Import Guidelines with Python/Java/TS examples; rename and generalise Type Safety section; remove entire LangChain/LangGraph Best Practices section; remove entire v3 Plan Lifecycle vs Legacy section - security/README: generalise bare nox -s security_scan reference - issue-tracking/README: generalise subtask examples (Behave/nox) ISSUES CLOSED: #0 |
||
|
|
ca268e39fb |
docs(skill): generalise SKILL.md for any programming language
Remove project-specific src/cleveragents/ path (now src/<package>/ with examples). Replace all bare nox/Pyright/ruff/Behave references with the language-agnostic 'task runner / type checker / linter / BDD framework' abstractions, keeping the project-specific tool as a parenthetical example. Add ecosystem-equivalents reference table (Python, JS/TS, Java/Kotlin, Go) in the Quick Command Reference. Generalise type-suppression rules across languages (# type: ignore, @ts-ignore, @SuppressWarnings). Generalise TDD assertion failure type requirement with Python, Java, and JS examples. Generalise import rules, project manifest references, and directory layout descriptions. Remove Python-only step-file naming; add multi-language examples throughout. LangChain/LangGraph and v3/legacy plan workflow sections are left as-is and clearly labelled as project-specific. ISSUES CLOSED: #0 |
||
|
|
d21edb67f7 |
docs(skill): expand cleverthis-guidelines SKILL.md with missing rules and new decision trees
Added 11 new decision trees (branch naming, documentation traceability, nox session guide, CI failure diagnosis, file organization, dev setup, Issue/Epic/Legendary hierarchy, ticket well-scoped checklist, v3 vs legacy plan workflow, release process, TDD issue-capture test detail). Expanded existing trees with previously missing rules: specification- first development mandate, file organization per directory, backwards compatibility policy (none pre-v3.0.0), AssertionError-only rule for TDD expected-fail steps, tdd/mN- and bugfix/mN- branch naming with shared suffix requirement, different-assignees preference for TDD vs fix, full CI job list with required-for-merge gates, all nox sessions (e2e_tests, benchmark, benchmark_regression, complexity, docs, build). Fixed PR approval count from 2 to 1 (project-specific override; self- approval permitted per CONTRIBUTING.md). Updated Key Numbers table with 12 new rows covering CI triggers, release trigger, ULID format, required CI jobs, backwards compat start, dependency direction, and more. ISSUES CLOSED: #0 |
||
|
|
8193545fb5 |
feat(skills): add cleverthis-guidelines agent skill
Adds a comprehensive opencode skill under .opencode/skills/cleverthis-guidelines/
covering every rule, regulation, directive, and guideline governing CleverThis
projects and company operations. Synthesized from CONTRIBUTING.md and the
CleverThis Operations Code (C.O.C. v0.4, 70 pages).
- 12 files, 2,384 lines across 11 reference categories
- 1,059-line SKILL.md with 16 exhaustive decision trees covering every
procedural situation: writing code, committing, submitting PRs, code review,
creating issues, applying labels, ticket state transitions, sprint planning,
triaging, point estimation, definition of done, authoring documents,
confidentiality classification, security/credentials, FOSS, bug fixes (TDD),
architectural decisions, and escalation paths
Reference files cover:
commits/ — Conventional Changelog format, atomic commit rules, pre-commit
pull-requests/ — all 12 PR requirements, review process, merge criteria
testing/ — BDD/Behave (unit), Robot Framework (integration), 97% coverage
threshold (project-specific), TDD bug fix workflow, mocking rules
issue-tracking/ — ticket hierarchy (Issue→Epic→Legendary), all quality criteria,
mandatory issue sections, full label system (State/Type/Priority/
MoSCoW/Special), lifecycle flow, dependency direction rules
sprints/ — DSDM, 6-stage triaging, MoSCoW, poker point estimation,
all 4 sprint ceremonies with complete rule sets
code-style/ — SOLID, design patterns, import rules, error handling, type safety,
LangChain/LangGraph guidelines, v3 vs legacy plan lifecycle
security/ — gopass-only password management, Yubikey rules, encryption policy
information/ — 5 confidentiality stamp levels, document authoring, email conventions
organizational/ — C-level hierarchy, ELB, OCRB, all 12 committees, personnel review
project-tools/ — nox commands, CI/CD, release process, Hatch, Commitizen setup
open-source/ — FOSS governance, open standards mandate, POSIX compliance
Key project-specific facts documented:
- Coverage threshold: 97% (overrides C.O.C. baseline of 85%)
- BDD framework: Behave (not pytest alone)
- Type checker: Pyright (never disabled, no type: ignore)
- Bug fixes: mandatory TDD workflow with @tdd_expected_fail tagging
|
||
|
|
21b831e35d
|
fix(agents): improve label-manager permissions, merge supervisor clarity, and product-builder variable naming
CI / push-validation (push) Successful in 24s
CI / helm (push) Successful in 26s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 27s
CI / e2e_tests (push) Successful in 3m6s
CI / quality (push) Successful in 3m41s
CI / typecheck (push) Successful in 4m0s
CI / security (push) Successful in 4m37s
CI / integration_tests (push) Successful in 9m36s
CI / unit_tests (push) Successful in 10m51s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 13m51s
CI / status-check (push) Successful in 1s
CI / benchmark-publish (push) Successful in 1h14m4s
CI / benchmark-regression (push) Has been skipped
forgejo-label-manager.md: - Refactored curl permission rules to use explicit allow/deny ordering with clear comments explaining each rule; consolidated overlapping deny patterns - Switched to curl-only approach via forgejo-api skill (deny all Forgejo MCP tools) - Added read: deny and skill forgejo-api: allow to enforce the curl-only model - Clarified permission block structure: deny by default, specific allows per endpoint pr-merge-pool-supervisor.md: - Expanded 'What You Receive' section to list each field individually with bold labels for clarity (owner, repo, PAT, git email/name, briefing) product-builder.md: - Added 'Local Variable' column to the Required Information table so agents know the canonical variable names to reuse throughout prompts - Added forgejo_url, forgejo_owner, and forgejo_repo as explicit gather targets with env var fallbacks and remote-detection instructions - Added concrete remote URL parsing example showing how to extract host/owner/repo |
||
|
|
d9e5668cec
|
fix(skills): comprehensive final audit pass for programming-patterns skill
Fixes and improvements from exhaustive audit: Consistency fixes in SKILL.md: - 'Pipe & Filter' → 'Pipe and Filter' (one stray '&' found and corrected) - 'Singleton for factory instance' → clarified to 'register factory as singleton-scoped via DI container' (less misleading wording) - Documentation Format section updated with note that SKILL.md itself is the authoritative source for related-pattern combinations Coverage fix — Related Patterns sections: - Added '## Related Patterns' to ALL 94 pattern files (was 0/94) - Each section lists 3–6 related patterns with relationship descriptions - Covers: why they're related, when to prefer one vs the other, and which are often confused SOLID principles → Creational → Structural → Behavioral → Architectural → Concurrency → Functional → Resilience → Data Access → Messaging → Testing → Error Handling → Microservice — all 13 categories covered Code verification: - Python: 0 failures (all 85 testable blocks pass) - Go: 0 failures (all 76 testable blocks pass) - JavaScript: 0 failures (all 78 testable blocks pass) - All 239 code blocks verified correct after edits Final skill state: - 108 files, 36,524 lines across 13 reference categories - 94/94 pattern files have Related Patterns sections - 2,815-line SKILL.md with 67 decision trees, 23 scenarios, 0 broken references, 0 naming inconsistencies |
||
|
|
d33508e8c9
|
docs(skills): expand programming-patterns SKILL.md — 16 new trees, 5 new scenarios, 2 new sections
Growth: 2,244 → 2,811 lines New decision trees added (51 → 67): GraphQL API, data validation & sanitization, payment processing, booking/reservation systems, recommendation engines, distributed locking, graceful startup/shutdown lifecycle, schema/data migration, SaaS onboarding wizards, social graphs, API SDK design, multi-step form/wizard UI, user preferences management, microservice chassis/platform, dependency injection containers, import/export systems New compound scenarios added (18 → 23): Scenario 19: Payment processing with provider failover Scenario 20: Hotel/resource booking with concurrent hold resolution Scenario 21: SaaS onboarding with multi-tenant provisioning Scenario 22: Distributed rate limiting across service instances Scenario 23: Recommendation engine with A/B testing and fallback New sections added: '🔗 Pattern Synergies' — 20-row table of patterns that are always better together '✅ Code Review Checklist' — 30-item pattern-coverage checklist for PRs covering every class, service, external call, conditional, loop, and test |
||
|
|
81b318f07d
|
docs(skills): expand programming-patterns SKILL.md with 17 new decision trees and 6 new scenarios
- 476 → 1,569 → 2,244 lines total growth
- Decision trees: 6 → 34 → 51 situation-specific trees
- Compound scenarios: 12 → 18 full architecture maps
- New trees added in this pass:
search/discovery, game/simulation, feature flags, subscriptions/billing,
soft delete/archiving, i18n/localization, database optimization,
AI agents/LLM systems, file upload/media, CMS, OAuth2/SSO,
graph traversal, audit/compliance, real-time collaboration,
API versioning, bulk/batch processing, pagination/filtering,
webhook delivery (17 new trees)
- New scenarios added:
user registration with email verification, faceted search,
feature flag system, shopping cart with session, rate limiting
infrastructure, AI agent with tool use (6 new scenarios)
- New sections:
'Pattern Progression' (5-stage evolution for a data service and flag)
'Minimum Pattern Set per Component Type' (table of 15 component types)
'When to Skip Patterns — Never' table expanded to 25 rationalizations
- All file references validated (0 broken)
|
||
|
|
98680825a7
|
feat(skills): add exhaustive programming patterns agent skill
Adds a comprehensive opencode skill under .opencode/skills/programming-patterns/
covering 90+ design, architectural, concurrency, and functional patterns.
- 108 files, 33,500+ lines across 13 reference categories
- Every pattern: pseudocode + tested Python + Go + JavaScript implementations
- All 239 code blocks verified passing (85 Python, 76 Go, 78 JS)
- 1,569-line SKILL.md with:
- Master decision tree (all 14 categories with multi-pattern suggestions)
- 34 situation-specific decision trees covering every programming scenario
(new feature, refactoring, REST API, CLI, data pipeline, rule engine,
external integration, performance, memory, notifications, plugins,
caching, events, auth, reporting, vendor lock-in, domain model,
business rules, observability, file I/O, scheduling, testability,
third-party libs, concurrency, complex domain interactions)
- 12 compound pattern-combination scenarios with full architecture maps
(e-commerce checkout, REST endpoint, background jobs, real-time dashboard,
microservice resilience, ML pipeline, text editor, legacy migration,
multi-tenant SaaS, document approval, financial transactions, chat)
- 'When Am I Allowed to Skip Patterns?' mandate table (answer: never)
- Quick pattern lookup tables for all 90+ patterns
- Complete reference index
|
||
|
|
19664f8162 |
Build: Added back the benchmark tests but made them so they only run after pull requests into master
CI / push-validation (push) Successful in 17s
CI / build (push) Successful in 18s
CI / helm (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / typecheck (push) Successful in 49s
CI / e2e_tests (push) Successful in 2m39s
CI / lint (push) Successful in 3m25s
CI / security (push) Successful in 4m4s
CI / integration_tests (push) Successful in 9m45s
CI / unit_tests (push) Successful in 10m32s
CI / docker (push) Successful in 21s
CI / coverage (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
|
||
|
|
777a4eae43 |
fix(agents): make bug-hunt-pool-supervisor tracking non-blocking to prevent initialization hangs
CI / push-validation (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 33s
CI / typecheck (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 3m42s
CI / build (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Successful in 4m1s
CI / security (pull_request) Successful in 4m23s
CI / e2e_tests (pull_request) Successful in 6m53s
CI / unit_tests (pull_request) Successful in 8m28s
CI / docker (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 14m27s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 24s
CI / quality (push) Successful in 50s
CI / security (push) Successful in 59s
CI / lint (push) Successful in 3m17s
CI / build (push) Successful in 3m17s
CI / typecheck (push) Successful in 4m31s
CI / unit_tests (push) Successful in 5m39s
CI / docker (push) Successful in 1m33s
CI / integration_tests (push) Successful in 7m23s
CI / e2e_tests (push) Successful in 7m39s
CI / coverage (push) Successful in 5m36s
CI / status-check (push) Successful in 0s
|
||
|
|
835bc580e2 |
spec: document JSON-RPC 2.0 A2A wire format (AUTO-ARCH-8)
CI / push-validation (pull_request) Successful in 10s
CI / helm (pull_request) Successful in 25s
CI / build (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 28s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 3m19s
CI / unit_tests (pull_request) Successful in 7m21s
CI / integration_tests (pull_request) Successful in 7m23s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 11m13s
CI / status-check (pull_request) Successful in 2s
CI / lint (push) Successful in 37s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 53s
CI / build (push) Successful in 19s
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 31s
CI / e2e_tests (push) Successful in 3m16s
CI / unit_tests (push) Successful in 7m9s
CI / integration_tests (push) Successful in 7m13s
CI / docker (push) Successful in 8s
CI / coverage (push) Successful in 10m54s
CI / status-check (push) Successful in 1s
Updates the A2A Protocol section to reflect the rename of A2aRequest/ A2aResponse fields to standard JSON-RPC 2.0 names (method, id, result, error). Documents A2aVersionNegotiator for backward compatibility. Closes #8787 |
||
|
|
b8732dfc6f |
fix(tests): resolve nox unit_tests timeout for agent_skills_loader and skill_search features
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 17s
CI / push-validation (pull_request) Successful in 10s
CI / lint (pull_request) Successful in 39s
CI / quality (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 52s
CI / security (pull_request) Successful in 53s
CI / e2e_tests (pull_request) Successful in 2m13s
CI / coverage (pull_request) Successful in 5m35s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m38s
CI / docker (pull_request) Successful in 1m45s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 16s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 23s
CI / helm (push) Successful in 24s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / push-validation (push) Successful in 38s
CI / e2e_tests (push) Successful in 3m14s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 12s
CI / coverage (push) Successful in 10m53s
CI / status-check (push) Successful in 1s
Adjusted test running and file-detection logic to stabilize unit tests in overlayfs environments and improve target feature handling. - Modified scripts/run_behave_parallel.py to run sequentially when there are 2 or fewer feature files, avoiding fork deadlocks on overlayfs and reducing nox-based unit test timeouts for agent_skills_loader and skill_search features. - Updated noxfile.py to correctly detect feature files in posargs, fixing the prior logic that appended the "features/" directory when specific feature files were provided. This ensures precise test selection and avoids unnecessary path expansion. Rationale: These changes address the root causes of flaky unit test timeouts by preventing problematic forking behavior with small feature sets and by ensuring nox respects explicitly provided feature file paths. ISSUES CLOSED: #9374 |
||
|
|
bdbfb39e45 |
chore(agents): improve pr-review-pool-supervisor — fix tracking prefix mismatch causing duplicate issues
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / push-validation (pull_request) Successful in 9s
CI / quality (pull_request) Successful in 52s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 5m9s
CI / coverage (pull_request) Successful in 5m34s
CI / integration_tests (pull_request) Successful in 6m36s
CI / unit_tests (pull_request) Successful in 11m29s
CI / docker (pull_request) Successful in 1m18s
CI / status-check (pull_request) Successful in 1s
CI / build (push) Successful in 15s
CI / helm (push) Successful in 16s
CI / push-validation (push) Successful in 11s
CI / security (push) Successful in 30s
CI / lint (push) Successful in 39s
CI / quality (push) Successful in 42s
CI / typecheck (push) Successful in 53s
CI / integration_tests (push) Successful in 6m35s
CI / coverage (push) Successful in 5m44s
CI / e2e_tests (push) Successful in 6m48s
CI / unit_tests (push) Successful in 7m41s
CI / docker (push) Successful in 1m19s
CI / status-check (push) Successful in 1s
Approved proposal: #7602 Pattern: workflow_fix Evidence: Watchdog (Cycle 15, #7587) reports HIGH severity systemic issue — AUTO-REV-SUP creating 10+ duplicate tracking issues per cycle. Root cause: agent definition uses AUTO-REV-POOL prefix in ATM calls but actual issues use AUTO-REV-SUP prefix. ATM cannot find/close old issues → duplicates. Fix: Updated all tracking prefix references from AUTO-REV-POOL to AUTO-REV-SUP and tracking type from 'Review Pool Status' to 'PR Review Pool Status'. ISSUES CLOSED: #7602 # Conflicts: # .opencode/agents/pr-review-pool-supervisor.md |
||
|
|
9178ba5f91 |
fix(security): harden plugin entry point loading (#7785)
CI / lint (push) Successful in 18s
CI / helm (push) Successful in 17s
CI / build (push) Successful in 30s
CI / typecheck (push) Successful in 40s
CI / quality (push) Successful in 49s
CI / push-validation (push) Successful in 36s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m27s
CI / integration_tests (push) Successful in 4m2s
CI / unit_tests (push) Successful in 5m42s
CI / docker (push) Successful in 1m7s
CI / coverage (push) Successful in 12m44s
CI / status-check (push) Successful in 1s
Enforce entry point allowlist validation before importing plugin modules, add explicit parsing helper, Robot Framework security regression test, and Behave security regression coverage. Documents the security fix in the changelog. Closes #7476 |
||
|
|
46ed31930e |
docs(contributors): add HAL 9000 plugin security hardening contribution detail
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 11s
CI / lint (pull_request) Successful in 38s
CI / typecheck (pull_request) Successful in 50s
CI / security (pull_request) Successful in 51s
CI / e2e_tests (pull_request) Successful in 2m14s
CI / quality (pull_request) Successful in 3m44s
CI / integration_tests (pull_request) Successful in 6m17s
CI / unit_tests (pull_request) Successful in 7m32s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 12m31s
CI / status-check (pull_request) Successful in 1s
Added detail entry for HAL 9000's contribution to the plugin entry point security hardening fix (#7476). ISSUES CLOSED: #7476 |
||
|
|
74ce88caeb |
docs(contributors): add HAL 9000 to contributors list
ISSUES CLOSED: #7476 |
||
|
|
cef70ff98a |
fix(security): add Robot integration test and CONTRIBUTORS for #7476
Add Robot Framework integration test verifying that load_from_entry_points does not call ep.load() for entry points with disallowed module prefixes (security regression test for issue #7476). Also add HAL 9000 to CONTRIBUTORS.md per CONTRIBUTING.md process rules. ISSUES CLOSED: #7476 |
||
|
|
717a05f604 |
fix(security): fix plugins/loader.py load_from_entry_point security #7476
Parse entry point targets before import so allowlist enforcement happens prior to execution and add a Behave regression scenario covering the disallowed-prefix path. ISSUES CLOSED: #7476 |
||
|
|
f67e8a2e07
|
fix(testing): document and harden non-AssertionError guard in apply_tdd_inversion to reduce flaky CI
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 18s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 56s
CI / security (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 3m13s
CI / integration_tests (pull_request) Successful in 4m23s
CI / e2e_tests (pull_request) Successful in 4m37s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 10m46s
CI / status-check (pull_request) Successful in 1s
CI / lint (push) Successful in 17s
CI / quality (push) Successful in 17s
CI / build (push) Successful in 24s
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 37s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 3m13s
CI / unit_tests (push) Successful in 6m37s
CI / integration_tests (push) Successful in 6m39s
CI / docker (push) Successful in 1m35s
CI / coverage (push) Successful in 11m13s
CI / status-check (push) Successful in 1s
Surface the non-AssertionError guard warning in standard Behave output by emitting to stderr in addition to the structured logger, and add infrastructure coverage that asserts this guard path is visible during test runs. Document the @tdd_expected_fail expectation that bug-signaling failures must use AssertionError so infrastructure exceptions are not accidentally treated as expected bug failures. ISSUES CLOSED: #8294 |
||
|
|
237e776951
|
feat(skills): add exhaustive Forgejo REST API agent skill
CI / lint (push) Successful in 20s
CI / quality (push) Successful in 20s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 24s
CI / push-validation (push) Successful in 39s
CI / security (push) Successful in 1m1s
CI / e2e_tests (push) Successful in 3m13s
CI / typecheck (push) Successful in 4m23s
CI / unit_tests (push) Successful in 6m44s
CI / integration_tests (push) Successful in 6m49s
CI / docker (push) Successful in 11s
CI / coverage (push) Successful in 6m56s
CI / status-check (push) Successful in 0s
Adds a comprehensive opencode skill under .opencode/skills/forgejo-api/
covering all 473 Forgejo REST API endpoints across 25 reference categories.
- 78 files, 23,000+ lines, 149 distinct path parameter types
- Every curl command parameterised ({owner}/{repo}/{index}/etc) and
tested against the live git.cleverthis.com server
- SKILL.md: 917-line entry point with quick-answer curl commands (35),
jq cheat sheet for chaining API calls, 14 decision trees, 12 critical
concepts (exclusive labels, lazy mergeability, SHA locking, auto-close
keywords, search envelope differences, 412 stale-edit protection), full
HTTP status code table, and environment variable reference
- references/pull-requests/: CRUD, 6 merge styles, automerge, server-side
rebase without local clone, inline review comments, diff/patch
- references/issues/: comments, reactions, attachments, dependencies,
time tracking, stopwatches, pinning
- references/labels/: repo + org labels, exclusive label groups,
GET/POST/PUT/DELETE on issues and PRs
- references/ci-actions/ + references/commit-statuses/: workflow runs,
dispatch, secrets, variables, quality gate verification
- references/web-interface/ci-logs.md: step-by-step CI log access via
CSRF web session (not available through REST API)
- references/complex-workflows/: 10 multi-step recipes including
PR review cycle, issue lifecycle, CI status check, server-side rebase,
automerge, release workflow, org setup, fork contribution
|
||
|
|
8b2e0c81c5 |
fix(testing): print behave-parallel worker logs only for failed chunks
CI / lint (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 33s
CI / push-validation (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 3m36s
CI / build (pull_request) Successful in 3m44s
CI / typecheck (pull_request) Successful in 4m30s
CI / security (pull_request) Successful in 4m37s
CI / e2e_tests (pull_request) Successful in 6m54s
CI / unit_tests (pull_request) Successful in 9m46s
CI / integration_tests (pull_request) Successful in 9m51s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 10m53s
CI / status-check (pull_request) Successful in 0s
CI / security (push) Successful in 41s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 33s
CI / lint (push) Successful in 3m17s
CI / build (push) Successful in 3m16s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 4m16s
CI / e2e_tests (push) Successful in 6m35s
CI / unit_tests (push) Successful in 10m18s
CI / integration_tests (push) Successful in 10m21s
CI / docker (push) Successful in 1m36s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 0s
In parallel mode, the behave runner previously replayed captured stdout/stderr for every worker chunk, creating noisy output that obscured failure diagnostics in CI and local runs. Changes to scripts/run_behave_parallel.py: - Added _chunk_has_failures() and _chunk_no_scenarios_ran() helpers to evaluate individual chunk summaries for failure/error/crash conditions. - Updated the aggregation loop in main() to conditionally replay captured stdout/stderr only for chunks whose summary indicates failures, errors, or no scenarios ran (crash detection). Passing chunks now suppress their output entirely. - Added robust exception handling in _worker_run_features() so that worker crashes produce a full traceback in stderr and return a crash summary with features.errors = 1, enabling the parent to detect the crash via _chunk_has_failures (and also _chunk_no_scenarios_ran, since no scenarios reached a terminal state) and replay the diagnostics. - The conditional replay uses summary-based checks rather than the raw runner.run() boolean, consistent with the existing exit-code logic. This avoids spurious log replay for @tdd_expected_fail scenarios whose runner.run() returns True even though the TDD inversion handler has corrected the scenario status to passed. - Existing summary merge, exit semantics, and the no-scenarios safety net are fully preserved. New Behave unit tests (17 scenarios) cover the chunk-level helpers, the conditional aggregation loop, the pure no-scenarios-ran path, stderr replay for non-crash failed chunks, and the worker crash path. New Robot integration tests (6 test cases) verify the same behavior end-to-end via the helper_behave_parallel_log_filtering.py script. Also updated: - CHANGELOG.md: add unreleased entry for this behavioral change. - features/steps/behave_parallel_log_filtering_steps.py: use contextlib.redirect_stdout/redirect_stderr instead of manual sys.stdout assignment; register module in sys.modules; document CWD requirement in _load_runner_module(). - robot/helper_behave_parallel_log_filtering.py: move import io to top-level; remove redundant inline imports; use contextlib for output capture; register module in sys.modules; document CWD requirement. Branch note: the canonical branch for this fix is bugfix/m3-behave-parallel-failed-chunk-logs. The PR head branch (bugfix/mX-behave-parallel-failed-chunk-logs) cannot be renamed via the Forgejo API; both branches are kept in sync at the same SHA. ISSUES CLOSED: #8351 |
||
|
|
b43ba41f6d |
fix(concurrency): protect validate_fragment_scope with lock and update CONTRIBUTORS
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 24s
CI / build (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 29s
CI / quality (pull_request) Successful in 44s
CI / typecheck (pull_request) Successful in 54s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m4s
CI / unit_tests (pull_request) Successful in 9m51s
CI / integration_tests (pull_request) Successful in 9m53s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 16m31s
CI / status-check (pull_request) Successful in 2s
CI / quality (push) Successful in 17s
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 25s
CI / build (push) Successful in 26s
CI / lint (push) Successful in 36s
CI / typecheck (push) Successful in 46s
CI / security (push) Successful in 50s
CI / e2e_tests (push) Successful in 3m19s
CI / integration_tests (push) Successful in 4m23s
CI / unit_tests (push) Successful in 5m7s
CI / docker (push) Successful in 1m19s
CI / coverage (push) Successful in 11m0s
CI / status-check (push) Successful in 1s
- Wrapped validate_fragment_scope() body with self._lock to prevent RuntimeError: dictionary changed size during iteration when another thread mutates the tier stores during scope validation - Updated CONTRIBUTORS.md to document HAL 9000's concurrency safety contributions including thread-safe context tier management (issue #7547) Fixes review feedback from PR #8279. ISSUES CLOSED: #7547 |
||
|
|
0f75429253 |
fix(concurrency): add thread safety to ContextTierService
Implemented thread-safety improvements for ContextTierService by introducing a re-entrant lock and guarding all critical sections with self._lock. This prevents RuntimeError: dictionary changed size during iteration under concurrent plan execution. - Added threading.RLock to ContextTierService.__init__ as self._lock - Wrapped all public methods (store, get, promote, demote, evict_lru, get_metrics, get_all_fragments, get_hot_fragments, get_for_actor, get_scoped_view) with with self._lock: - Added _lock: threading.RLock type stub to TierRuntimeMixin and ScopedTierMixin - Wrapped enforce_staleness in TierRuntimeMixin with self._lock - Wrapped get_scoped_by_resource and get_scoped_metrics in ScopedTierMixin with self._lock - Extracted settings helpers to new context_tier_settings.py to keep context_tiers.py under 500 lines - Added BDD feature file context_tier_thread_safety.feature with 10 thread-safety scenarios - Added step definitions context_tier_thread_safety_steps.py - Updated CHANGELOG.md with fix entry ISSUES CLOSED: #7547 |
||
|
|
b752dd485f |
fix(cli): --format color now emits ANSI-coloured output instead of plain text
CI / quality (pull_request) Successful in 20s
CI / push-validation (pull_request) Successful in 21s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 37s
CI / security (pull_request) Successful in 51s
CI / typecheck (pull_request) Successful in 52s
CI / integration_tests (pull_request) Successful in 4m50s
CI / unit_tests (pull_request) Successful in 6m25s
CI / e2e_tests (pull_request) Successful in 6m29s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 12m43s
CI / status-check (pull_request) Successful in 1s
CI / helm (push) Successful in 21s
CI / build (push) Successful in 25s
CI / push-validation (push) Successful in 25s
CI / quality (push) Successful in 42s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 52s
CI / integration_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m17s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m55s
CI / status-check (push) Successful in 1s
Route the COLOR format option through format_output_session (which uses ColorMaterializer) instead of _format_plain. Previously --format color produced identical output to --format plain because both were routed to the same plain-text formatter. All other formats (plain, json, yaml, rich, table) remain unaffected. Updated CHANGELOG.md with the fix entry and CONTRIBUTORS.md with HAL 9000 contribution details. ISSUES CLOSED: #7910 |
||
|
|
4c0f3e1da9 |
fix(tests): fix create_template_db.py to create writable SQLite template database
CI / push-validation (push) Successful in 17s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 43s
CI / quality (push) Successful in 48s
CI / typecheck (push) Successful in 53s
CI / security (push) Successful in 53s
CI / e2e_tests (push) Successful in 3m22s
CI / integration_tests (push) Successful in 6m42s
CI / unit_tests (push) Successful in 7m47s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m9s
CI / status-check (push) Successful in 1s
CI / push-validation (pull_request) Successful in 13s
CI / helm (pull_request) Successful in 26s
CI / lint (pull_request) Successful in 33s
CI / build (pull_request) Successful in 38s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 49s
CI / security (pull_request) Successful in 55s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / integration_tests (pull_request) Successful in 6m40s
CI / unit_tests (pull_request) Successful in 7m44s
CI / docker (pull_request) Successful in 10s
CI / coverage (pull_request) Successful in 12m9s
CI / status-check (pull_request) Successful in 3s
Added os.chmod(db_path, 0o664) after database creation to ensure the template database has writable permissions. This prevents sqlite3.OperationalError: attempt to write a readonly database when tests copy and modify the template during test setup. The template database is now created with rw-rw-r-- (664) permissions instead of the default rw-r--r-- (644), allowing the test runner process to write to it. ISSUES CLOSED: #9372 |
||
|
|
a1a9e51441 |
Merge master into fix/issue-6329-resource-remove-edge-table
CI / push-validation (pull_request) Successful in 20s
CI / helm (pull_request) Successful in 25s
CI / build (pull_request) Successful in 25s
CI / lint (pull_request) Successful in 37s
CI / typecheck (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m2s
CI / integration_tests (pull_request) Successful in 4m13s
CI / e2e_tests (pull_request) Successful in 4m33s
CI / unit_tests (pull_request) Successful in 5m29s
CI / docker (pull_request) Successful in 1m19s
CI / coverage (pull_request) Successful in 17m14s
CI / status-check (pull_request) Successful in 1s
|
||
|
|
9aad085b74 |
fix(cli): add missing "✓ OK" footer to agents plan errors rich output
CI / push-validation (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 19s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 41s
CI / lint (pull_request) Successful in 47s
CI / typecheck (pull_request) Successful in 53s
CI / security (pull_request) Successful in 1m27s
CI / e2e_tests (pull_request) Successful in 3m39s
CI / integration_tests (pull_request) Successful in 4m10s
CI / unit_tests (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 10m52s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 19s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 28s
CI / e2e_tests (push) Successful in 3m13s
CI / lint (push) Successful in 3m17s
CI / quality (push) Successful in 3m38s
CI / typecheck (push) Successful in 3m57s
CI / security (push) Successful in 4m5s
CI / integration_tests (push) Successful in 6m19s
CI / unit_tests (push) Successful in 7m35s
CI / docker (push) Successful in 1m21s
CI / coverage (push) Successful in 10m48s
CI / status-check (push) Successful in 1s
ISSUES CLOSED: #9355 |
||
|
|
abbb830c60
|
Build: sped up bootstrap time of pr-merge pool agent
CI / push-validation (push) Successful in 19s
CI / build (push) Successful in 25s
CI / helm (push) Successful in 25s
CI / lint (push) Successful in 36s
CI / quality (push) Successful in 43s
CI / typecheck (push) Successful in 49s
CI / security (push) Successful in 54s
CI / e2e_tests (push) Successful in 4m25s
CI / unit_tests (push) Successful in 5m31s
CI / docker (push) Successful in 1m32s
CI / integration_tests (push) Successful in 7m18s
CI / coverage (push) Successful in 13m37s
CI / status-check (push) Successful in 1s
|
||
|
|
d3cb534caf |
feat(plan): implement LLM-powered strategy actor
CI / push-validation (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 27s
CI / security (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 41s
CI / typecheck (pull_request) Successful in 48s
CI / build (pull_request) Successful in 3m18s
CI / e2e_tests (pull_request) Successful in 4m16s
CI / integration_tests (pull_request) Successful in 4m16s
CI / unit_tests (pull_request) Successful in 5m8s
CI / docker (pull_request) Successful in 1m32s
CI / coverage (pull_request) Successful in 10m53s
CI / status-check (pull_request) Successful in 1s
CI / push-validation (push) Successful in 18s
CI / helm (push) Successful in 23s
CI / build (push) Successful in 31s
CI / lint (push) Successful in 43s
CI / typecheck (push) Successful in 52s
CI / security (push) Successful in 52s
CI / e2e_tests (push) Successful in 3m37s
CI / quality (push) Successful in 3m44s
CI / integration_tests (push) Successful in 6m35s
CI / unit_tests (push) Failing after 7m36s
CI / docker (push) Has been skipped
CI / coverage (push) Successful in 13m39s
CI / status-check (push) Failing after 1s
Implement StrategyActor class for the plan strategize phase that uses an LLM to produce hierarchical execution strategies with dependencies, resource requirements, estimated complexity, and risk scores. Key components: - StrategyActor: Core actor with LLM prompt construction, response parsing (JSON and numbered-list fallback), and graceful degradation to StrategizeStubActor when no LLM provider is configured - StrategyAction/StrategyTree: Pydantic models for the hierarchical action tree with dependency links - validate_no_cycles(): Kahns algorithm (deque-based) for dependency graph cycle detection, raising PlanError on circular dependencies - build_strategy_prompt(): Context-aware prompt construction using definition_of_done, resources, project context, and ACMS analysis with XML-delimited user content sections for prompt injection hardening - parse_strategy_response(): Robust LLM output parsing with JSON extraction and numbered-list fallback - resolve_strategy_actor(): Integration point for the existing actor.default.strategy config key (CLEVERAGENTS_DEFAULT_STRATEGY_ACTOR) - Decision conversion producing strategy_choice Decision objects - build_decisions() preserves tree hierarchy via parent_id mapping, populates downstream_decision_ids from dependency edges, and validates plan_id Structural tree hierarchy (B2 review fix): - _build_tree infers parent_id from the dependency graph: each actions first resolved dependency becomes its structural parent. Actions with no dependencies fall back to the root. This produces hierarchical trees for agents plan tree rendering per spec Plan Decision Tree. Downstream decision tracking (B3 review fix): - build_decisions populates downstream_decision_ids from the strategy trees dependency edges using a pre-generated decision_id map so influence relationships between decisions are recorded per the spec Decision Record Structure. Post code-review hardening (PR #1175): - Broadened exception handling in execute() and ACMS retrieval to catch all LLM provider errors (openai, httpx, anthropic, etc.) with graceful fallback to stub mode (H1, H2) - Added warning log for unresolvable dependency references so dropped edges are visible in structured logs (H3) - Added XML-delimited user content sections and explicit data-only instructions in system prompt for prompt injection hardening (H4) - Switched prompt truncation to word-boundary-safe _truncate_at_word() for all prompt input sections (M1) - Fixed _parse_actor_name to preserve user-specified provider or model when only one segment is empty, instead of discarding both (M2) - Annotated _build_invariant_records as placeholder pending the Invariant Reconciliation Actor implementation (M5) - Documented resources/project_context params as future-wired through PlanExecutor.run_strategize() (M8) - Added docstring noting supersession relationship with LLMStrategizeActor in llm_actors.py (M9) - Added __all__ export definition (L2) - Improved validate_no_cycles docstring edge direction semantics (L7) - Cap JSON parse retry loop at _MAX_JSON_PARSE_RETRIES (10) Post second code-review hardening (PR #1175, review cycle 2): - Fixed _truncate_at_word docstring: documented max_chars >= 3 precondition for the result-length guarantee (R-H1) - Added warning log in build_decisions for unresolvable parent_id references, matching the existing _build_tree warning for unresolvable dependency references (R-H2) - Fixed _parse_actor_name to handle whitespace-only input by adding actor_name.strip() check alongside the emptiness check (R-M1) - Tightened ACMS scenario assertions from non-empty to expected count of 5 decisions (R-L3) - Added timeout=60s on_timeout=kill to all Robot test cases for consistency with project patterns (R-M5) Post third code-review hardening (PR #1175, review cycle 3): - Added _sanitize_xml_content() to escape XML special characters (<, >, &) in user content before embedding into XML-delimited prompt sections, preventing prompt injection via forged closing tags (spec Prompt Injection Mitigation) (CR3-M1) - Upgraded _try_parse_json() to multi-anchor retry: collects all [{ positions left-to-right and tries each as a candidate start, fixing false-start anchoring when LLM preamble contains [{ fragments before the real JSON array (CR3-M2) - Added _truncate_at_word() guard for max_chars < 3: returns a hard slice instead of word-boundary truncation when the ellipsis would exceed the limit (CR3-L2) - Changed _build_tree collision fallback key from -(idx+1) to -(1_000_000+idx) to eliminate theoretical collision with LLM-produced negative step numbers (CR3-L3) - Added forward-looking API docstring note to build_decisions() documenting that it is not yet wired into PlanExecutor and will be integrated once Decision persistence lands (CR3-M3) Post fourth code-review hardening (PR #1175, review cycle 4): - Fixed _try_parse_json per-anchor retry counter: reset retries=0 at the start of each anchor iteration so false-start [{ anchors in LLM preamble text no longer exhaust the retry budget for the correct anchor (CR4-B1) - Added known-limitations docstring to module header documenting missing decision types (resource_selection, subplan_spawn, invariant_enforced) as future work (CR4-D1) - Rewrote XML injection assertion in test to use regex extraction instead of fragile chained .split() calls that could IndexError on structural changes (CR4-T5) Post fifth code-review hardening (PR #1175, review cycle 5): - Added warning log in build_decisions for empty-string parent_id (distinct from None) so the silent fallback to root is visible in structured logs for debuggability (CR5-B1) - Added plan_id propagation assertion to build_decisions test scenarios verifying decision.plan_id matches the input (CR5-T1) - Added sequence_number monotonicity assertion verifying decision sequence_numbers are zero-indexed and monotonically increasing (CR5-T2) - Added _truncate_at_word boundary test for max_chars=3 (exactly ellipsis length) verifying correct "..." output (CR5-T3) - Tightened false-start anchor test from permissive len>=1 to specific description match "Sole real action" (CR5-T4) - Added word-boundary truncation test using space-separated input to exercise the rfind(" ") path under oversized DoD (CR5-T5) Post sixth code-review hardening (PR #1175, review cycle 6): - Added _MAX_INVARIANTS cap (100) for invariant list truncation in prompt to prevent token limit overflows, consistent with other prompt section caps (CR6-M4) - Added negative max_chars guard in _truncate_at_word returning empty string instead of slicing from end (CR6-M5) - Added global JSON parse attempt cap _MAX_GLOBAL_JSON_ATTEMPTS (50) across all anchors in _try_parse_json (CR6-L3) - Moved re import to module level in strategy_parsing.py per CONTRIBUTING import guidelines (CR6-L4) - Extracted _DEFAULT_DESCRIPTION constant to eliminate duplication between _default_action() and _build_tree() (CR6-L5) Post seventh code-review hardening (PR #1175, review cycle 7): - Decoupled _execute_stub from StrategizeStubActor._parse_steps private method by delegating to parse_strategy_response, removing cross-class private method dependency (CR7-M1) - Added ULID format validation on plan_id in execute() and build_decisions() for spec-consistent argument validation per §Plan glossary and CONTRIBUTING §Argument Validation (CR7-M2) - Constrained StrategyAction.estimated_complexity to Literal["low", "medium", "high"] at Pydantic model level per CONTRIBUTING §Type Safety (CR7-M5) - Documented XML-tag prompt boundary deviation from spec [USER_CONTENT_START]/[USER_CONTENT_END] markers with rationale for the more structured approach (CR7-M6) - Added _build_tree empty-input guard comment documenting orphaned root_id semantics (CR7-L1) - Added _truncate_at_word > 0 intent comment explaining why position-0 space is intentionally excluded (CR7-L2) - Added build_decisions context_snapshot future-work comment referencing spec §Decision Record Structure (CR7-L5) - Used enumerate() in _build_tree first loop for idiomatic Python (CR7-L7) - Fixed false-start anchor test (CR5-T4) broken by CR6-L3 global cap: reduced preamble fragments from 15 to 3 so total attempts stay within _MAX_GLOBAL_JSON_ATTEMPTS (CR7-T1) - Fixed test plan_ids containing non-Crockford-Base32 characters (L→K) to pass ULID format validation (CR7-T2) Tests: - 105 Behave BDD scenarios in features/strategy_actor_llm.feature adding: global JSON attempt cap exhaustion (CR7-L3), orphaned dependency edge silent drop (CR7-L4), non-ULID plan_id rejection in execute() and build_decisions() (CR7-M2) - 101 Behave BDD scenarios in features/strategy_actor_llm.feature including new scenarios for _truncate_at_word edge cases (L3), create_llm argument verification (L4), non-numeric step field fallback (L5), updated assertions for XML-delimited prompts and _parse_actor_name partial-segment preservation (M2), lifecycle exception fallback (R1), PydanticValidationError re-raise verification (R2), self-loop cycle detection (R3), whitespace-only actor name (R4), XML tag injection sanitisation (CR3-M1), preamble bracket fragment parsing (CR3-M2), _truncate_at_word sub-3 limit (CR3-L2), resolve_strategy_actor with both llm config and registry (CR3-L5), build_decisions unresolvable parent_id fallback (CR3-L7), XML injection in resources/project_context/acms_context fields (CR4-S1), ampersand escaping (CR4-S1d), false-start anchor retry budget (CR4-T3), non-sequential step edge specificity (CR4-T4), plan_id propagation (CR5-T1), sequence_number monotonicity (CR5-T2), max_chars=3 boundary (CR5-T3), false-start anchor specificity (CR5-T4), word-boundary truncation (CR5-T5), invariant prompt constraints (CR6-M2), invariant XML sanitisation (CR6-M3), invariant truncation cap (CR6-M4), negative max_chars (CR6-M5), and no-space truncation (CR6-L8) - 7 Robot Framework integration tests in robot/strategy_actor.robot - Mock LLM provider in features/mocks/mock_strategy_llm.py All nox stages pass: lint, typecheck, unit_tests (13789 scenarios), integration_tests (1863 passed). integration_tests (1863 passed, 2 pre-existing TDD failures unrelated to this change). ISSUES CLOSED: #828 |
||
|
|
5a57eb9a07
|
Build: doom loops are detected and killed
CI / push-validation (push) Successful in 17s
CI / build (push) Successful in 36s
CI / lint (push) Successful in 38s
CI / helm (push) Successful in 43s
CI / typecheck (push) Successful in 50s
CI / quality (push) Successful in 3m42s
CI / integration_tests (push) Successful in 3m59s
CI / security (push) Successful in 4m8s
CI / e2e_tests (push) Successful in 4m17s
CI / unit_tests (push) Successful in 8m29s
CI / docker (push) Successful in 10s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
acb901abf1
|
Build: Refined some of the wording in the supervisors to get more reliable performance out of them. Made permissions stricter so we will get less circumvention of intended permissions
CI / push-validation (push) Successful in 16s
CI / helm (push) Successful in 17s
CI / typecheck (push) Successful in 1m4s
CI / build (push) Successful in 3m19s
CI / lint (push) Successful in 3m19s
CI / quality (push) Successful in 3m49s
CI / integration_tests (push) Successful in 4m0s
CI / security (push) Successful in 4m5s
CI / e2e_tests (push) Successful in 6m12s
CI / unit_tests (push) Successful in 9m35s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 13m52s
CI / status-check (push) Successful in 1s
|
||
|
|
0d6b197504 |
docs(timeline): update schedule adherence Day 104 (2026-04-14) [AUTO-TIME-1]
CI / helm (push) Successful in 24s
CI / push-validation (push) Successful in 17s
CI / lint (push) Successful in 3m21s
CI / build (push) Successful in 3m17s
CI / quality (push) Successful in 3m54s
CI / typecheck (push) Successful in 3m58s
CI / security (push) Successful in 4m9s
CI / e2e_tests (push) Successful in 6m51s
CI / integration_tests (push) Successful in 9m44s
CI / push-validation (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 25s
CI / unit_tests (push) Successful in 11m5s
CI / docker (push) Successful in 1m54s
CI / lint (pull_request) Successful in 3m20s
CI / build (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m41s
CI / typecheck (pull_request) Successful in 3m42s
CI / security (pull_request) Successful in 3m49s
CI / e2e_tests (pull_request) Successful in 4m26s
CI / integration_tests (pull_request) Successful in 7m38s
CI / unit_tests (pull_request) Successful in 8m38s
CI / coverage (push) Successful in 14m29s
CI / status-check (push) Successful in 1s
CI / docker (pull_request) Successful in 1m57s
CI / coverage (pull_request) Successful in 14m35s
CI / status-check (pull_request) Successful in 1s
|