Skip to content

fix: bootstrap repo-root sys.path in operator scripts missing it - #541

Closed
seonghobae wants to merge 894 commits into
mainfrom
worktree-fix-scripts-pythonpath-bootstrap
Closed

fix: bootstrap repo-root sys.path in operator scripts missing it#541
seonghobae wants to merge 894 commits into
mainfrom
worktree-fix-scripts-pythonpath-bootstrap

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • scripts/backfill_post_keymen.py and scripts/requeue_failed_post_content.py were the only two entries in scripts/ without the repo-root sys.path insert their siblings already use, so python scripts/<name>.py failed with ModuleNotFoundError: backend unless a caller manually exported PYTHONPATH=. first.
  • Found while re-running backfill_post_keymen.py to refresh a stale reason_no_live_client role row for a specific post now that the local orchestrator/searxng services are reachable — the script itself couldn't even start without the workaround.

Test plan

  • python -m py_compile both edited scripts
  • Confirmed the fix removes the ModuleNotFoundError when running the script from repo root without PYTHONPATH set

🤖 Generated with Claude Code


Open in Devin Review

Forward-only conflict resolution uses protected main as the tree baseline and reapplies the exact twelve-file Event Lineage delta. This preserves current main product/security changes plus direction, dates, evidence, accessibility, Figma/Storybook, i18n, cycle safety, changelog, and stabilization-plan contracts without rewriting history or dropping capability.
…ame-evidence-lineage' into repair/pr258-current
# Conflicts:
#	frontend/src/App.tsx
#	lineageweave/post_summary.py
#	tests/test_post_summary.py
seonghobae and others added 21 commits August 24, 2026 04:07
* fix: require explicit location evidence in 5W1H

* refactor: stop loading unused 5W1H counterparties

* refactor: remove stale 5W1H location lookup
…e last page

total_count came from count(*) over(), a window function that only
rides along on rows surviving the query's own OFFSET/LIMIT. Once the
offset skipped past every matching row, the query returned zero rows
and total_count silently fell back to 0 even though matches existed --
a routine "user paged past the end" or "a filter change shrank the
result set" scenario. A paginator relying on total_count to detect the
overshoot would instead see "0 results" and could wrongly conclude
nothing matched.

Extracted the query's ~170-line predicate into a shared
_list_posts_predicate_sql variable (byte-identical to the inline text
it replaces) so a small fallback count(*) query -- used only when the
main page comes back empty -- can reuse it without duplicating that
much SQL. Renumbers the shared predicate's $10/$11 to $7/$8 since the
fallback has no offset/limit/sort parameters of its own.

Regression test confirmed RED (reported 0 instead of the real count)
before GREEN. Also updated the repo's static SQL-suppression count
contract (37 -> 38) for the new reviewed nosemgrep site.

Found by an Explore agent hunting for a different bug class after
the "unfiltered-then-filtered ABAC leak" well ran dry this session.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
A key-set diff of i18n.ts's four non-English locale blocks found 117
keys added for Korean that were never mirrored into zh/ja/vi -- t()
silently falls back to the raw English key when a translation is
missing, and no test catches it since the existing i18n test only
checks curated key lists a component's keys have to be manually added
to (AdminPanel's never were).

Closed the 20 keys AdminPanel.tsx actually uses (control center,
endpoint catalog, tenant settings, board/calendar/entity navigation,
and related copy) with zh/ja/vi translations matching this file's
established terminology (Tenant, Workspace, Board, Admin), and added a
curated adminPanelLabels parity test following the exact pattern the
existing workspace/Event Lineage label tests already use. Confirmed
RED (falls back to the English key) before GREEN.

The remaining 97 ko-only keys (used by components not yet audited)
are intentionally not touched here -- translating 97 keys x 3 locales
without a dedicated review pass risks shipping worse translations than
the visible-gap status quo, and is tracked as a separate follow-up in
the gap baseline rather than forced through this checkpoint.

Found by an Explore agent hunting for a non-ABAC-leak bug class.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
* fix: gate image summaries on persisted vision evidence

* fix: bind summaries to current source evidence

* fix: fence post content worker claims

* fix: fence current vision projections

* fix: serialize summary catalog writes

* fix: separate vision proposals from row locks

* fix: reuse prepared sibling organization aliases

* fix: keep prepared hierarchy aliases distinct
The previous checkpoint closed the 20 keys AdminPanel.tsx references
as literal t("...") calls, but missed 33 more: its endpoint-catalog
and navigation-group metadata (ADMIN_LNB_GROUPS, ADMIN_OPERATIONS) is
defined as label/description/note fields on data arrays, rendered via
t(item.label) -- a literal-string grep can't see through the variable
indirection. Two of the 33 (Rankings, Workspace) were written as
unquoted object keys and weren't even in Korean yet.

Found this second slice by grepping the component's own data arrays
directly instead of its t("...") call sites. Translated all 33 into
zh/ja/vi matching the file's established terminology, and extended the
adminPanelLabels parity test to all 53 of AdminPanel's live keys.
Confirmed RED (falls back to English) before GREEN.

~64 other pre-existing ko-only keys (mostly in App.tsx) remain a
separate, tracked, not-yet-closed gap.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
ADR 0049 leftover pair copy names the post and criterion only.
Saved IRT scores stay visible when the evaluation channel is down.
Post-content worker tests pass factory callables without lambda wrappers.
Record exact continuation head 154a13e, leftover next-action close,
leftover-map TypeScript repairs, and the current open-PR SHA listing.
* feat: remember login return path before OIDC redirect (v2.12.19)

Unauthenticated Log in now stores a validated same-origin return
path (ADR 0119 / 0109) before signinRedirect, so a shared /?post=
link still opens that post after callback. Tenant admin settings
stay off the signed-out login shell so tsc -b type-checks.

Independent of leftover-map PRs. Do not invent a leftover score
or a theta. Synthetic fixtures only.

* docs: reuse OIDC deep-link decision

* fix: remember login return path on every OIDC start

Stack onto the workspace branch without force-push. Persist a validated
same-origin path before redirect so a shared post link survives callback
when OIDC state is missing. Admin settings stay unmounted until login.

---------

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
…ions

read_customer_master (GET /api/customer-master, ADR 0125) passed
entity_ids -- the endpoint's broad Customer Master listing, which also
includes entities the account merely *observes* (mentioned in a
visible post, never actually affiliated with) -- into
fetch_relationship_network as its ABAC scope parameter.

fetch_relationship_network's SQL treats corporate_entity_ids exactly
like _can_see_post's `post.corporate_entity_id = any($1)` clause, so
passing the broader observed-inclusive listing let a private post
owned by one of those observed-only entities leak its counterparty
classification into relationship_network -- a real cross-tenant data
leak, not just an over-broad display list.

The pre-existing giant Customer Master contract test
(test_customer_master_returns_authorized_catalog_contract) did not
catch this: its `"Private Other Corp" not in network` assertion passed
only incidentally, because the demo-vs-real-data source-context
eligibility heuristic (SOURCE_POST_ELIGIBILITY_SQL) happened to already
exclude the relevant fixture post for an unrelated reason.

Fix: scope the call to account.corporate_entity_ids (the account's own
real affiliations), net of the same synthetic-only/stale-demo-grant
exclusion (fetch_demo_corporate_entity_ids) the entity tree query just
above it already applies once real source context exists. An initial
fix using the raw account.corporate_entity_ids list (without that
exclusion) still let a stale demo grant leak back in -- caught by the
existing giant contract test failing after the fix, corrected before
this commit.

Added a new focused regression test that deliberately defeats the
demo-vs-real eligibility heuristic (giving both the mentioning and the
mentioned posts real source context) to isolate the ABAC-scoping
behavior being tested, independent of the heuristic. Verified RED
against pre-fix code (both the scope-widening leak and the
observed-corp capture assertion failed), GREEN after. Full suite:
1032 passed, 17 skipped, no regressions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
SourceResearchPanel's load callback had no request-id guard on its
fetchPostSourceResearch call. Switching posts quickly (or the
runResearch -> load refresh racing a still-in-flight initial load)
could let an earlier post's response resolve after the panel had
already moved to a newer post, rendering the wrong post's persisted
source research.

Added the same requestIdRef counter/compare guard already used
elsewhere in App.tsx (historyRequestIdRef, relatedRequest,
postsRequest): each call to load() claims a new request id, and every
state-setting branch (success, error, and the loading finally) checks
it's still current before applying.

Found by the same lineageweave-bug-sweep Workflow finder that surfaced
the Customer Master ABAC leak fixed in the previous commit. Added a
regression test that starts a slow post-1 fetch, switches to post-2
before it resolves, then resolves the stale post-1 response and
asserts its lead never renders. Confirmed RED against pre-fix code
(the stale lead rendered), GREEN after. Full frontend suite: 361
passed, lint clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011EP69xAyLaJxa6oaF6D9eq
Root-caused the reader-reported Event Lineage entanglement bug:
reconstruct_group_key's process_unit_id fallback creates a
multi-thousand-post mega-group, and channels.py's text_similarity_score
is difflib character-overlap rather than embeddings, so temporally-close
but topically-unrelated posts clear the 0.3 min_fused_score floor when
no AdjudicationClient is configured. Independent of the open PR wiring
AdjudicationClient into rebuild_lineage(); both causes above remain open
after that PR merges.
Second gap-baseline i18n slice: 22 keys used by the Board hand-off
prompt, R&R semantic-relationship predicates (Responsible for,
Supports, Organization member/unit of, Sub-organization of), the
evidence workspace, and AdminPanel's Account/Permissions/routes
fields were ko-only, silently falling back to the raw English key
in zh/ja/vi. Extends the i18n.test.ts parity check the same way the
prior AdminPanel slice did. Source-lineage-hints-panel keys are a
separate concurrent slice on this branch, not touched here.
backfill_post_keymen.py and requeue_failed_post_content.py were the only
scripts/ entries without the repo-root sys.path insert their siblings use,
so `python scripts/<name>.py` failed with ModuleNotFoundError: backend
unless a caller manually exported PYTHONPATH=. first. Match the existing
pattern instead of documenting the workaround.

Found while re-running backfill_post_keymen.py to refresh a stale
reason_no_live_client role row now that the local orchestrator/searxng
services are reachable.
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 306 files, which is 206 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f16216e1-d119-4acf-9445-e995082dbc40

📥 Commits

Reviewing files that changed from the base of the PR and between ef6f5a5 and 3d93ea9.

⛔ Files ignored due to path filters (2)
  • frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (306)
  • .dockerignore
  • .github/workflows/repair-global-ask-pnpm-v2.yml
  • .github/workflows/tests.yml
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.d/2.12.19-oidc-login-return-remember.md
  • CHANGELOG.d/2.12.6-frontend-build-gate.md
  • CHANGELOG.d/2.12.6-provider-error-boundary.md
  • CHANGELOG.d/2.12.6-related-posts-unavailable.md
  • CHANGELOG.d/2.12.6-remove-self-modifying-repair-workflows.md
  • CHANGELOG.d/2.12.6-temporal-semantic-order.md
  • CHANGELOG.d/2.12.7-lineage-dag-evidence.md
  • CHANGELOG.d/2.16.1-planned-facility-relation.md
  • CHANGELOG.d/fivew1h-empty-evidence-guidance.md
  • CHANGELOG.d/global-ask-history-compose-replay.md
  • CHANGELOG.d/image-evidence-queue.md
  • CHANGELOG.d/post-content-explicit-retry.md
  • CHANGELOG.d/source-identity-eligibility.md
  • CHANGELOG.d/synthetic-seed-source-context.md
  • CHANGELOG.md
  • add_translations.py
  • backend/Dockerfile
  • backend/app/analysis_run_ingestion.py
  • backend/app/analysis_run_start.py
  • backend/app/auth.py
  • backend/app/config.py
  • backend/app/corporate_entity_ingestion.py
  • backend/app/customer_hint_ingestion.py
  • backend/app/demo_scope.py
  • backend/app/entity_relationship_ingestion.py
  • backend/app/five_w1h_ingestion.py
  • backend/app/global_ask_history.py
  • backend/app/issue_ticket_ingestion.py
  • backend/app/keyman_ingestion.py
  • backend/app/knowledge_graph.py
  • backend/app/lineage_ingestion.py
  • backend/app/main.py
  • backend/app/organization_name_resolution_ingestion.py
  • backend/app/post_ask_history.py
  • backend/app/post_chat_ingestion.py
  • backend/app/post_content_queue.py
  • backend/app/post_content_worker.py
  • backend/app/post_eligibility.py
  • backend/app/post_evaluation_ingestion.py
  • backend/app/post_summary_ingestion.py
  • backend/app/ranking_ingestion.py
  • backend/app/report_ingestion.py
  • backend/app/source_research_ingestion.py
  • backend/tests/test_api.py
  • backend/tests/test_auth_jwks.py
  • docker-compose.yml
  • docker/keycloak/Dockerfile
  • docker/keycloak/realm-export.json
  • docker/keycloak/themes/lineageweave/login/resources/css/lineageweave.css
  • docker/keycloak/themes/lineageweave/login/theme.properties
  • docker/postgres-init/migrate.sh
  • docker/searxng/settings.yml
  • docs/adr/0002-figma-access-boundary.md
  • docs/adr/0003-fast-mlsirm-report-integration.md
  • docs/adr/0018-related-nodes-team-org-walk.md
  • docs/adr/0022-authorized-tepp-start.md
  • docs/adr/0040-source-state-provenance.md
  • docs/adr/0042-source-hints-before-customer-binding.md
  • docs/adr/0049-leftover-pair-report-ui.md
  • docs/adr/0052-plain-orchestrator-semantic-evidence.md
  • docs/adr/0063-third-normal-form-bookmarks.md
  • docs/adr/0090-global-ask-lineage-timeline-expansion.md
  • docs/adr/0098-valkey-backed-post-content-ingestion.md
  • docs/adr/0105-mathematical-script-semantic-normalization.md
  • docs/adr/0109-oidc-deep-link-state-recovery.md
  • docs/adr/0114-stale-summary-buyer-continuity.md
  • docs/adr/0115-explicit-terminal-content-retry.md
  • docs/adr/0119-retire-buyer-terminology.md
  • docs/adr/0120-two-word-database-identifiers.md
  • docs/adr/0121-mhtml-source-body-resolution.md
  • docs/adr/0123-provider-error-boundary.md
  • docs/adr/0124-operational-controlled-vocabulary-semantic-layer.md
  • docs/adr/0125-customer-master-scope-facets.md
  • docs/adr/0126-global-ask-conversation-history.md
  • docs/adr/0127-role-affiliation-catalog-identity.md
  • docs/adr/0128-source-grounded-quantitative-observations.md
  • docs/adr/0129-standards-aligned-event-clue-ontology-profile.md
  • docs/adr/0130-source-commercial-context-hints.md
  • docs/adr/0131-explicit-organization-project-relations.md
  • docs/adr/0132-tenant-identity-metadata.md
  • docs/adr/0133-source-reference-research-agent.md
  • docs/adr/0134-token-backed-exception-messages.md
  • docs/adr/0135-analysis-result-kind-exact-next-actions.md
  • docs/adr/0136-post-ask-conversation-history.md
  • docs/adr/0137-cross-post-customer-identity.md
  • docs/adr/0141-catalog-unresolved-diagnosability.md
  • docs/adr/0142-planned-facility-project-evidence.md
  • docs/adr/0143-lineage-isolation-reason.md
  • docs/adr/0144-superseded-index-migration-replay.md
  • docs/doctoring/CUSTOMER_MASTER_SCOPE_REFERENCES.md
  • docs/doctoring/DESIGN_TOKEN_REFERENCES.md
  • docs/image-content-schema.md
  • docs/lineage-bi-research-notes.md
  • docs/ontology/lineageweave-kg.ttl
  • docs/ontology/lineageweave-shapes.ttl
  • docs/product-technical-gap-baseline.md
  • docs/storybook-inventory.md
  • docs/superpowers/plans/2026-08-21-forward-only-fast-stabilization.md
  • frontend/.dockerignore
  • frontend/.gitignore
  • frontend/index.html
  • frontend/package.json
  • frontend/src/App.css
  • frontend/src/App.test.tsx
  • frontend/src/App.tsx
  • frontend/src/AskAgentPanel.stories.tsx
  • frontend/src/ChatPanel.stories.tsx
  • frontend/src/KnowledgeGraph.css
  • frontend/src/KnowledgeGraph.stories.tsx
  • frontend/src/KnowledgeGraph.test.tsx
  • frontend/src/KnowledgeGraph.tsx
  • frontend/src/LineageDag.css
  • frontend/src/LineageDag.css.test.ts
  • frontend/src/LineageDag.stories.tsx
  • frontend/src/LineageDag.test.tsx
  • frontend/src/LineageDag.tsx
  • frontend/src/PostBody.test.tsx
  • frontend/src/PostBody.tsx
  • frontend/src/analysisEvidenceDiagnosis.test.ts
  • frontend/src/analysisEvidenceDiagnosis.ts
  • frontend/src/analysisRunGuidance.test.ts
  • frontend/src/analysisRunGuidance.ts
  • frontend/src/api.test.ts
  • frontend/src/api.ts
  • frontend/src/components/AdminPanel.css
  • frontend/src/components/AdminPanel.test.tsx
  • frontend/src/components/AdminPanel.tsx
  • frontend/src/components/AnalysisRunNextAction.stories.tsx
  • frontend/src/components/AnalysisRunNextAction.test.tsx
  • frontend/src/components/AnalysisRunNextAction.tsx
  • frontend/src/components/BuyerNav.tsx
  • frontend/src/components/CitationChip.test.tsx
  • frontend/src/components/CutoffKnownBody.stories.tsx
  • frontend/src/components/FiveW1H.test.tsx
  • frontend/src/components/FiveW1H.tsx
  • frontend/src/components/GlobalSearch.stories.tsx
  • frontend/src/components/GlobalSearch.test.tsx
  • frontend/src/components/GlobalSearch.tsx
  • frontend/src/components/LeftoverPairButton.stories.tsx
  • frontend/src/components/LeftoverPairButton.tsx
  • frontend/src/components/LineageDag.stories.tsx
  • frontend/src/components/PopupCloseButton.test.tsx
  • frontend/src/components/PopupCloseButton.tsx
  • frontend/src/components/RoleEvidence.stories.tsx
  • frontend/src/components/RoleEvidence.test.tsx
  • frontend/src/components/RoleEvidence.tsx
  • frontend/src/components/SourceResearchPanel.test.tsx
  • frontend/src/components/SourceResearchPanel.tsx
  • frontend/src/components/SummaryStatus.stories.tsx
  • frontend/src/components/SummaryStatus.test.tsx
  • frontend/src/components/SummaryStatus.tsx
  • frontend/src/components/WorkspaceNav.stories.tsx
  • frontend/src/components/WorkspaceNav.test.tsx
  • frontend/src/components/WorkspaceNav.tsx
  • frontend/src/components/icons.tsx
  • frontend/src/components/roleEvidenceUtils.ts
  • frontend/src/graphLabel.test.ts
  • frontend/src/graphLabel.ts
  • frontend/src/i18n.test.ts
  • frontend/src/i18n.ts
  • frontend/src/index.css
  • frontend/src/indexHtml.test.ts
  • frontend/src/knowledgeGraphCss.test.ts
  • frontend/src/leftoverPairGuidance.test.ts
  • frontend/src/leftoverPairGuidance.ts
  • frontend/src/lineageDagI18n.test.ts
  • frontend/src/lineageDagI18n.ts
  • frontend/src/lineageLayout.test.ts
  • frontend/src/lineageLayout.ts
  • frontend/src/main.test.tsx
  • frontend/src/mobileHeaderCss.test.ts
  • frontend/src/oidcReturnUrl.test.ts
  • frontend/src/popupLayoutCss.test.ts
  • frontend/src/postBodyDisplay.test.ts
  • frontend/src/postBodyDisplay.ts
  • frontend/src/productExceptionCopy.test.ts
  • frontend/src/productExceptionCopy.ts
  • frontend/src/sourceLineageHints.test.ts
  • frontend/src/sourceLineageHints.ts
  • frontend/src/styles/tokens.css
  • frontend/src/styles/tokens.test.ts
  • frontend/vite.config.ts
  • lineageweave/adjudication_client.py
  • lineageweave/affiliate_tree.py
  • lineageweave/caldav_client.py
  • lineageweave/chunking.py
  • lineageweave/commitment_extraction.py
  • lineageweave/corporate_hierarchy_inference.py
  • lineageweave/customer_hint_resolution.py
  • lineageweave/customer_identity_judgment.py
  • lineageweave/entity_relationship_classification.py
  • lineageweave/five_w1h.py
  • lineageweave/http_client.py
  • lineageweave/image_content.py
  • lineageweave/keyman_extraction.py
  • lineageweave/knowledge_graph.py
  • lineageweave/ontology.py
  • lineageweave/organization_name_resolution.py
  • lineageweave/post_chat.py
  • lineageweave/post_content_persistence.py
  • lineageweave/post_evaluation.py
  • lineageweave/post_structure.py
  • lineageweave/post_summary.py
  • lineageweave/rankweave_client.py
  • lineageweave/semantic_hints.py
  • lineageweave/server.py
  • lineageweave/source_artifacts.py
  • lineageweave/source_lineage_hints.py
  • lineageweave/source_research.py
  • lineageweave/synthetic_seed_cleanup.py
  • lineageweave/tepp_client.py
  • lineageweave/voc_evidence.py
  • migrations/0001_initial_schema.sql
  • migrations/0008_post_summary_result.sql
  • migrations/0018_analysis_run_registry.sql
  • migrations/0031_semantic_project_mentions.sql
  • migrations/0035_body_search_prefix.sql
  • migrations/0036_normalized_body_search.sql
  • migrations/0043_bookmark.sql
  • migrations/0044_member_locale_preference.sql
  • migrations/0103_tenant_settings.sql
  • migrations/0104_two_word_database_identifiers.sql
  • migrations/0105_global_ask_conversation_history.sql
  • migrations/0106_account_affiliation_scope_facet.sql
  • migrations/0107_role_affiliation_catalog_identity.sql
  • migrations/0108_post_summary_quantitative_observation.sql
  • migrations/0109_post_summary_source_fact.sql
  • migrations/0110_role_responsibility_software_agent.sql
  • migrations/0111_post_summary_semantic_relationship.sql
  • migrations/0112_event_clue_semantic_projection.sql
  • migrations/0113_broad_source_fact_types.sql
  • migrations/0114_semantic_relationship_standard_predicates.sql
  • migrations/0130_source_commercial_context.sql
  • migrations/0133_source_reference_research.sql
  • migrations/0134_catalog_unresolved_reason.sql
  • migrations/0136_post_ask_conversation_history.sql
  • migrations/0137_cross_post_customer_identity.sql
  • migrations/0138_planned_facility_relation_predicate.sql
  • migrations/0139_post_summary_input_binding.sql
  • migrations/0176_tenant_identity_metadata.sql
  • migrations/rollback/0104_two_word_database_identifiers.sql
  • migrations/rollback/0105_global_ask_conversation_history.sql
  • migrations/rollback/0106_account_affiliation_scope_facet.sql
  • migrations/rollback/0134_catalog_unresolved_reason.sql
  • migrations/rollback/0138_planned_facility_relation_predicate.sql
  • migrations/rollback/0139_post_summary_input_binding.sql
  • pyproject.toml
  • scripts/backfill_post_content.py
  • scripts/backfill_post_keymen.py
  • scripts/backfill_post_summaries.py
  • scripts/import_postgresql_posts.py
  • scripts/queue_post_content_backfill.py
  • scripts/requeue_failed_post_content.py
  • scripts/seed_demo_data.py
  • tests/test_adaptive_orchestration_defaults.py
  • tests/test_analysis_run_start.py
  • tests/test_chat_request_validation.py
  • tests/test_chunking.py
  • tests/test_customer_hint_ingestion.py
  • tests/test_customer_identity_judgment.py
  • tests/test_five_w1h.py
  • tests/test_global_ask_history.py
  • tests/test_global_ask_sources.py
  • tests/test_http_client.py
  • tests/test_http_client_edges.py
  • tests/test_import_postgresql_posts.py
  • tests/test_ingestion_transaction_contracts.py
  • tests/test_knowledge_graph.py
  • tests/test_lineage_ingestion.py
  • tests/test_llm_context.py
  • tests/test_migration_replay.py
  • tests/test_ontology.py
  • tests/test_organization_name_resolution_ingestion.py
  • tests/test_period_report.py
  • tests/test_person_mention_projection.py
  • tests/test_post_ask_history.py
  • tests/test_post_chat.py
  • tests/test_post_chat_ingestion.py
  • tests/test_post_content_api_readiness.py
  • tests/test_post_content_normalization.py
  • tests/test_post_content_persistence.py
  • tests/test_post_content_queue.py
  • tests/test_post_content_worker.py
  • tests/test_post_eligibility.py
  • tests/test_post_summary.py
  • tests/test_public_docstrings.py
  • tests/test_queue_post_content_backfill.py
  • tests/test_rankweave_client.py
  • tests/test_schema.py
  • tests/test_semantic_author_provenance.py
  • tests/test_semantic_hints.py
  • tests/test_source_artifacts.py
  • tests/test_source_lineage_hints.py
  • tests/test_source_research.py
  • tests/test_source_research_knowledge_graph.py
  • tests/test_source_research_security.py
  • tests/test_stale_summary_continuity.py
  • tests/test_static_sql_review_contracts.py
  • tests/test_synthetic_seed_cleanup.py
  • tests/test_tepp_client.py
  • tests/test_tied_organization_no_create.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae

Copy link
Copy Markdown
Contributor Author

이 PR의 유일한 신규 내용(팁 커밋 3d93ea9, sys.path 부트스트랩 12줄)을 신선한 main 위로 체리픽해 #570으로 재상정했습니다 — 이 브랜치는 메가머지(#426) 이후 main과 49개 파일이 충돌하는 ~800개의 스택 커밋을 끌고 있어 리베이스 비용이 내용 대비 과합니다. 스택의 나머지가 필요 없다면 이 PR은 닫으셔도 됩니다 (소유 세션 결정에 맡깁니다).

@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 08:05
@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 08:42
@seonghobae

Copy link
Copy Markdown
Contributor Author

#570이 이 PR의 유일한 신규 내용(팁 커밋 3d93ea9, 12줄)을 fresh main 위에서 동일하게 전달하며 MERGEABLE 상태입니다. 이 브랜치는 main 대비 49파일 충돌·~800 스택 커밋으로 리베이스 비용이 내용을 초과해 닫습니다. 브랜치는 보존됩니다 — 스택의 다른 내용이 필요하면 재개하세요.

@seonghobae seonghobae closed this Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant