Commit Graph

513 Commits

Author SHA1 Message Date
HAL9000 b00322e2f8 docs: add Milestone Plan section to specification
Maps v3.2.0–v3.8.0 milestones to their spec sections, acceptance
criteria, and key architectural constraints. Provides implementers
a navigation guide into the 46K-line specification.

No architectural changes — this is a clarification that connects
existing spec content to the Forgejo milestone structure.
2026-04-08 19:31:01 +00:00
HAL9000 057e3f5bfb docs: showing off some showcased workflows 2026-04-07 15:27:39 -04:00
HAL9000 ccfbf11009 docs: add showcase example for server and A2A integration
Adds a complete end-to-end walkthrough of the server connection CLI
commands and A2A protocol facade, verified by the UAT system with real
command outputs. Covers:

- agents server --help, connect, status, serve commands
- All output formats (rich, json, yaml, plain)
- A2A JSON-RPC 2.0 wire format (A2aRequest, A2aResponse, A2aEvent)
- A2aLocalFacade: 42 supported operations, stub mode, service wiring
- get_facade() wired to real DI container
- A2aVersionNegotiator: version negotiation and mismatch handling
- ServerConnectionConfig: validation rules

Also updates examples.json index with the new entry.
2026-04-07 14:54:49 +00:00
HAL9000 07f9364bcb docs: add showcase example for database migration management
Adds a complete end-to-end walkthrough of the `agents db` command group,
verified by the UAT system with real command outputs. Covers:

- agents db --help (command discovery)
- agents db current (fresh database: 41 pending migrations listed)
- agents db history (full 41-revision DAG with branchpoints/mergepoints)
- agents db history --format json (structured DAG for scripting)
- agents db upgrade (applying all 41 migrations to head)
- agents db current --format json (CI/CD integration pattern)
- agents db downgrade -- -1 (relative rollback with -- separator)
- agents db downgrade <revision-id> (targeted rollback)
- agents db upgrade <revision-id> (targeted upgrade)
- agents db upgrade --format json (idempotent upgrade with JSON output)

Also updates examples.json index with the new entry.
2026-04-07 14:53:12 +00:00
freemo 658b86c976 docs(spec): document DEPENDENCY_ORDERED subplan execution mode
Add the DEPENDENCY_ORDERED execution mode to the Child Plan Execution
Modes section. This mode performs topological sorting of subplan
dependencies and executes independent subplans concurrently in waves.
Also adds the dependency-ordered row to the failure handling table.

Closes #4034
2026-04-06 09:20:16 +00:00
freemo 0c9a537948 docs(timeline): update Day 96 with PR #3837 merge and latest counts (2026-04-06) 2026-04-06 08:23:27 +00:00
freemo 916130e014 docs(timeline): update Day 96 notes with latest PR/issue counts (2026-04-06) 2026-04-06 07:22:34 +00:00
freemo 3f4d984da6 docs(spec): add skeleton_fragments to AssembledContext and update pipeline pseudocode
Add skeleton_fragments field to the AssembledContext dataclass in the
spec to match the implementation (PR #3676). Update the pipeline
assemble() method signature to include skeleton_ratio and
parent_fragments parameters, and add Step 10 (SkeletonCompressor
invocation) to Phase 3 of the context assembly pipeline pseudocode.

Closes #3783
2026-04-06 06:47:28 +00:00
freemo 2b22c9f40e docs(spec): document automatic checkpoint triggers in main specification
Add documentation for the four automatic checkpoint triggers
(on_tool_write, on_tool_write_complete, on_subplan_spawn, on_error)
that were implemented in PR #3474 and documented in the reference
doc (docs/reference/checkpointing.md) but missing from the main
specification.

Also adds the sandbox.checkpoint.auto-create-on config key to the
configuration reference table.

Closes #3784
2026-04-06 06:46:19 +00:00
freemo 7da29628a4 docs(timeline): update schedule adherence Day 96 (2026-04-06) 2026-04-06 06:20:43 +00:00
freemo e54818d5cb feat: enhance UAT tester with automatic documentation generation
Extend the UAT testing agents to capture successful test workflows and
automatically generate showcase documentation demonstrating real-world
usage of CleverAgents.

Key features added:
- Documentation generation when tests succeed end-to-end
- Intelligent duplicate detection to avoid redundant examples
- Categorization into cli-tools, api-clients, data-processing, testing-tools
- Automatic PR creation for new documentation examples
- Integration with existing UAT workflow without disruption

Documentation structure:
- New docs/showcase/ directory for real-world examples
- Category-specific subdirectories with README guides
- Example template for consistent formatting
- JSON index for tracking and duplicate detection

The UAT tester now serves dual purposes:
1. Finding bugs through comprehensive testing (existing behavior)
2. Generating high-quality documentation from successful test runs (new)

This enables the system to build its own showcase of capabilities while
performing regular quality assurance, providing valuable examples for
users and demonstrating the system's practical applications.
2026-04-06 00:12:06 +00:00
freemo 1f64a274e3 docs: document ACMS real retrieval logic and automatic checkpoint triggers
- docs/reference/context_strategies.md: update Built-in Strategies table
  to document real retrieval logic for all 6 strategies (SimpleKeyword,
  SemanticEmbedding, BreadthDepthNavigator, ARCE, TemporalArchaeology,
  PlanDecisionContext); add note about v1 character-frequency embedding
  approximation; note SpecStrategyAdapter registration (#3500)
- docs/reference/checkpointing.md: add Automatic Checkpoint Triggers
  section documenting the 4 triggers (on_tool_write, on_tool_write_complete,
  on_subplan_spawn, on_error), configuration via core.checkpoints.auto_create_on,
  and wiring into ToolRunner/SubplanExecutionService/PlanExecutor (#3439)
2026-04-05 21:31:44 +00:00
freemo 194c830f98 fix(ci): resolve repository push failure in CI pipeline
Reviewed and APPROVED. Closes CI push failure issue.
2026-04-05 21:25:11 +00:00
freemo 9dec3ead1b docs(development): add system watchdog architecture and audit reference
Reviewed and APPROVED. Documentation-only PR.
2026-04-05 21:23:59 +00:00
freemo 96470f39dc docs: update specification — add agents plan errors command
Reviewed and APPROVED. Closes #2883.
2026-04-05 21:16:20 +00:00
freemo 997af9a90a docs: update session export panels and plan executor subplan wiring
Reviewed and APPROVED. Documentation-only PR.
2026-04-05 21:14:39 +00:00
freemo 24b34e6715 docs: update specification — fix invariant precedence chain (3-tier→4-tier) and document non_overridable flag
Reviewed and APPROVED. Closes #3064.
2026-04-05 21:12:59 +00:00
freemo ef557a31a9 fix(a2a): change A2aErrorDetail.code to int and map error constants to JSON-RPC 2.0 integer codes
Reviewed and APPROVED. Closes #2746.
2026-04-05 21:10:14 +00:00
freemo 3acfe45b7b docs: add providers API reference, update index/architecture/changelog
Reviewed and APPROVED. Documentation-only PR.
2026-04-05 21:09:47 +00:00
freemo ddc6fb7372 docs: update session export panels and plan executor subplan wiring
- docs/reference/session_cli.md: add Rich output panels documentation
  for agents session export (Session Export, Contents, Integrity panels
  with example output); update success message to 'Export completed';
  add stdout export note and example (#3424)
- docs/reference/plan_execute.md: add Subplan Spawning section
  documenting SubplanService and SubplanExecutionService injection into
  PlanExecutor, execution flow (_spawn_subplans, _execute_subplans,
  _apply_subplan_results_to_plan), failure handling, and updated
  architecture diagram (#3561)
2026-04-05 21:09:42 +00:00
freemo 98994e8b84 docs(lsp): document LspLifecycleManager restart_server deadlock fix
Reviewed and APPROVED. Documentation-only PR.
2026-04-05 21:08:33 +00:00
freemo fd1c674e6d docs: shell safety API, invariant reconciliation architecture, new feature highlights
Reviewed and APPROVED. Documentation-only PR. Closes #3377.
2026-04-05 21:06:51 +00:00
freemo 9e74fceddc docs: update and extend documentation for v3.8.0 changes
Reviewed and APPROVED. Documentation-only PR.
2026-04-05 21:06:49 +00:00
freemo 4b4f7d3305 docs(timeline): update schedule adherence Day 95 cycle-2 (2026-04-05)
Cycle-2 refresh with latest Forgejo data (30 min after initial update):
- Open bugs: 853 -> 878 (+25 new UAT bugs)
- Open PRs: 181 -> 183 (+2)
- M3: 61% (228/371) -> 61% (228/376) — total grew +5
- M4: 58% (104/179) -> 57% (104/183) — total grew +4
- M5: 66% (126/191) -> 64% (126/196) — total grew +5
- M6: 56% (180/323) -> 55% (180/325) — total grew +2
- M7: 42% (138/327) -> 41% (138/335) — total grew +8
- M8: 43% (359/830) -> 41% (359/880) — dramatic +50 new issues
- M9: 25% (118/464) -> 25% (118/465) — stable
- Updated all gantt charts, status summary, risk section, Day 95 entry
2026-04-05 20:41:43 +00:00
freemo d0254ba43a docs(timeline): update schedule adherence Day 95 (2026-04-05)
Updated Day 95 entry with latest Forgejo data:
- Open bugs: 866 -> 853 (13 resolved)
- Open PRs: 179 -> 181 (+2 new)
- M3: 62% (228/366) -> 61% (228/371) — total grew
- M4: 60% (104/174) -> 58% (104/179) — total grew
- M5: 67% (126/189) -> 66% (126/191) — total grew
- M6: 55% (178/323) -> 56% (180/323) — slight improvement
- M7: 41% (131/317) -> 42% (138/327) — slight improvement
- M8: 43% (350/822) -> 43% (359/830) — stable
- M9: 25% (117/462) -> 25% (118/464) — stable
- Updated gantt chart completion percentages and legend
- Updated current status summary and risk section
2026-04-05 20:07:01 +00:00
freemo a0ac30d5de docs: update and extend documentation for v3.8.0 changes
- docs/reference/plan_cli.md: add note about legacy/v3 plan workflow
  mixing being disallowed (introduced in v3.8.0, issue #1577)
- docs/reference/uko_runtime.md: document v3.8.0 provenance tracking
  (sourceResource, validFrom, isCurrent on typed triples) and revision
  chain for temporal queries across indexing runs (issue #891)
- docs/reference/decision_correction.md: add CorrectionAttemptRecord
  section documenting the correction_attempts table, state lifecycle,
  repository API, and usage examples (issue #920)
- docs/modules/uko-provenance.md: new module guide for UKO provenance
  tracking covering purpose, how provenance is attached, revision chain
  mechanics, query patterns, persistence format, BDD coverage, and gotchas
2026-04-05 20:05:48 +00:00
freemo 01472648c9 docs(timeline): update schedule adherence Day 95 (2026-04-05) 2026-04-05 19:37:01 +00:00
freemo d72993d908 docs: add shell safety API, invariant reconciliation architecture, and new feature highlights
- docs/api/tui.md: Document ShellDangerLevel, DangerousPattern, DEFAULT_PATTERNS,
  DangerousPatternDetector, ShellSafetyService, and SafetyCheckResult with
  full API reference, parameter tables, and usage examples
- docs/architecture.md: Add Invariant Reconciliation section covering the
  builtin/invariant-reconciliation actor, four-scope algorithm, failure
  behaviour, and DI registration
- README.md: Add Invariant Reconciliation, TUI shell danger detection, and
  UKO provenance tracking to the Highlights section

ISSUES CLOSED: #3377
2026-04-05 19:36:58 +00:00
freemo f1ab5d90dc docs: update documentation for v3.8.0 unreleased features
- Promote [Unreleased] CHANGELOG entries to [3.8.0] (2026-04-05)
- Add Shell Danger Detection section to docs/api/tui.md covering
  ShellDangerLevel, DangerousPattern, ShellSafetyService, and
  SafetyCheckResult with full API reference and usage examples
- Add InvariantService section to docs/api/core.md documenting
  the new DI-registered singleton, its methods, and emitted events
- Update docs/architecture.md Plan Lifecycle section to document
  invariant reconciliation as a phase transition gate
- Update README.md Highlights with shell danger detection, inline
  permission questions, invariant reconciliation, UKO provenance
  tracking, and JSON-RPC 2.0 A2A wire format
- Create docs/modules/shell-safety.md with full module guide
  covering purpose, key classes, built-in patterns, custom pattern
  registration, TUI integration, and testing guidance

ISSUES CLOSED: #1003 #997 #1391 #1004 #891 #1501 #1577 #1941 #2334
2026-04-05 19:33:19 +00:00
freemo a8f26cb691 docs(lsp): document LspLifecycleManager restart_server lock pattern fix (#3165) 2026-04-05 18:09:32 +00:00
freemo f5d244cd37 fix(a2a): change A2aErrorDetail.code to int and map error constants to JSON-RPC 2.0 integer codes
Per JSON-RPC 2.0 specification (Section 5.1), error codes must be integers.
This commit fixes the protocol compliance defect where A2aErrorDetail.code
was typed as str and error constants were string literals.

Changes:
- src/cleveragents/a2a/models.py: Change A2aErrorDetail.code from str to int;
  update field_validator to only validate 'message' (code no longer needs
  non-empty string check; Pydantic enforces int type)
- src/cleveragents/a2a/errors.py: Change all error code constants from string
  literals to JSON-RPC 2.0 integer codes per docs/reference/a2a.md taxonomy:
    NOT_FOUND = -32001, AUTH_ERROR = -32002, FORBIDDEN = -32003,
    INVALID_STATE = -32004, PLAN_ERROR = -32008, CONFIGURATION_ERROR = -32009,
    VALIDATION_ERROR = -32602, INTERNAL_ERROR = -32603
  Update map_domain_error() return type from tuple[str, str] to tuple[int, str]
- features/steps/a2a_facade_steps.py: Update A2aErrorDetail construction to
  map symbolic string names to integer codes via _CODE_MAP
- features/steps/a2a_facade_wiring_steps.py: Update error code assertion to
  map symbolic names to integers for comparison
- features/steps/a2a_facade_coverage_boost_steps.py: Same as above
- features/steps/a2a_jsonrpc_wire_format_steps.py: Update all A2aErrorDetail
  constructions and JSON-RPC dict payloads to use integer codes
- robot/helper_a2a_facade_wiring.py: Update wired_error_mapping() to compare
  against integer codes
- robot/helper_a2a_jsonrpc_wire_format.py: Update response_error_wire_format()
  to use integer code -32001 instead of string 'NOT_FOUND'

Wire format now produces {"code": -32001, ...} instead of {"code": "NOT_FOUND", ...},
making it compliant with JSON-RPC 2.0 and interoperable with standards-conformant clients.

ISSUES CLOSED: #2746
2026-04-05 17:53:56 +00:00
freemo 1783f0a211 docs(timeline): update schedule adherence Day 95 final v3 (2026-04-05)
Final Day 95 timeline update (v3) with current Forgejo data as of 2026-04-05.

Key Changes:
- Open PRs: 92 → 170 (+78 new PRs from agent-driven activity)
- Open bugs: 536 → 809 (+273 new bugs from UAT/bug-hunt agents)
- Total open issues: 1547
- Session tracker: updated to #3377
- Milestone completions updated (all declined due to agent-driven issue creation outpacing closures)
- Gantt chart footer, update log, and both legend blocks updated
- Current Status Summary, Schedule Risk Summary, and Day 95 adherence entry all updated with final data
- New UAT bugs noted: #3444 (TUI HelpPanelOverlay keybinding mismatch), #3445 (plan rollback Rich output format incomplete)

Supersedes PR #3419 (docs/timeline-day95-v2) which had intermediate data.

Co-authored-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Co-committed-by: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
2026-04-05 17:29:50 +00:00
freemo bb97f87a31 docs(spec): fix invariant precedence chain (3-tier->4-tier) and document non_overridable flag
Approved proposal: #3064

Changes:
- Glossary (line 92): Fix 3-tier precedence claim to correct 4-tier chain
  (plan > action > project > global) and add non_overridable exception note
- Line 18980: Fix Invariant Reconciliation Actor step 5 precedence reference
- Line 18991: Fix Strategize phase invariant reconciliation precedence reference
- Lines 19601-19604: Update Precedence and conflict resolution section to include
  action tier as a distinct scope (not promoted to plan tier) and add
  non_overridable exception clause
- Line 19618: Fix invariant view calculation precedence reference
- Lines 19621+: Add Non-overridable global invariants documentation block

Rationale: The glossary and two Strategize-phase descriptions incorrectly stated
a 3-tier precedence chain (plan > project > global), contradicting ADR-016 which
defines a 4-tier chain (plan > action > project > global). The implementation in
actor/reconciliation.py and application/services/plan_lifecycle_service.py
correctly uses the 4-tier model. The non_overridable field on the Invariant domain
model was implemented but completely undocumented in the spec.
2026-04-05 08:27:30 +00:00
freemo a17848064d docs: add providers API reference, update index/architecture/changelog
- docs/api/providers.md: new comprehensive API reference for
  cleveragents.providers — ProviderRegistry, ProviderType,
  ProviderCapabilities, ProviderInfo, LangChainChatProvider,
  module-level helpers, environment variables, and ASV benchmarks
- docs/api/index.md: add providers module to module index table
- docs/architecture.md: add Provider Registry section with discovery,
  selection, and factory usage examples
- CHANGELOG.md: add [Unreleased] entries for:
  - agents plan list --namespace/-n option (#2616)
  - ASV benchmark suite for providers module (#3022)
  - MCP error extraction from content[0].text per MCP 1.4.0 (#2600)
  - CI quality gates restored to passing on master (#2629)
2026-04-05 07:03:54 +00:00
freemo 119170c3ad docs(timeline): update schedule adherence Day 95 (2026-04-05) 2026-04-05 06:17:10 +00:00
freemo 325f63d050 docs: update specification — add agents plan errors command
Documents the agents plan errors CLI command in both the Command
Synopsis and Command Reference sections of the specification.

The command was already implemented in src/cleveragents/cli/commands/plan.py
and referenced in the TUI slash catalog but was absent from the CLI
documentation sections.

Changes:
- Command Synopsis: added 'agents plan errors <PLAN_ID>' after plan rollback
- Command Reference: added '##### agents plan errors' section with synopsis,
  purpose, arguments, and Rich/Plain/JSON output examples

Approved via proposal issue #2883.

ISSUES CLOSED: #2883
2026-04-05 04:08:40 +00:00
freemo c14f2d0a54 docs(development): add system watchdog architecture and audit reference
Document the ca-system-watchdog continuous monitoring agent:
- All 12 audit descriptions with severity levels and detection patterns
- Session introspection via OpenCode Server API (Audits 6, 11, 12)
- Finding severity table and action dispatch table
- Health reporting format and configuration parameters
- Constraints and related documentation links

Add System Watchdog entry to mkdocs.yml Development nav section.

Covers commits 8c13e63c and 77427bd7 (system watchdog introduction
and deep session introspection enhancement).
2026-04-05 02:41:16 +00:00
freemo 66c99db163 docs(timeline): update schedule adherence Day 95 (2026-04-05) 2026-04-05 02:40:40 +00:00
freemo 03334aaa3d docs(timeline): update schedule adherence Day 54 (2026-04-03) 2026-04-04 19:17:58 +00:00
freemo 5c0016c79d docs: add DomainBaseModel API reference and CI template DB changelog entry
Add DomainBaseModel section to docs/api/core.md documenting the shared Pydantic base class from PR #2014 (issue #1941), and add CHANGELOG entry for the CI template DB extension from PR #2399 (issue #2334).

ISSUES CLOSED: #1941

Co-authored-by: Jeffrey Phillips Freeman <jeffrey.freeman@cleverthis.com>
Co-committed-by: Jeffrey Phillips Freeman <jeffrey.freeman@cleverthis.com>
2026-04-03 20:41:23 +00:00
freemo c678fcdcc3 docs(spec): document inline PermissionQuestionWidget for single-file permission requests
Add inline permission question widget section to TUI documentation in
docs/specification.md and update ADR-044 Prompt Architecture section to
distinguish between single-file (inline widget) and multi-file
(PermissionsScreen) permission request handling.

Changes:
- docs/specification.md: Add '### Inline Permission Question Widget' section
  documenting PermissionQuestionWidget, InlinePermissionQuestion domain model,
  PermissionRequestType enum, PermissionDecision enum, keyboard shortcuts,
  and routing logic (single-file vs multi-file)
- docs/adr/ADR-044-tui-architecture-and-framework.md: Update Prompt Architecture
  item 3 from QuestionWidget to PermissionQuestionWidget with inline rendering
  description; add QuestionWidget as item 4 for non-file-specific choices

Triggered by PR #2181 (docs(tui): document PermissionQuestionWidget).
Approved via proposal issue #2178.

ISSUES CLOSED: #2178
2026-04-03 19:03:04 +00:00
freemo dd17d0f8e6 docs(tui): add shell safety, permission question widget, and first-run docs
Add reference documentation for three new TUI features:

- docs/reference/tui_shell_safety.md: Full reference for the shell danger
  detection subsystem (DangerousPatternDetector, ShellDangerLevel,
  DangerousPattern, DangerousCommandWarning, DEFAULT_PATTERNS registry).
  Covers all built-in patterns across CRITICAL/HIGH/MEDIUM/LOW levels,
  usage examples, and custom pattern extension.

- docs/reference/tui_permission_question.md: Full reference for the inline
  PermissionQuestionWidget (issue #997). Documents InlinePermissionQuestion,
  PermissionRequestType, PermissionDecision, render_permission_question(),
  PermissionDecisionEvent, and PermissionQuestionWidget with key bindings
  and usage examples.

- docs/reference/tui.md: Extended with First-Run Experience section
  (ActorSelectionOverlay, first_run helpers), Inline Permission Questions
  section, shell danger detection note in Shell Mode, updated module table,
  and links to new reference pages.
2026-04-03 18:01:26 +00:00
freemo 744abb9d62 docs(timeline): update schedule adherence Day 54 (2026-04-03) 2026-04-03 17:23:55 +00:00
freemo d66887766f docs(tui): document PermissionQuestionWidget and add CHANGELOG entry
Add PermissionQuestionWidget API documentation to docs/api/tui.md including
method table, key bindings, PermissionDecisionEvent dataclass, and
render_permission_question() helper reference. Add corresponding CHANGELOG
entry under [Unreleased] Added section.

Refs: #997
2026-04-03 06:39:51 +00:00
eugen.thaci f66fb5a19a docs(spec): align ASCII UI tables in specification and related pages
Align Unicode box-drawing blocks and related tables in specification.md,
ADR-044/045/046, and reference pages for consistent MkDocs rendering.

ISSUES CLOSED: #1171
2026-04-03 04:55:21 +00:00
freemo 108d87e1bb docs: update CHANGELOG and A2A API docs for recent merged PRs
Add CHANGELOG [Unreleased] entries for 6 recently merged commits:
- feat(tui): shell danger detection patterns (#1003)
- fix(a2a): JSON-RPC 2.0 wire format compliance — BREAKING field rename (#1501)
- fix(cli): disallow mixing legacy and v3 plan workflows (#1577)
- fix(cli): actor add rich output missing panels
- fix(infra): E2E suite centralized database initialization (#1023)
- ci(pipeline): parallelized static analysis jobs

Update docs/api/a2a.md to reflect JSON-RPC 2.0 field name changes:
A2aRequest.operation → method, A2aResponse.data → result, etc.
2026-04-03 02:43:00 +00:00
freemo 70e2ce4386 Merge pull request 'fix(infra): resolve TLS handshake failure on git.dev.cleveragents.com' (#1865) from fix/infra-tls-handshake-failure-git-dev into master 2026-04-03 01:13:31 +00:00
freemo 72a9a17a67 docs(timeline): update schedule adherence Day 54 (2026-04-03)
Day 54 morning update. No merges overnight. Agents created 100+ new issues.

Key changes:
- Appended Day 54 schedule adherence entry
- Updated today marker to 2026-04-03 in both gantt charts
- Open bugs: 35 → 50 (+15 new bugs from agents overnight)
- Open PRs: 79 → 84 (+5 new fix/CI branches)
- Open issues: 400 → 500 (+100 new from agents overnight)
- M3 (v3.2.0): 82% → 75% (212/281, milestone grew 256→281)
- M4 (v3.3.0): 79% → 78% (99/127, milestone grew 126→127)
- M5 (v3.4.0): 88% → 87% (126/145, milestone grew 143→145)
- M6 (v3.5.0): 77% → 71% (172/241, milestone grew 221→241)
- M7 (v3.6.0): 73% → 68% (120/177, milestone grew 164→177)
- M8 (v3.7.0): 36% → 29% (54/185, milestone grew 152→185)
- M9 (v3.8.0): 40% → 26% (64/242, milestone grew 160→242)
2026-04-03 00:33:20 +00:00
freemo 8c81f13758 fix(infra): resolve TLS handshake failure on git.dev.cleveragents.com
The TLS handshake failure on git.dev.cleveragents.com was caused by the
hostname being absent from the certificate's Subject Alternative Names
(SANs), or by SNI virtual-host misconfiguration on the server side.

This commit delivers the repository-side remediation:

- scripts/check-tls-cert.py: New TLS certificate health-check script.
  Connects to a hostname, verifies the certificate's SANs include the
  target hostname, checks expiry, and reports errors/warnings.  Accepts
  an injectable SSLContext for unit testing without real network access.
  Supports wildcard SAN matching and configurable expiry warning threshold.

- docs/development/ops-runbook.md: New ops runbook documenting the full
  certificate renewal procedure (Let's Encrypt/certbot and manual CA),
  SNI misconfiguration diagnosis steps, expiry monitoring with cron, and
  recommended alert thresholds (30/14/7/0 days).

- features/tls_certificate_check.feature: 14 Behave scenarios tagged
  @tdd_issue @tdd_issue_1543 covering: missing SAN detection, valid SAN
  acceptance, expired certificate detection, expiry warning threshold,
  TLS handshake errors, connection timeouts, connection refused, wildcard
  SAN matching, and _hostname_matches_san unit tests.

- features/steps/tls_certificate_check_steps.py: Step definitions for
  the above feature, using unittest.mock to inject SSL contexts and
  socket connections so no real network calls are made.

- mkdocs.yml: Added Ops Runbook to the Development section navigation.

The actual server-side certificate renewal (adding git.dev.cleveragents.com
as a SAN and reloading the web server) must be performed by the server
administrator following the procedure in docs/development/ops-runbook.md.

Closes #1543

ISSUES CLOSED: #1543
2026-04-02 23:59:37 +00:00
freemo ee1710dc3e docs(timeline): update schedule adherence Day 53 (2026-04-02) night refresh
Night refresh after UAT/bug-hunt/CI agents created 50+ new issues.

Key changes:
- Open bugs: 6 → 35 (UAT/bug-hunt agents created 29 new bugs #1749-#1791)
- Open PRs: 74 → 79 (+5 new CI/security PRs)
- Open issues: 339 → 400 (+61 new from UAT/bug-hunt/CI agents)
- M3 (v3.2.0): 85% → 82% (211/256, milestone grew from 236→256)
- M4 (v3.3.0): 80% → 79% (99/126, milestone grew from 124→126)
- M5 (v3.4.0): 89% → 88% (126/143, milestone grew from 142→143)
- M6 (v3.5.0): 79% → 77% (171/221, milestone grew from 214→221)
- M7 (v3.6.0): 75% → 73% (120/164, milestone grew from 150→164)
- M8 (v3.7.0): 38% → 36% (55/152, milestone grew from 107→152)
- M9 (v3.8.0): 35% → 40% (64/160, milestone grew from 49→160)
- Critical: coverage at 37% (#1782), AmbiguousStep crash (#1791)
2026-04-02 23:57:25 +00:00