diff --git a/.gitignore b/.gitignore index 3ecfb6b..dbd971d 100644 --- a/.gitignore +++ b/.gitignore @@ -126,6 +126,10 @@ agentflow_demo_api.duckdb* # Internal working notes / autonomous-session artifacts — kept locally, not published. # These are process/handoff/scratch docs, not product or engineering documentation. +# Claude Code config/session state and any *_local/ scratch dir are kitchen, never +# product — untracked-but-unignored is one `git add -A` from a public repo. (N-6/P5.2) +/.claude/ +/*_local/ /AGENT_STATE.md /AUTOPILOT.md /BACKLOG.md @@ -134,7 +138,15 @@ agentflow_demo_api.duckdb* /all-open-questions-closure-plan.md /close-gaps-plan.md /road-to-9.8.md -/desc_for_julia.md +/desc_for_julia*.md +/G2_AUDIT_REPORT.md +/new_plen_*.md +/pii-deny-gate.md +/s6-bridge-design.md +/slice5-pg-control-plane.md +# Root-level scratch presentation decks (internal drafts, not product; no tracked +# code references them). Product docs live under docs/ and examples/. +/presentation*.html /fable_*.md /next-session-*.md /second-opinion-*.md diff --git a/src/processing/flink_jobs/stream_processor.py b/src/processing/flink_jobs/stream_processor.py index 5da5e2b..c046cd0 100644 --- a/src/processing/flink_jobs/stream_processor.py +++ b/src/processing/flink_jobs/stream_processor.py @@ -251,7 +251,11 @@ def map(self, value: tuple[str, str]) -> str | None: def build_pipeline() -> StreamExecutionEnvironment: env = StreamExecutionEnvironment.get_execution_environment() - # Checkpointing for exactly-once + # Checkpointing gives at-least-once source replay on recovery. It is NOT + # Kafka-transactional exactly-once (the events.validated sink is built with no + # DeliveryGuarantee); the effective exactly-once seen at the serving layer is + # completed downstream by the bridge's idempotent, event_id-keyed apply — see + # src/processing/bridge_consumer.py. env.enable_checkpointing(30_000) # 30s env.get_checkpoint_config().set_min_pause_between_checkpoints(10_000) env.set_parallelism(int(os.getenv("FLINK_PARALLELISM", "2")))