salience: client-side pad expansion, drop AppendImage
Mirrors the vLLM-side rewrite. AppendImage is gone; images now ride along on Generate via a parallel `images` list. - Productionize `qwen3_image_token_count` (was test-only). Image leaf computes its IMAGE_PAD count eagerly at construction from height/width; `token_count` is no longer "0 until the server tells us." - WireChunk shrinks to a single `Tokens(Vec<u32>)` variant — vision blocks live inline in the token stream. - `wire_chunks` now returns `(Vec<WireChunk>, Vec<WireImage>)`. `WireImage` carries `pad_start` / `pad_end` (absolute positions in the full walk) alongside bytes + mime. - `assemble_prompt` returns `(chunks, images, match_upto)`. - `stream_session_mm` / `run_session_generate` take the parallel images list, filter to those past `match_upto`, and pass them in `GenerateRequest.images` as `pb::ImageAttachment` entries. - Drop `SessionHandle::append_image`, `ContextState::commit_image_token_counts`, `StreamToken::ImageAppended`, the WireChunk::Image branch in `learn.rs`, and the now-empty `prompt_to_chunks` helper. - Add 'v' toggle on the conscious-screen tree to render token-id vectors in place of text content (debug-aid: lets us see what the server actually has when output is suspicious). - Comment out the subconscious-trigger spawn loop — Kent had this disabled before; it had crept back into running. Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
4feebb7bc4
commit
fe232cf292
12 changed files with 468 additions and 306 deletions
|
|
@ -693,7 +693,7 @@ impl Mind {
|
|||
}
|
||||
});
|
||||
|
||||
let mut sub_handle: Option<tokio::task::JoinHandle<()>> = None;
|
||||
let _sub_handle: Option<tokio::task::JoinHandle<()>> = None;
|
||||
|
||||
// Start finetune scoring at startup (scores existing conversation)
|
||||
if !self.config.no_agents {
|
||||
|
|
@ -743,6 +743,7 @@ impl Mind {
|
|||
_ = tokio::time::sleep(timeout), if !has_input => _dmn_expired = true,
|
||||
}
|
||||
|
||||
/*
|
||||
if !self.config.no_agents {
|
||||
if sub_handle.as_ref().map_or(true, |h| h.is_finished()) {
|
||||
let sub = self.subconscious.clone();
|
||||
|
|
@ -754,6 +755,7 @@ impl Mind {
|
|||
}));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Check for pending user input → push to agent context and start turn
|
||||
let pending = self.shared.lock().unwrap().take_pending_input();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue