Repository navigation
Auditoria da épica #624: correções da revisão, search-text sem Python, paridade no gate e imagem pelos nossos encoders kitty, iTerm2 e sixel - #628
Merged
Conversation
…tead of ranging, and a negated word or `-o:` is refused instead of losing its sign; `c:rg` on a dictionary of single letters holds every letter
…ows carry code 0 against an empty dictionary, and the check knows which rows are absent
… far apart the word index puts them
…ink or a hard link too, not only the same path
… potion corpus in process, any other model through its query embedder, no python on the potion path
…s and fails the potion parity instead of skipping it; the headless eval exits 2 when no chunk carries both a label and a rank
…minal its protocol and cell size; a terminal with none gets block glyphs chosen per cell in Oklab from the set its font carries
…ase gate resolves a relative corpus before it changes directory, search-text names the embedder when the model_hash check is skipped, and the type-ahead keeps one hit per label by sorting instead of hashing
…ders again, without ratatui-image: the terminal is asked once (kitty query, XTVERSION, cell size, DA1) and read with poll and a deadline, no thread left on stdin; inside tmux only the sixel tmux draws itself; the cells an image leaves are drawn again
…ed (unix) and in the tests, and gatecheck fetches the potion table, checked against its lfs pointer, before the tests that need it
…itted demo/starter/docs.jsonl instead of reading a local build the checkout does not have
…e prefix is an empty value instead of text, an empty contains is an error outside the parser too, the model_hash notice prints only when the check was really skipped, a late terminal reply is not typed, the image a new corpus or a resize leaves is deleted, and a flat cell draws blank with the sRGB table
…tion in process, presetqry.py for any other model
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Parte de #606, dentro de #603 e da épica #624. Toca também #608: sem a
ratatui-image, ocargo deny checksegue verde sem mudança nodeny.toml.Resumo
Auditoria do PR #627 e da épica #624: os achados da revisão de código corrigidos com teste, a pendência da #205 (
search-textainda abria Python) fechada, a paridade do tokenizer e do decoder AV1 dentro do gate de release, e a imagem da abaaskdesenhada pelos nossos encoders Kitty, iTerm2 e Sixel, com o terminal perguntado por uma consulta nossa, como a #606 pede, e um codec de glifos próprio onde o terminal não desenha pixels.Nove commits. A base é a
patterns(#627); ao mergear o #627 este PR passa a apontar para amain.Itens
1. Sintaxe Scryfall: termos que eram lidos errado
rust/engine/src/scalars/query.rs,rust/engine/src/scalars/filter.rskw:hasteera quebrado em letras (h,a,s...); agora um termo de lista fica inteiro.r!=commondava erro de operador;!=emenumcompara, só>,>=,<,<=são intervalo.-o:flyinge-palavraperdiam o sinal de negação em silêncio; agora são recusados com erro claro.-1/-1continua texto.c:rgnum dicionário de letras únicas (cores) exige cada letra; uma letra que o dicionário não tem não casa nada.2. Coluna
enumsem valor em nenhuma linharust/format/src/sections/scalars/{mod.rs,decode.rs,from_json.rs}enumvazia (dicionário com zero entradas) falhava no encode, porque a conferência de códigos não sabia quais linhas estavam ausentes.check_codesrecebe a validade: linha presente exige código dentro do dicionário, linha ausente exige código 0. O decoder passa a mesma validade.[{"loyalty":null},{}].3. Rótulo repetido no type-ahead
rust/engine/src/labels/mod.rsexact()só conferia duplicata nos últimos 64 hits; um rótulo com duas palavras que começam com a consulta podia aparecer duas vezes quando o índice de palavras as separava.4.
urna scalars --outapontando para o próprio corpusrust/clitui/src/cmd/scalars.rssame_file()comparadev+inono unix, caminho canônico nos demais.5. #205:
search-textsem Pythonrust/clitui/src/cmd/{embed_gate.rs,search_text.rs},rust/clitui/src/cli.rs,rust/clitui/tests/embedder_resolution.rssearch-textsempre chamavasearchtxt.py, mesmo em corpus potion.embed_and_routedeaskeretrieve: potion em processo, qualquer outro modelo pelo embedder de consulta. Mantém--skip-model-hash-checkpara corpus legado.URNA_PYTHONapontando para um caminho inexistente: a busca responde.6. Gate de release
rust/clitui/src/cmd/potion.rs,tool/tasks/fullcheck.sh,rust/images/parity/Cargo.lock,rust/clitui/src/tui/app/headless.rsparity: roda os workspacesrust/neural/parityerust/images/paritycontra o corpus de cartas apontado porURNA_CARDS_CORPUS; sem a variável o passo é reportado como pulado, não como passado.URNA_REQUIRE_PARITY=1(o fullcheck seta).Cargo.lockderust/images/parityestava preso à versão 0.1.0 das crates; atualizado.urna tui --evalsai com código 2 quando nenhum chunk carrega rótulo e rank, em vez de dividir por zero;--snapshot/--evalexigem coluna de rótulo no schema.7. Imagem da aba
ask(#606)rust/clitui/src/tui/graphics/{mod.rs,probe.rs,glyphs.rs,kitty.rs,iterm.rs,sixel.rs,png.rs,base64.rs},rust/clitui/src/tui/app/{blocks.rs,media.rs,mod.rs,draw.rs,headless.rs},rust/clitui/Cargo.toml,Cargo.lockCSI 16 t(célula) e DA1 por último (Sixel; toda resposta termina nele). A leitura é compolle prazo de 1 s, na própria thread: terminal que não responde custa o prazo e não deixa leitor no stdin.ratatui-image(45 crates) e aimagesaem do lock.libc, já na árvore, entra direto para opoll.AlwaysUpdate) e as que ela cobre ficam de fora da diff (Skip); toast, painel de instalação ou seletor por cima escondem a imagem naquele frame; resize reenvia.URNA_GLYPHSpara sextantes e octantes.CSI 2Jdireto, não comTerminal::clear, que consulta a posição do cursor e trava em terminal que não responde.8. Correções da revisão do PR
rust/engine/src/scalars/{query.rs,filter.rs},rust/engine/src/labels/mod.rs,tool/tasks/fullcheck.sh,rust/clitui/src/cmd/{embed_gate.rs,payload.rs},rust/clitui/src/tui/app/media.rsc:""casava todas as linhas; valor vazio agora é erro, e o filtro também se protege.fullcheck.shresolveURNA_CORPUSeURNA_CARDS_CORPUSrelativos antes docd; antes, a paridade abria o caminho a partir do diretório de cada crate.fit.search-text --skip-model-hash-checkescreve no stderr qual embedder rodou.exact()deduplica ordenando por(id, posição)em vez de HashMap por tecla.O que ficou de fora
ask: problemas levantados (barras entre hits, nomes cortados, ficha sem hierarquia, facetas cortadas), nenhum corrigido aqui.cleanhostnão rodou localmente por ambiente (VM de 24 GB e montagem do container); fica para o CI.data/gitignore/*, o.gitignore,rustfmt.tomlenixosship.yml.Validação
cargo fmt --all --check,cargo clippy(workspace e-p urna --no-default-features): limpos.cargo test --workspace: 639 passaram, 0 falharam.cargo deny check: advisories, bans, licenses e sources ok.tool/tasks/fullcheck.sh: exit 0, comURNA_CARDS_CORPUSrelativo apontando para o mtg-urna-benchmark e o gate de regressão no corpus fixado;cleanhostpulado (URNA_CLEANHOST=0, VM de 24 GB), fica com o CI.doctor_through_a_pipe_has_no_escapes_and_names_setupfalhava também napatterns, porque o checkout traz a tabela do potion como ponteiro do lfs; o gatecheck agora rodatool/tasks/getpotion.sh(Hugging Face na revisão fixada, conferido contra o oid do ponteiro) antes dos testes.Primeiro ponto visível
[POCS]urna tui <corpus>, abaask, buscar uma carta: a linha de status mostraimage N ms (kitty|iterm2|sixel|blocks), que é o que o terminal aceitou, e a carta aparece no painel por esse caminho.