PageIndex/pageindex
mountain a139bd53d9 merge upstream/main into dev; port #188 into the index pipeline
main advanced (litellm 1.84.0 #342, #188 TOC fixes, #281, README) while
dev turned pageindex/page_index.py and utils.py into deprecation shims
over pageindex/index/*. Both sides touched those two files, hence the
conflict.

Resolution:
- Keep dev's shims for the two top-level modules (the real implementation
  lives in pageindex/index/*). requirements.txt auto-merged to
  litellm==1.84.0.
- #188 ("prevent KeyError crash and context exhaustion in TOC
  processing") landed on main's top-level page_index.py, which is now a
  shim on dev — so its fixes were NOT in dev's index/page_index.py.
  Ported them into pageindex/index/page_index.py (preserving dev's
  IndexConfig/bool integration): .get() on the TOC check functions +
  detect_page_index, incremental-chat_history retry loops in
  extract_toc_content and toc_transformer, truncation moved before the
  loop, .get('table_of_contents', []) and the single_toc_item_index_fixer
  None guard.
- Repoint #188's merged test (tests/test_issue_163.py) at
  pageindex.index.page_index so its patches hit the module where the code
  now lives (they were silently hitting the shim → real LLM calls).

Full suite: 158 passed, 2 skipped.

Claude-Session: https://claude.ai/code/session_01Kx5DgKbhK1N8autqXH8SmS
2026-07-07 16:34:02 +08:00
..
backend style(cloud): annotate best-effort response-close in query_stream cleanup 2026-07-07 16:02:33 +08:00
index merge upstream/main into dev; port #188 into the index pipeline 2026-07-07 16:34:02 +08:00
parser refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
storage fix: dedup race, cwd-relative image paths, unencoded legacy URLs 2026-07-07 12:06:58 +08:00
__init__.py refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
agent.py fix: resolve five P1 defects from the SDK review 2026-07-07 10:12:51 +08:00
client.py refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
cloud_api.py fix(cloud_api): restore legacy is_retrieval_ready swallow-on-error contract 2026-07-07 15:48:49 +08:00
collection.py refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
config.py fix(llm): configurable per-call litellm params instead of mutating the global 2026-06-25 17:09:43 +08:00
errors.py fix(cloud): align cloud/local backend contracts and harden the HTTP layer 2026-07-07 09:40:09 +08:00
events.py feat: add PageIndex SDK with local/cloud dual-mode support (#207) 2026-04-08 20:21:58 +08:00
page_index.py refactor(index): dedupe the copied indexing pipeline behind deprecation shims 2026-07-07 10:42:23 +08:00
page_index_md.py refactor(index): dedupe the copied indexing pipeline behind deprecation shims 2026-07-07 10:42:23 +08:00
retrieve.py refactor(index): dedupe the copied indexing pipeline behind deprecation shims 2026-07-07 10:42:23 +08:00
tokens.py refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
types.py refactor(sdk): typed returns, protocol contract, parser layering 2026-07-07 12:15:34 +08:00
utils.py refactor(index): dedupe the copied indexing pipeline behind deprecation shims 2026-07-07 10:42:23 +08:00