Skip to content

chore: promote staging to staging-promote/729449fa-24553476964 (2026-04-17 09:30 UTC)#2573

Merged
henrypark133 merged 2 commits intomainfrom
staging-promote/030c09a6-24558109707
Apr 18, 2026
Merged

chore: promote staging to staging-promote/729449fa-24553476964 (2026-04-17 09:30 UTC)#2573
henrypark133 merged 2 commits intomainfrom
staging-promote/030c09a6-24558109707

Conversation

@ironclaw-ci
Copy link
Copy Markdown
Contributor

@ironclaw-ci ironclaw-ci bot commented Apr 17, 2026

Auto-promotion from staging CI

Batch range: a53eac5c2dec6b6cd5c08189086093fde64aa9cb..030c09a68e22f1f5606d5a80abb1783b6d6deada
Promotion branch: staging-promote/030c09a6-24558109707
Base: staging-promote/729449fa-24553476964
Triggered by: Staging CI batch at 2026-04-17 09:30 UTC

Commits in this batch (66):

Current commits in this promotion (2)

Current base: staging-promote/729449fa-24553476964
Current head: staging-promote/030c09a6-24558109707
Current range: origin/staging-promote/729449fa-24553476964..origin/staging-promote/030c09a6-24558109707

Auto-updated by staging promotion metadata workflow

Waiting for gates:

  • Tests: pending
  • E2E: pending
  • Claude Code review: pending (will post comments on this PR)

Auto-created by staging-ci workflow

BroccoliFin and others added 2 commits April 17, 2026 11:55
* feat(cli/logs): add --grep support for filtering log output

- Add --grep/-g flag for regex filtering (conflicts with --follow)
- Add --ignore-case for case-insensitive matching
- Add --context N to show lines around matches
- Implement filter_lines() with regex crate
- Add 6 comprehensive tests
- Update documentation with examples

Branching from staging as suggested in #371.

* refactor(cli/logs): simplify regex compilation per bot feedback

- Use RegexBuilder::new().case_insensitive(ignore_case) instead of if/else
- Fix test assertion to avoid move issue (single unwrap_err() call)
- Apply cargo fmt formatting

* fix(cli/logs): address maintainer feedback

- Use saturating_add to prevent integer overflow in context calculation
- Add test_filter_lines_with_non_overlapping_context to verify BTreeSet dedup logic

Addresses review comments on PR #1533.
Agents could not create reactive missions (e.g. "log every telegram message")
because of three shortcomings:

1. Cadence was optional and defaulted to "manual" silently — malformed values
   like "every 5 min" were also swallowed and became manual triggers
2. Reactive missions (event/webhook) had a hardcoded 300s cooldown with no way
   to override it via mission_create
3. mission_update and mission_delete existed in code but were not documented in
   the CodeAct preamble or the Tier 0 ActionDef schemas, so the LLM never
   called them

Changes:
- parse_cadence now returns Result and rejects unrecognized strings with a
  readable error so the LLM can correct the call
- mission_create requires cadence (returns error if missing instead of
  defaulting to manual)
- mission_create and mission_update accept guardrail params (cooldown_secs,
  max_concurrent, dedup_window_secs, max_threads_per_day) as top-level fields
- mission_list output now includes cadence and guardrails so misconfigured
  missions are visible
- mission_update and mission_delete added to CodeAct preamble
- Tier 0 ActionDef schemas updated with correct cadence formats and guardrails
- Regression tests for malformed cadence rejection

Changes on review
* chore: cargo fmt
* fix: enforce numeric params to be u64
* fix: address reviewer comments
* chore: divide long strings of comments
* fix: extract_fuardrails overrided existing mission update
* fix: allow event:*:pattern as cadence
* fix: check before storing events
* chore: fix docs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore: add limit to regexbuilder
* chore: homogenize tool description
* fix: add tests
* fix: implement requested fixes

---------

Co-authored-by: Guillermo Alejandro Gallardo Diez <gagdiez@iR2.local>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions github-actions bot added scope: channel/cli TUI / CLI channel scope: docs Documentation size: XL 500+ changed lines risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Apr 17, 2026
@claude
Copy link
Copy Markdown

claude bot commented Apr 17, 2026

Code review

Found 6 issues:

  1. HIGH:90 - Off-by-one error in context window calculation in logs.rs line 1308. The end boundary adds 1 twice, should remove the extra saturating_add(1) call since ranges are exclusive.

  2. MEDIUM:85 - Error type abstraction: strict_u64() and extract_guardrails() use Result<_, String> instead of a strong error enum. Deviates from CLAUDE.md guidance to use thiserror.

  3. MEDIUM:80 - String-typed error messages: errors are plain JSON strings instead of structured error objects. Makes client-side handling harder.

  4. LOW:75 - Regex compiled on every filter_lines() call without caching. While OK for CLI, should cache like mission creation does.

  5. LOW:70 - Event cadence whitespace-only edge case: 'event: : ' passes empty checks but creates a regex matching any input.

  6. LOW:65 - Inefficient context collection in filter_lines: iterates twice, could collect indices during first pass.

Positive findings: excellent caller-level test coverage, strong input validation, no unwrap/expect in production, ReDoS protection via regex size limits, proper async discipline.

Base automatically changed from staging-promote/729449fa-24553476964 to main April 18, 2026 01:00
@henrypark133 henrypark133 merged commit 030c09a into main Apr 18, 2026
35 of 48 checks passed
@henrypark133 henrypark133 deleted the staging-promote/030c09a6-24558109707 branch April 18, 2026 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: low Changes to docs, tests, or low-risk modules scope: channel/cli TUI / CLI channel scope: docs Documentation size: XL 500+ changed lines staging-promotion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants