Text Generation
Transformers
Safetensors
GGUF
English
qwen3_5_text
code-review
static-analysis
typed-decisions
calibration
systemone
qwen3.5
local-inference
conversational
Instructions to use riposta/CrossbowReviewer-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use riposta/CrossbowReviewer-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="riposta/CrossbowReviewer-9B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("riposta/CrossbowReviewer-9B") model = AutoModelForCausalLM.from_pretrained("riposta/CrossbowReviewer-9B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use riposta/CrossbowReviewer-9B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf riposta/CrossbowReviewer-9B:Q8_0 # Run inference directly in the terminal: llama cli -hf riposta/CrossbowReviewer-9B:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf riposta/CrossbowReviewer-9B:Q8_0 # Run inference directly in the terminal: llama cli -hf riposta/CrossbowReviewer-9B:Q8_0
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf riposta/CrossbowReviewer-9B:Q8_0 # Run inference directly in the terminal: ./build/bin/llama cli -hf riposta/CrossbowReviewer-9B:Q8_0
Use Docker
docker model run hf.co/riposta/CrossbowReviewer-9B:Q8_0
- Llama new
- LM Studio
- Jan
- vLLM
How to use riposta/CrossbowReviewer-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "riposta/CrossbowReviewer-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "riposta/CrossbowReviewer-9B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/riposta/CrossbowReviewer-9B:Q8_0
- SGLang
How to use riposta/CrossbowReviewer-9B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "riposta/CrossbowReviewer-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "riposta/CrossbowReviewer-9B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "riposta/CrossbowReviewer-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "riposta/CrossbowReviewer-9B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use riposta/CrossbowReviewer-9B with Ollama:
ollama run hf.co/riposta/CrossbowReviewer-9B:Q8_0
- Unsloth Desktop
- Pi
How to use riposta/CrossbowReviewer-9B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf riposta/CrossbowReviewer-9B:Q8_0
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "riposta/CrossbowReviewer-9B:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use riposta/CrossbowReviewer-9B with Docker Model Runner:
docker model run hf.co/riposta/CrossbowReviewer-9B:Q8_0
- Lemonade
How to use riposta/CrossbowReviewer-9B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull riposta/CrossbowReviewer-9B:Q8_0
Run and chat with the model
lemonade run user.CrossbowReviewer-9B-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use riposta/CrossbowReviewer-9B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf riposta/CrossbowReviewer-9B:Q8_0
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default riposta/CrossbowReviewer-9B:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use riposta/CrossbowReviewer-9B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf riposta/CrossbowReviewer-9B:Q8_0
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "riposta/CrossbowReviewer-9B:Q8_0" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
1.1.0 docs: architecture section, Jev 1.14.0 comparison, MTP wording
Browse files- README.md +15 -4
- SHA256SUMS +5 -3
- docs/ARCHITECTURE.md +60 -0
- docs/BENCHMARKS.md +17 -3
- docs/assets/architecture.svg +69 -0
- docs/benchmarks.json +98 -3
- release-manifest.json +18 -7
README.md
CHANGED
|
@@ -28,7 +28,7 @@ a choice, a calibrated confidence and the full distribution. Its [inference serv
|
|
| 28 |
provides a `/v1/systemone` endpoint that follows the Jev request schema.
|
| 29 |
|
| 30 |
[Inference server](https://github.com/riposta/CrossbowReviewer) · [Quickstart](docs/QUICKSTART.md) ·
|
| 31 |
-
[Benchmarks](docs/BENCHMARKS.md) · [Artifact manifest](release-manifest.json) · 1.0 is kept under the `v1.0` tag.
|
| 32 |
|
| 33 |
## What's new in 1.1
|
| 34 |
|
|
@@ -69,6 +69,16 @@ one pass. See [docs/BENCHMARKS.md](docs/BENCHMARKS.md) for all tables.
|
|
| 69 |
- **7 languages:** Java, Python, TypeScript, JavaScript, Go, C#, Rust.
|
| 70 |
- **Full weights:** no adapter and no conversion step. Safetensors work with transformers; GGUF works with llama.cpp.
|
| 71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
## Downloads
|
| 73 |
|
| 74 |
| Files | Format and use | Size |
|
|
@@ -109,7 +119,8 @@ Pooled MCC (1 = perfect, 0 = chance), 95% cluster-bootstrap CI in [docs/BENCHMAR
|
|
| 109 |
| **CrossbowReviewer 1.1** | 0.72 | 0.51 | 0.34 | **0.24** |
|
| 110 |
| CrossbowReviewer 1.0 | 0.72 | 0.47 | 0.34 | 0.08 |
|
| 111 |
| Qwen3.5-9B-Base (zero-shot) | 0.26 | −0.13 | 0.39 | 0.05 |
|
| 112 |
-
| Jev
|
|
|
|
| 113 |
| basal-omni-1.0-max (zero-shot) | 0.60 | 0.26 | 0.50¹ | 0.14 |
|
| 114 |
| Claude Opus 5.5 (reasoning) | 0.85 | 0.67 | 0.94¹ | – |
|
| 115 |
| GPT-6 Sol (reasoning) | 0.80 | 0.84² | 0.77¹ | – |
|
|
@@ -162,8 +173,8 @@ path traversal), averaging both option orders, and LoRA on basal-omni (collapsed
|
|
| 162 |
- **Optimization:** 3 rounds × 1 epoch, AdamW, lr 5e-5, bf16, 1× A100 (GCP). The best round was selected on a
|
| 163 |
validation split.
|
| 164 |
- **Calibration:** a single temperature (1.122) fitted on a validation split.
|
| 165 |
-
- **Not included:** the multi-token-prediction head of the base model
|
| 166 |
-
because decisions never generate text.
|
| 167 |
|
| 168 |
## License
|
| 169 |
|
|
|
|
| 28 |
provides a `/v1/systemone` endpoint that follows the Jev request schema.
|
| 29 |
|
| 30 |
[Inference server](https://github.com/riposta/CrossbowReviewer) · [Quickstart](docs/QUICKSTART.md) ·
|
| 31 |
+
[Architecture](docs/ARCHITECTURE.md) · [Benchmarks](docs/BENCHMARKS.md) · [Artifact manifest](release-manifest.json) · 1.0 is kept under the `v1.0` tag.
|
| 32 |
|
| 33 |
## What's new in 1.1
|
| 34 |
|
|
|
|
| 69 |
- **7 languages:** Java, Python, TypeScript, JavaScript, Go, C#, Rust.
|
| 70 |
- **Full weights:** no adapter and no conversion step. Safetensors work with transformers; GGUF works with llama.cpp.
|
| 71 |
|
| 72 |
+
## Architecture
|
| 73 |
+
|
| 74 |
+
Qwen3.5-9B-Base (32 layers, 8 × (3 Gated DeltaNet + 1 Gated Attention), hidden 4096) with a rank-32 LoRA merged into
|
| 75 |
+
the weights. No added layers or heads: all questions go in one prompt, the logits of the option letters are read at
|
| 76 |
+
every `Answer:` slot in a single forward pass, and a fitted temperature turns them into calibrated probabilities.
|
| 77 |
+
|
| 78 |
+

|
| 79 |
+
|
| 80 |
+
Details, base-model table and training recipe: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
|
| 81 |
+
|
| 82 |
## Downloads
|
| 83 |
|
| 84 |
| Files | Format and use | Size |
|
|
|
|
| 119 |
| **CrossbowReviewer 1.1** | 0.72 | 0.51 | 0.34 | **0.24** |
|
| 120 |
| CrossbowReviewer 1.0 | 0.72 | 0.47 | 0.34 | 0.08 |
|
| 121 |
| Qwen3.5-9B-Base (zero-shot) | 0.26 | −0.13 | 0.39 | 0.05 |
|
| 122 |
+
| Jev 1.14.0 (latest) | 0.58 | 0.25 | 0.34 | 0.10 |
|
| 123 |
+
| Jev 1.13.0 | 0.57 | 0.25 | – | – |
|
| 124 |
| basal-omni-1.0-max (zero-shot) | 0.60 | 0.26 | 0.50¹ | 0.14 |
|
| 125 |
| Claude Opus 5.5 (reasoning) | 0.85 | 0.67 | 0.94¹ | – |
|
| 126 |
| GPT-6 Sol (reasoning) | 0.80 | 0.84² | 0.77¹ | – |
|
|
|
|
| 173 |
- **Optimization:** 3 rounds × 1 epoch, AdamW, lr 5e-5, bf16, 1× A100 (GCP). The best round was selected on a
|
| 174 |
validation split.
|
| 175 |
- **Calibration:** a single temperature (1.122) fitted on a validation split.
|
| 176 |
+
- **Not included:** the multi-token-prediction head of the base model. No MTP weights are in this repo (`config.json`
|
| 177 |
+
still carries the base value `mtp_num_hidden_layers: 1`), because decisions never generate text.
|
| 178 |
|
| 179 |
## License
|
| 180 |
|
SHA256SUMS
CHANGED
|
@@ -1,13 +1,15 @@
|
|
| 1 |
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
|
| 2 |
930472a7a4b21e39db2a68aafcb1cc09984a4c7f88e6072682eef75b2ec844b2 NOTICE
|
| 3 |
-
|
| 4 |
a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
|
| 5 |
4a9248516d271480884c80271eb8023757bd313932b07facd4cd6a820737ae83 config.json
|
| 6 |
ba9d608ecc284b14389deb69e3266ef91e3790a5c76593149e9103c9c25ef779 decision_config.json
|
| 7 |
-
|
|
|
|
| 8 |
1f8496c6b8ce1e69660df2bcb09bc991150c42622551a2e2c09df974a1ac151c docs/QUICKSTART.md
|
|
|
|
| 9 |
8528e3180091f4c1d2c321300f89a21149572e7fe3fe74c1342679eb3c3dacb5 docs/assets/release_mcc.png
|
| 10 |
-
|
| 11 |
62153eb6c69f2e1f426beaa8002b7186437e949c7588167085df14e10e9c0a73 generation_config.json
|
| 12 |
3d61d66a0100ac3a1d09291ec1de1155579941b6785b049736db54bca91fe126 gguf/CrossbowReviewer-9B-Q8_0.gguf
|
| 13 |
c433715d8ec5e6497aabf0455175752e6f3698c22db6cd4b84853c9038cd3f7c model-00001-of-00004.safetensors
|
|
|
|
| 1 |
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
|
| 2 |
930472a7a4b21e39db2a68aafcb1cc09984a4c7f88e6072682eef75b2ec844b2 NOTICE
|
| 3 |
+
90035aa0d8ec551faf8ea3a1c6857de18732c466e1edcce77e506dbed7320530 README.md
|
| 4 |
a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
|
| 5 |
4a9248516d271480884c80271eb8023757bd313932b07facd4cd6a820737ae83 config.json
|
| 6 |
ba9d608ecc284b14389deb69e3266ef91e3790a5c76593149e9103c9c25ef779 decision_config.json
|
| 7 |
+
42f7e41a7aab678634e43e0f35edc1cd3cc9a19d59635f411809093ff92d13d7 docs/ARCHITECTURE.md
|
| 8 |
+
b81a61d000f795b48a583ef2c3b01e4eb8ec1d8e94ad1284254a0bf2719e9825 docs/BENCHMARKS.md
|
| 9 |
1f8496c6b8ce1e69660df2bcb09bc991150c42622551a2e2c09df974a1ac151c docs/QUICKSTART.md
|
| 10 |
+
9f3e8aa4db68dd26d3659091e9e2a065116ea8aff18b95ebd2402cf872586220 docs/assets/architecture.svg
|
| 11 |
8528e3180091f4c1d2c321300f89a21149572e7fe3fe74c1342679eb3c3dacb5 docs/assets/release_mcc.png
|
| 12 |
+
fa7f5e52138601661415c58cd95a3cd654b2919d2af31060df2b9e8f0a78e567 docs/benchmarks.json
|
| 13 |
62153eb6c69f2e1f426beaa8002b7186437e949c7588167085df14e10e9c0a73 generation_config.json
|
| 14 |
3d61d66a0100ac3a1d09291ec1de1155579941b6785b049736db54bca91fe126 gguf/CrossbowReviewer-9B-Q8_0.gguf
|
| 15 |
c433715d8ec5e6497aabf0455175752e6f3698c22db6cd4b84853c9038cd3f7c model-00001-of-00004.safetensors
|
docs/ARCHITECTURE.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Architecture
|
| 2 |
+
|
| 3 |
+
CrossbowReviewer is [Qwen3.5-9B-Base](https://huggingface.co/Qwen/Qwen3.5-9B-Base) with a LoRA merged into the
|
| 4 |
+
weights. The architecture is unchanged: no added layers and no classification head. What differs is how the model is
|
| 5 |
+
trained and read out: **slot decoding**.
|
| 6 |
+
|
| 7 |
+

|
| 8 |
+
|
| 9 |
+
## Base model
|
| 10 |
+
|
| 11 |
+
| | |
|
| 12 |
+
|---|---|
|
| 13 |
+
| Type | causal language model (`Qwen3_5ForCausalLM`, text part only) |
|
| 14 |
+
| Parameters | 9B dense (LoRA is merged, so this file set has no adapter) |
|
| 15 |
+
| Layers / hidden size | 32 / 4096, FFN 12288 |
|
| 16 |
+
| Layout | 8 × (3 × Gated DeltaNet → 1 × Gated Attention) |
|
| 17 |
+
| Gated DeltaNet | 32 value heads, 16 QK heads, head dim 128, conv kernel 4 |
|
| 18 |
+
| Gated Attention | 16 query heads, 4 KV heads (GQA), head dim 256, partial RoPE (0.25) |
|
| 19 |
+
| Vocabulary | 248 320 |
|
| 20 |
+
| Context | 262 144 tokens natively |
|
| 21 |
+
| MTP head | **not shipped.** `config.json` still carries the base value `mtp_num_hidden_layers: 1`, but no MTP weights are in the repo and decisions never generate text |
|
| 22 |
+
|
| 23 |
+
Three of every four layers are linear attention, so prefill cost grows gently with file length. This is what makes a
|
| 24 |
+
single pass over a whole file and ~107 rules cheap.
|
| 25 |
+
|
| 26 |
+
## Slot decoding
|
| 27 |
+
|
| 28 |
+
1. **Prompt.** Header, then `state` (a JSON object with the language and the code), then every question as
|
| 29 |
+
`### name`, instructions, lettered options and `Answer:`.
|
| 30 |
+
2. **One forward pass.** The answers are never in the input, so a slot cannot see the answers to earlier slots.
|
| 31 |
+
Training and inference see the same sequence, and all questions share one prefill.
|
| 32 |
+
3. **Read-out.** The LM head runs only at the positions of the `Answer:` slots, not over the whole sequence. For each
|
| 33 |
+
slot the logits of the option letters (` A`, ` B`, up to 26) are taken.
|
| 34 |
+
4. **Calibration.** `softmax(logits / T)` with a single temperature `T = 1.122` (`decision_config.json`). The server
|
| 35 |
+
can add a per-category scale and accept/defer thresholds. For data-flow security no threshold could be certified.
|
| 36 |
+
5. **Typed output.** `noul`: yes/no (`no` means the rule is violated); `choice`: up to 26 options; `score`: 2–10
|
| 37 |
+
levels. Every answer has a `choice`, a `confidence` and the full `distribution`.
|
| 38 |
+
|
| 39 |
+
## Training
|
| 40 |
+
|
| 41 |
+
- **Method:** LoRA on all linear modules (`q/k/v/o`, `gate/up/down` and the DeltaNet projections `in_proj_qkv`,
|
| 42 |
+
`in_proj_z`, `in_proj_a`, `in_proj_b`, `out_proj`). Rank 32, alpha 64, dropout 0.05.
|
| 43 |
+
- **Loss:** cross-entropy over the option-letter logits at each slot. Each sample shows a random subset of the questions,
|
| 44 |
+
always including its target rule.
|
| 45 |
+
- **Data:** 4 866 samples: synthetic snippets, 445 vulnerable/fixed pairs with a verified contrast and 900 real-code files
|
| 46 |
+
with soft labels. 3 rounds × 1 epoch, lr 5e-5, bf16, 1× A100.
|
| 47 |
+
|
| 48 |
+
## What is not new
|
| 49 |
+
|
| 50 |
+
Unlike recent architecture releases, such as sparse attention, gated residuals or n-gram embeddings in
|
| 51 |
+
[Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next), CrossbowReviewer does not change the network. The
|
| 52 |
+
gain comes from data, the slot read-out and calibration, so any improvement in the base model can be reused by
|
| 53 |
+
retraining the same recipe.
|
| 54 |
+
|
| 55 |
+
## Variants we tried
|
| 56 |
+
|
| 57 |
+
All documented in the
|
| 58 |
+
[research log](https://github.com/riposta/CrossbowReviewer-Pipeline/blob/main/docs/RESEARCH_UPGRADE.md): a prefix layout
|
| 59 |
+
with a fixed rule list before the code (worse on OWASP injection and path traversal), contrast-format training (worse
|
| 60 |
+
on real code), averaging both option orders (no gain) and LoRA on basal-omni (collapsed to chance).
|
docs/BENCHMARKS.md
CHANGED
|
@@ -34,7 +34,8 @@ Pooled MCC with 95% cluster-bootstrap CIs:
|
|
| 34 |
| **CrossbowReviewer 1.1** | 0.72 (0.69–0.75) | 0.955 | 0.892 | 0.69 | 0.97 | 0.83 | 0.010 |
|
| 35 |
| CrossbowReviewer 1.0 | 0.72 (0.68–0.75) | 0.959 | 0.905 | 0.65 | 0.98 | 0.82 | 0.009 |
|
| 36 |
| Qwen3.5-9B-Base (zero-shot) | 0.26 (0.21–0.30) | 0.653 | 0.463 | 0.36 | 0.87 | 0.62 | 0.040 |
|
| 37 |
-
| Jev | 0.
|
|
|
|
| 38 |
| basal-omni-1.0-max (zero-shot) | 0.60 (0.56–0.64) | 0.896 | 0.771 | 0.71 | 0.89 | 0.80 | 0.076 |
|
| 39 |
| Claude Opus 5.5 | 0.85 (0.82–0.87) | 0.985 | 0.960 | 0.86 | 0.97 | 0.92 | 0.120 |
|
| 40 |
| GPT-6 Sol | 0.80 (0.78–0.83) | 0.976 | 0.930 | 0.95 | 0.91 | 0.93 | 0.021 |
|
|
@@ -47,7 +48,8 @@ likely inflated)
|
|
| 47 |
| **CrossbowReviewer 1.1** | 0.51 (0.46–0.54) | 0.961 | 0.705 | 0.36 | 0.99 | 0.67 | 0.014 |
|
| 48 |
| CrossbowReviewer 1.0 | 0.47 (0.42–0.53) | 0.938 | 0.576 | 0.35 | 0.99 | 0.67 | 0.006 |
|
| 49 |
| Qwen3.5-9B-Base (zero-shot) | -0.13 (-0.16–-0.10) | 0.309 | 0.046 | 0.04 | 0.75 | 0.39 | 0.029 |
|
| 50 |
-
| Jev | 0.25 (0.21–0.28) | 0.
|
|
|
|
| 51 |
| basal-omni-1.0-max (zero-shot) | 0.26 (0.22–0.31) | 0.802 | 0.224 | 0.54 | 0.85 | 0.70 | 0.066 |
|
| 52 |
| Claude Opus 5.5 | 0.67 (0.63–0.72) | 0.990 | 0.905 | 0.49 | 1.00 | 0.74 | 0.086 |
|
| 53 |
| GPT-6 Sol | 0.84 (0.81–0.87) | 0.981 | 0.886 | 0.83 | 0.99 | 0.91 | 0.037 |
|
|
@@ -59,7 +61,8 @@ likely inflated)
|
|
| 59 |
| **CrossbowReviewer 1.1** | 0.30 (0.22–0.40) | 0.697 | 0.715 | 0.74 | 0.55 | 0.65 | 0.168 |
|
| 60 |
| CrossbowReviewer 1.0 | 0.28 (0.20–0.36) | 0.715 | 0.722 | 0.94 | 0.26 | 0.60 | 0.239 |
|
| 61 |
| Qwen3.5-9B-Base (zero-shot) | 0.37 (0.29–0.45) | 0.727 | 0.713 | 0.93 | 0.37 | 0.65 | 0.025 |
|
| 62 |
-
| Jev | 0.
|
|
|
|
| 63 |
| basal-omni-1.0-max (zero-shot) | 0.50 (0.45–0.56) | 0.825 | 0.800 | 1.00 | 0.40 | 0.70 | 0.257 |
|
| 64 |
| Claude Opus 5.5 | 0.94 (0.90–0.97) | 0.983 | 0.977 | 1.00 | 0.94 | 0.97 | 0.059 |
|
| 65 |
| GPT-6 Sol | 0.77 (0.72–0.82) | 0.935 | 0.905 | 1.00 | 0.75 | 0.88 | 0.106 |
|
|
@@ -71,6 +74,7 @@ likely inflated)
|
|
| 71 |
| **CrossbowReviewer 1.1** | 0.34 (0.23–0.42) | 0.722 | 0.700 | 0.88 | 0.42 | 0.65 | 0.150 |
|
| 72 |
| CrossbowReviewer 1.0 | 0.34 (0.25–0.41) | 0.738 | 0.750 | 0.94 | 0.32 | 0.63 | 0.238 |
|
| 73 |
| Qwen3.5-9B-Base (zero-shot) | 0.39 (0.31–0.45) | 0.744 | 0.733 | 0.93 | 0.41 | 0.67 | 0.027 |
|
|
|
|
| 74 |
|
| 75 |
**Vulnerability/fix pairs** (98 pairs = 196 decisions)
|
| 76 |
|
|
@@ -79,6 +83,7 @@ likely inflated)
|
|
| 79 |
| **CrossbowReviewer 1.1** | 0.24 (0.14–0.34) | 0.632 | 0.39 | 0.83 | **0.235** | 0.197 |
|
| 80 |
| CrossbowReviewer 1.0 | 0.08 (-0.03–0.19) | 0.506 | 0.05 | 0.98 | 0.041 | 0.353 |
|
| 81 |
| Qwen3.5-9B-Base (zero-shot) | 0.05 (0.00–0.14) | 0.529 | 0.05 | 0.97 | – | 0.247 |
|
|
|
|
| 82 |
| basal-omni-1.0-max (zero-shot) | 0.14 (0.05–0.21) | 0.574 | 0.47 | 0.66 | 0.163 | 0.319 |
|
| 83 |
|
| 84 |
Pair accuracy = both versions of a pair judged correctly.
|
|
@@ -105,6 +110,15 @@ Pair accuracy = both versions of a pair judged correctly.
|
|
| 105 |
- **Security stays a human/reasoning-model decision.** 1.1 recognizes 42–55% of the safe OWASP traps (1.0: 26–32%),
|
| 106 |
better but still far from Opus 5.5 (94%).
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
## Other benchmarks considered
|
| 109 |
|
| 110 |
We surveyed public benchmarks that could extend this evaluation. None is included in the numbers above.
|
|
|
|
| 34 |
| **CrossbowReviewer 1.1** | 0.72 (0.69–0.75) | 0.955 | 0.892 | 0.69 | 0.97 | 0.83 | 0.010 |
|
| 35 |
| CrossbowReviewer 1.0 | 0.72 (0.68–0.75) | 0.959 | 0.905 | 0.65 | 0.98 | 0.82 | 0.009 |
|
| 36 |
| Qwen3.5-9B-Base (zero-shot) | 0.26 (0.21–0.30) | 0.653 | 0.463 | 0.36 | 0.87 | 0.62 | 0.040 |
|
| 37 |
+
| Jev 1.14.0 (latest) | 0.58 (0.55–0.62) | 0.891 | 0.706 | 0.81 | 0.83 | 0.82 | 0.054 |
|
| 38 |
+
| Jev 1.13.0 | 0.57 (0.54–0.61) | 0.883 | 0.684 | 0.81 | 0.82 | 0.81 | 0.046 |
|
| 39 |
| basal-omni-1.0-max (zero-shot) | 0.60 (0.56–0.64) | 0.896 | 0.771 | 0.71 | 0.89 | 0.80 | 0.076 |
|
| 40 |
| Claude Opus 5.5 | 0.85 (0.82–0.87) | 0.985 | 0.960 | 0.86 | 0.97 | 0.92 | 0.120 |
|
| 41 |
| GPT-6 Sol | 0.80 (0.78–0.83) | 0.976 | 0.930 | 0.95 | 0.91 | 0.93 | 0.021 |
|
|
|
|
| 48 |
| **CrossbowReviewer 1.1** | 0.51 (0.46–0.54) | 0.961 | 0.705 | 0.36 | 0.99 | 0.67 | 0.014 |
|
| 49 |
| CrossbowReviewer 1.0 | 0.47 (0.42–0.53) | 0.938 | 0.576 | 0.35 | 0.99 | 0.67 | 0.006 |
|
| 50 |
| Qwen3.5-9B-Base (zero-shot) | -0.13 (-0.16–-0.10) | 0.309 | 0.046 | 0.04 | 0.75 | 0.39 | 0.029 |
|
| 51 |
+
| Jev 1.14.0 (latest) | 0.25 (0.21–0.28) | 0.801 | 0.178 | 0.68 | 0.75 | 0.72 | 0.031 |
|
| 52 |
+
| Jev 1.13.0 | 0.25 (0.21–0.28) | 0.799 | 0.174 | 0.67 | 0.76 | 0.72 | 0.030 |
|
| 53 |
| basal-omni-1.0-max (zero-shot) | 0.26 (0.22–0.31) | 0.802 | 0.224 | 0.54 | 0.85 | 0.70 | 0.066 |
|
| 54 |
| Claude Opus 5.5 | 0.67 (0.63–0.72) | 0.990 | 0.905 | 0.49 | 1.00 | 0.74 | 0.086 |
|
| 55 |
| GPT-6 Sol | 0.84 (0.81–0.87) | 0.981 | 0.886 | 0.83 | 0.99 | 0.91 | 0.037 |
|
|
|
|
| 61 |
| **CrossbowReviewer 1.1** | 0.30 (0.22–0.40) | 0.697 | 0.715 | 0.74 | 0.55 | 0.65 | 0.168 |
|
| 62 |
| CrossbowReviewer 1.0 | 0.28 (0.20–0.36) | 0.715 | 0.722 | 0.94 | 0.26 | 0.60 | 0.239 |
|
| 63 |
| Qwen3.5-9B-Base (zero-shot) | 0.37 (0.29–0.45) | 0.727 | 0.713 | 0.93 | 0.37 | 0.65 | 0.025 |
|
| 64 |
+
| Jev 1.14.0 (latest) | 0.33 (0.25–0.40) | 0.725 | 0.687 | 0.95 | 0.30 | 0.62 | 0.178 |
|
| 65 |
+
| Jev 1.13.0 | 0.30 (0.22–0.37) | 0.719 | 0.649 | 0.97 | 0.24 | 0.60 | 0.209 |
|
| 66 |
| basal-omni-1.0-max (zero-shot) | 0.50 (0.45–0.56) | 0.825 | 0.800 | 1.00 | 0.40 | 0.70 | 0.257 |
|
| 67 |
| Claude Opus 5.5 | 0.94 (0.90–0.97) | 0.983 | 0.977 | 1.00 | 0.94 | 0.97 | 0.059 |
|
| 68 |
| GPT-6 Sol | 0.77 (0.72–0.82) | 0.935 | 0.905 | 1.00 | 0.75 | 0.88 | 0.106 |
|
|
|
|
| 74 |
| **CrossbowReviewer 1.1** | 0.34 (0.23–0.42) | 0.722 | 0.700 | 0.88 | 0.42 | 0.65 | 0.150 |
|
| 75 |
| CrossbowReviewer 1.0 | 0.34 (0.25–0.41) | 0.738 | 0.750 | 0.94 | 0.32 | 0.63 | 0.238 |
|
| 76 |
| Qwen3.5-9B-Base (zero-shot) | 0.39 (0.31–0.45) | 0.744 | 0.733 | 0.93 | 0.41 | 0.67 | 0.027 |
|
| 77 |
+
| Jev 1.14.0 (latest) | 0.34 (0.25–0.41) | 0.763 | 0.719 | 0.94 | 0.32 | 0.63 | 0.189 |
|
| 78 |
|
| 79 |
**Vulnerability/fix pairs** (98 pairs = 196 decisions)
|
| 80 |
|
|
|
|
| 83 |
| **CrossbowReviewer 1.1** | 0.24 (0.14–0.34) | 0.632 | 0.39 | 0.83 | **0.235** | 0.197 |
|
| 84 |
| CrossbowReviewer 1.0 | 0.08 (-0.03–0.19) | 0.506 | 0.05 | 0.98 | 0.041 | 0.353 |
|
| 85 |
| Qwen3.5-9B-Base (zero-shot) | 0.05 (0.00–0.14) | 0.529 | 0.05 | 0.97 | – | 0.247 |
|
| 86 |
+
| Jev 1.14.0 (latest) | 0.10 (0.03–0.17) | 0.546 | 0.50 | 0.60 | 0.112 | 0.220 |
|
| 87 |
| basal-omni-1.0-max (zero-shot) | 0.14 (0.05–0.21) | 0.574 | 0.47 | 0.66 | 0.163 | 0.319 |
|
| 88 |
|
| 89 |
Pair accuracy = both versions of a pair judged correctly.
|
|
|
|
| 110 |
- **Security stays a human/reasoning-model decision.** 1.1 recognizes 42–55% of the safe OWASP traps (1.0: 26–32%),
|
| 111 |
better but still far from Opus 5.5 (94%).
|
| 112 |
|
| 113 |
+
## Against the latest Jev
|
| 114 |
+
|
| 115 |
+
We re-ran everything with **jev-1.14.0** (the current `jev-latest`); 1.0's card used jev-1.13.0, which is kept in the
|
| 116 |
+
tables for reference. 1.14.0 is only marginally better than 1.13.0 on every set. CrossbowReviewer 1.1 stays well ahead
|
| 117 |
+
of it on real code (MCC 0.51 vs 0.25, AUC 0.961 vs 0.801, AP 0.71 vs 0.18) and on vulnerability/fix pairs (pair
|
| 118 |
+
accuracy 0.235 vs 0.112) and on synthetic data (MCC 0.72 vs 0.58). Jev flags more violations (recall 0.81 vs 0.69
|
| 119 |
+
on synthetic, 0.68 vs 0.36 on real code) but pays with 25% false positives on real code versus 1%. On OWASP the two
|
| 120 |
+
are statistically indistinguishable (held-out MCC 0.34 vs 0.34).
|
| 121 |
+
|
| 122 |
## Other benchmarks considered
|
| 123 |
|
| 124 |
We surveyed public benchmarks that could extend this evaluation. None is included in the numbers above.
|
docs/assets/architecture.svg
ADDED
|
|
docs/benchmarks.json
CHANGED
|
@@ -58,7 +58,26 @@
|
|
| 58 |
0.689107245171945
|
| 59 |
]
|
| 60 |
},
|
| 61 |
-
"Jev": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
"n": 2838,
|
| 63 |
"pos": 691,
|
| 64 |
"mcc": 0.5735505633672757,
|
|
@@ -193,7 +212,26 @@
|
|
| 193 |
null
|
| 194 |
]
|
| 195 |
},
|
| 196 |
-
"Jev": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
"n": 5361,
|
| 198 |
"pos": 370,
|
| 199 |
"mcc": 0.24813049944531618,
|
|
@@ -328,7 +366,26 @@
|
|
| 328 |
0.7772480718704975
|
| 329 |
]
|
| 330 |
},
|
| 331 |
-
"Jev": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 332 |
"n": 435,
|
| 333 |
"pos": 215,
|
| 334 |
"mcc": 0.2975956201756454,
|
|
@@ -462,6 +519,25 @@
|
|
| 462 |
0.7048918279758255,
|
| 463 |
0.7927573203194321
|
| 464 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 465 |
}
|
| 466 |
},
|
| 467 |
"pairs": {
|
|
@@ -522,6 +598,25 @@
|
|
| 522 |
0.5582569762598917
|
| 523 |
]
|
| 524 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 525 |
"basal-omni-1.0-max": {
|
| 526 |
"n": 196,
|
| 527 |
"pos": 98,
|
|
|
|
| 58 |
0.689107245171945
|
| 59 |
]
|
| 60 |
},
|
| 61 |
+
"Jev 1.14.0": {
|
| 62 |
+
"n": 2838,
|
| 63 |
+
"pos": 691,
|
| 64 |
+
"mcc": 0.5834351144821561,
|
| 65 |
+
"auc": 0.8905361838313751,
|
| 66 |
+
"ap": 0.7064306670126849,
|
| 67 |
+
"recall": 0.8133140376266281,
|
| 68 |
+
"specificity": 0.8258034466697718,
|
| 69 |
+
"bal_acc": 0.8195587421482,
|
| 70 |
+
"ece": 0.05366102889358701,
|
| 71 |
+
"mcc_ci": [
|
| 72 |
+
0.5482742738958795,
|
| 73 |
+
0.6178649042752993
|
| 74 |
+
],
|
| 75 |
+
"auc_ci": [
|
| 76 |
+
0.8747442690257708,
|
| 77 |
+
0.9031681062486749
|
| 78 |
+
]
|
| 79 |
+
},
|
| 80 |
+
"Jev 1.13.0": {
|
| 81 |
"n": 2838,
|
| 82 |
"pos": 691,
|
| 83 |
"mcc": 0.5735505633672757,
|
|
|
|
| 212 |
null
|
| 213 |
]
|
| 214 |
},
|
| 215 |
+
"Jev 1.14.0": {
|
| 216 |
+
"n": 5361,
|
| 217 |
+
"pos": 370,
|
| 218 |
+
"mcc": 0.2453543318204322,
|
| 219 |
+
"auc": 0.8010554132573768,
|
| 220 |
+
"ap": 0.17784154782117428,
|
| 221 |
+
"recall": 0.6810810810810811,
|
| 222 |
+
"specificity": 0.7523542376277299,
|
| 223 |
+
"bal_acc": 0.7167176593544056,
|
| 224 |
+
"ece": 0.03080768513337065,
|
| 225 |
+
"mcc_ci": [
|
| 226 |
+
0.20586233752208488,
|
| 227 |
+
0.2758830661952689
|
| 228 |
+
],
|
| 229 |
+
"auc_ci": [
|
| 230 |
+
null,
|
| 231 |
+
null
|
| 232 |
+
]
|
| 233 |
+
},
|
| 234 |
+
"Jev 1.13.0": {
|
| 235 |
"n": 5361,
|
| 236 |
"pos": 370,
|
| 237 |
"mcc": 0.24813049944531618,
|
|
|
|
| 366 |
0.7772480718704975
|
| 367 |
]
|
| 368 |
},
|
| 369 |
+
"Jev 1.14.0": {
|
| 370 |
+
"n": 435,
|
| 371 |
+
"pos": 215,
|
| 372 |
+
"mcc": 0.32949472283317666,
|
| 373 |
+
"auc": 0.7251162790697674,
|
| 374 |
+
"ap": 0.6869969579373971,
|
| 375 |
+
"recall": 0.9534883720930233,
|
| 376 |
+
"specificity": 0.29545454545454547,
|
| 377 |
+
"bal_acc": 0.6244714587737844,
|
| 378 |
+
"ece": 0.17781609195402298,
|
| 379 |
+
"mcc_ci": [
|
| 380 |
+
0.2543787415657978,
|
| 381 |
+
0.4035649670100956
|
| 382 |
+
],
|
| 383 |
+
"auc_ci": [
|
| 384 |
+
0.6782645502645502,
|
| 385 |
+
0.7726313770617568
|
| 386 |
+
]
|
| 387 |
+
},
|
| 388 |
+
"Jev 1.13.0": {
|
| 389 |
"n": 435,
|
| 390 |
"pos": 215,
|
| 391 |
"mcc": 0.2975956201756454,
|
|
|
|
| 519 |
0.7048918279758255,
|
| 520 |
0.7927573203194321
|
| 521 |
]
|
| 522 |
+
},
|
| 523 |
+
"Jev 1.14.0": {
|
| 524 |
+
"n": 429,
|
| 525 |
+
"pos": 212,
|
| 526 |
+
"mcc": 0.338197199741519,
|
| 527 |
+
"auc": 0.7631618989653074,
|
| 528 |
+
"ap": 0.7190012552507654,
|
| 529 |
+
"recall": 0.9433962264150944,
|
| 530 |
+
"specificity": 0.3225806451612903,
|
| 531 |
+
"bal_acc": 0.6329884357881923,
|
| 532 |
+
"ece": 0.18899766899766893,
|
| 533 |
+
"mcc_ci": [
|
| 534 |
+
0.24606370318886614,
|
| 535 |
+
0.40690936752428153
|
| 536 |
+
],
|
| 537 |
+
"auc_ci": [
|
| 538 |
+
0.7238283627510651,
|
| 539 |
+
0.8062861018729214
|
| 540 |
+
]
|
| 541 |
}
|
| 542 |
},
|
| 543 |
"pairs": {
|
|
|
|
| 598 |
0.5582569762598917
|
| 599 |
]
|
| 600 |
},
|
| 601 |
+
"Jev 1.14.0": {
|
| 602 |
+
"n": 196,
|
| 603 |
+
"pos": 98,
|
| 604 |
+
"mcc": 0.10257624248277729,
|
| 605 |
+
"auc": 0.546438983756768,
|
| 606 |
+
"ap": 0.5555946836193321,
|
| 607 |
+
"recall": 0.5,
|
| 608 |
+
"specificity": 0.6020408163265306,
|
| 609 |
+
"bal_acc": 0.5510204081632653,
|
| 610 |
+
"ece": 0.2204081632653061,
|
| 611 |
+
"mcc_ci": [
|
| 612 |
+
0.03184469354605652,
|
| 613 |
+
0.16754156331667822
|
| 614 |
+
],
|
| 615 |
+
"auc_ci": [
|
| 616 |
+
0.5219179508538109,
|
| 617 |
+
0.5741357767596834
|
| 618 |
+
]
|
| 619 |
+
},
|
| 620 |
"basal-omni-1.0-max": {
|
| 621 |
"n": 196,
|
| 622 |
"pos": 98,
|
release-manifest.json
CHANGED
|
@@ -28,8 +28,8 @@
|
|
| 28 |
},
|
| 29 |
{
|
| 30 |
"path": "README.md",
|
| 31 |
-
"bytes":
|
| 32 |
-
"sha256": "
|
| 33 |
},
|
| 34 |
{
|
| 35 |
"path": "chat_template.jinja",
|
|
@@ -46,16 +46,26 @@
|
|
| 46 |
"bytes": 618,
|
| 47 |
"sha256": "ba9d608ecc284b14389deb69e3266ef91e3790a5c76593149e9103c9c25ef779"
|
| 48 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
{
|
| 50 |
"path": "docs/BENCHMARKS.md",
|
| 51 |
-
"bytes":
|
| 52 |
-
"sha256": "
|
| 53 |
},
|
| 54 |
{
|
| 55 |
"path": "docs/QUICKSTART.md",
|
| 56 |
"bytes": 3131,
|
| 57 |
"sha256": "1f8496c6b8ce1e69660df2bcb09bc991150c42622551a2e2c09df974a1ac151c"
|
| 58 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
{
|
| 60 |
"path": "docs/assets/release_mcc.png",
|
| 61 |
"bytes": 80837,
|
|
@@ -63,8 +73,8 @@
|
|
| 63 |
},
|
| 64 |
{
|
| 65 |
"path": "docs/benchmarks.json",
|
| 66 |
-
"bytes":
|
| 67 |
-
"sha256": "
|
| 68 |
},
|
| 69 |
{
|
| 70 |
"path": "generation_config.json",
|
|
@@ -111,5 +121,6 @@
|
|
| 111 |
"bytes": 1128,
|
| 112 |
"sha256": "8671bed7c852ce9e661be94f179a7b4ffd091c2a65aea0363e5501c20318ee45"
|
| 113 |
}
|
| 114 |
-
]
|
|
|
|
| 115 |
}
|
|
|
|
| 28 |
},
|
| 29 |
{
|
| 30 |
"path": "README.md",
|
| 31 |
+
"bytes": 9968,
|
| 32 |
+
"sha256": "90035aa0d8ec551faf8ea3a1c6857de18732c466e1edcce77e506dbed7320530"
|
| 33 |
},
|
| 34 |
{
|
| 35 |
"path": "chat_template.jinja",
|
|
|
|
| 46 |
"bytes": 618,
|
| 47 |
"sha256": "ba9d608ecc284b14389deb69e3266ef91e3790a5c76593149e9103c9c25ef779"
|
| 48 |
},
|
| 49 |
+
{
|
| 50 |
+
"path": "docs/ARCHITECTURE.md",
|
| 51 |
+
"bytes": 3531,
|
| 52 |
+
"sha256": "42f7e41a7aab678634e43e0f35edc1cd3cc9a19d59635f411809093ff92d13d7"
|
| 53 |
+
},
|
| 54 |
{
|
| 55 |
"path": "docs/BENCHMARKS.md",
|
| 56 |
+
"bytes": 9935,
|
| 57 |
+
"sha256": "b81a61d000f795b48a583ef2c3b01e4eb8ec1d8e94ad1284254a0bf2719e9825"
|
| 58 |
},
|
| 59 |
{
|
| 60 |
"path": "docs/QUICKSTART.md",
|
| 61 |
"bytes": 3131,
|
| 62 |
"sha256": "1f8496c6b8ce1e69660df2bcb09bc991150c42622551a2e2c09df974a1ac151c"
|
| 63 |
},
|
| 64 |
+
{
|
| 65 |
+
"path": "docs/assets/architecture.svg",
|
| 66 |
+
"bytes": 5944,
|
| 67 |
+
"sha256": "9f3e8aa4db68dd26d3659091e9e2a065116ea8aff18b95ebd2402cf872586220"
|
| 68 |
+
},
|
| 69 |
{
|
| 70 |
"path": "docs/assets/release_mcc.png",
|
| 71 |
"bytes": 80837,
|
|
|
|
| 73 |
},
|
| 74 |
{
|
| 75 |
"path": "docs/benchmarks.json",
|
| 76 |
+
"bytes": 16186,
|
| 77 |
+
"sha256": "fa7f5e52138601661415c58cd95a3cd654b2919d2af31060df2b9e8f0a78e567"
|
| 78 |
},
|
| 79 |
{
|
| 80 |
"path": "generation_config.json",
|
|
|
|
| 121 |
"bytes": 1128,
|
| 122 |
"sha256": "8671bed7c852ce9e661be94f179a7b4ffd091c2a65aea0363e5501c20318ee45"
|
| 123 |
}
|
| 124 |
+
],
|
| 125 |
+
"notes": "1.1.0 docs update: architecture section, Jev 1.14.0 comparison, MTP wording"
|
| 126 |
}
|