mirror of
https://github.com/teamchong/pxpipe.git
synced 2026-07-22 02:02:51 +02:00
fe6b0ec2a8
Collapsed-history images now carry who-said-what AND when, instead of leaving the model to reconstruct it from a flattened, role-ambiguous blob (which led it to resurface the opening turn as if it were the live request). - Turn-index recency anchor: each collapsed turn serializes as <user t="N"> / <assistant t="N"> with an ABSOLUTE turn index (larger N = more recent), so the model can tell turn 1 from turn 60. Absolute (never "N ago"/"i of total") so frozen chunks stay byte-identical and keep hitting the prompt cache. Mirrored on the GPT path. (history.ts, openai-history.ts, openai.ts) - colorByRole: role tags are tinted via a parallel "slot string" carried from serialize time (structure-through), replacing the parse-back that miscolored a body quoting a literal <tag>. (render.ts, history.ts) - neutralizeSentinel: a pre-existing ↵ (U+21B5) in content is swapped to ⏎ (U+23CE) in render-prep so reflow packs newlines instead of bailing to a raw, unpacked render — common when the content is about pxpipe itself. Render-only; originals preserved. (render.ts, transform.ts, history.ts, openai-history.ts) - Per-model GPT vision/render profiles, retunable via PXPIPE_GPT_PROFILES, behavior-identical to the old hardcoded values. (gpt-model-profiles.ts) Review fixes folded in: - Banner intro/outro consolidated to a single source of truth; the GPT path now aliases the Anthropic constant instead of byte-copying it (can't drift). - slotCopyBody neutralizes literal slot markers to a width-equivalent control char (U+0003), not a space the minifier would strip and misalign. 459 tests pass; tsc clean.