From 1bac2a540fde768d61c50eb625ced8b8ff45850e Mon Sep 17 00:00:00 2001 From: JuliaEdom Date: Sun, 19 Jul 2026 15:48:48 +0300 Subject: [PATCH] chore: ignore internal scratch (.claude, *_local, root notes) + fix exactly-once comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .gitignore (N-6/P5.2): add /.claude/, /*_local/, and the internal root-level notes/decks currently untracked-but-unignored (G2_AUDIT_REPORT.md, desc_for_julia*.md, new_plen_*, pii-deny-gate.md, s6-bridge-design.md, slice5-pg-control-plane.md, presentation*.html). Untracked-but-unignored is one `git add -A` from a public repo; no tracked file is shadowed. stream_processor (N-5/P5.1): the "Checkpointing for exactly-once" comment was misleading — checkpointing gives at-least-once source replay; the effective exactly-once at the serving layer is completed by the bridge's idempotent, event_id-keyed apply (bridge_consumer.py), which the comment now states. Co-Authored-By: Claude Fable 5 --- .gitignore | 14 +++++++++++++- src/processing/flink_jobs/stream_processor.py | 6 +++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3ecfb6be..dbd971d0 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 5da5e2b6..c046cd00 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")))