Skip to content

Conversation

@shivasurya
Copy link
Owner

@shivasurya shivasurya commented Nov 9, 2025

Summary

Adds Phase 2 propagation primitives (string operations) and preset bundles for common use cases.

Changes

  • Implemented string_concat and string_format propagation
  • Added PropagationPresets (minimal, standard, comprehensive, exhaustive)
  • Added global configuration for default propagation/scope

Testing

  • 137 tests, 99% coverage
  • All linters pass

Stacked On

PR #354

@safedep
Copy link

safedep bot commented Nov 10, 2025

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

No dependency changes detected. Nothing to scan.

This report is generated by SafeDep Github App

Copy link
Owner Author

shivasurya commented Nov 10, 2025

Merge activity

  • Nov 10, 4:23 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Nov 10, 4:28 AM UTC: Graphite rebased this pull request as part of a merge.
  • Nov 10, 4:29 AM UTC: @shivasurya merged this pull request with Graphite.

@shivasurya shivasurya changed the base branch from pr-03-python-dsl-dataflow-phase1 to graphite-base/355 November 10, 2025 04:26
@shivasurya shivasurya changed the base branch from graphite-base/355 to main November 10, 2025 04:27
## Summary
- Implemented Phase 2 propagation primitives (string operations)
- Added PropagationPresets for common use cases
- Added global configuration system for defaults

## New Components
**codepathfinder/propagation.py:**
- Added propagates.string_concat()
- Added propagates.string_format()

**codepathfinder/presets.py:**
- PropagationPresets.minimal() - 2 primitives, ~40% coverage
- PropagationPresets.standard() - 5 primitives, ~75-80% coverage (recommended)
- PropagationPresets.comprehensive() - All MVP primitives
- PropagationPresets.exhaustive() - Future: all phases

**codepathfinder/config.py:**
- PathfinderConfig singleton
- set_default_propagation()
- set_default_scope()
- flows() now uses global defaults when not specified

## Testing
✅ 137 tests pass (38 new tests for Phase 2, presets, config)
✅ 99% coverage (exceeds 95% requirement)
✅ Black, ruff, mypy: all clean

## Breaking Change
- flows() now uses global default propagation/scope when not specified
- Previous behavior: empty propagation by default
- New behavior: uses get_default_propagation() (empty by default, can be configured)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
@shivasurya shivasurya force-pushed the pr-04-python-dsl-propagation-phase2 branch from f5cae1d to a0c019d Compare November 10, 2025 04:28
@shivasurya shivasurya merged commit f6350bb into main Nov 10, 2025
1 check passed
@shivasurya shivasurya deleted the pr-04-python-dsl-propagation-phase2 branch November 10, 2025 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants