File size: 6,937 Bytes
631e5fc
 
78ec52a
2c5db87
 
599a754
c6e9843
631e5fc
78ec52a
534dece
78ec52a
c6e9843
78ec52a
 
c6e9843
78ec52a
c6e9843
78ec52a
c6e9843
78ec52a
 
 
 
534dece
 
 
ecaa2e8
9639483
78ec52a
 
 
 
 
 
 
 
 
 
 
ecaa2e8
c6e9843
ecaa2e8
 
 
631e5fc
ecaa2e8
 
 
 
 
631e5fc
e324277
c6e9843
e324277
 
 
 
 
 
 
 
 
e1232d2
c6e9843
e1232d2
 
 
 
 
 
 
 
 
 
3a2b22f
c6e9843
3a2b22f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c6e9843
 
a205fc5
74e87c1
a205fc5
 
 
c6e9843
 
 
 
a205fc5
599a754
 
 
 
 
c6e9843
 
 
599a754
3d25956
 
 
 
c6e9843
3d25956
d36ce3c
c6e9843
7f11675
631e5fc
d36ce3c
 
 
631e5fc
d36ce3c
c6e9843
d36ce3c
631e5fc
d36ce3c
 
 
 
631e5fc
d36ce3c
c6e9843
d36ce3c
631e5fc
d36ce3c
 
 
631e5fc
d36ce3c
c6e9843
d36ce3c
631e5fc
d36ce3c
 
 
631e5fc
d04e93b
c6e9843
d04e93b
 
 
 
 
 
d36ce3c
 
 
 
631e5fc
 
 
d36ce3c
631e5fc
d36ce3c
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# Active Bugs

> Last updated: 2025-12-02 (07:30 EST)
>
> **Note:** Completed bug docs archived to `docs/bugs/archive/`
> **See also:** [Code Quality Audit Findings (2025-11-30)](AUDIT_FINDINGS_2025_11_30.md)
> **See also:** [ARCHITECTURE.md](../ARCHITECTURE.md) for unified architecture plan

## P1 - High (ACTIVE)

### HuggingFace Novita Provider 500 Error

**File:** `docs/bugs/P1_HUGGINGFACE_NOVITA_500_ERROR.md`
**Status:** ACTIVE - Upstream Infrastructure Issue

**Problem:** Free tier (no API key) fails with 500 error from Novita provider.

**Cause:** HuggingFace routes Qwen/Qwen2.5-72B-Instruct to Novita (third-party), and Novita is returning 500 errors.

**Fix Options:**
1. Switch to a model hosted natively by HuggingFace
2. Implement fallback model logic
3. Wait for Novita to fix their infrastructure

---

## Resolved Bugs

### ~~P0 - Repr Bug (Display Garbage)~~ FIXED

**File:** `P0_REPR_BUG_ROOT_CAUSE_ANALYSIS.md`, `docs/specs/SPEC_17_ACCUMULATOR_PATTERN.md`
**Found:** 2025-12-01
**Resolved:** 2025-12-02 (PR #117)

- Problem: Free tier showed `<agent_framework._types.ChatMessage object at 0x...>` instead of text
- Root Cause: We were using API incorrectly - reading from `MagenticAgentMessageEvent.message` instead of `MagenticAgentDeltaEvent.text`
- Fix: Implemented **Accumulator Pattern** (SPEC-17) - bypasses the upstream bug by using the API correctly
- Note: Upstream fix (PR #2566) is now moot - we don't need it anymore

### ~~P0 - AIFunction Not JSON Serializable~~ FIXED

**File:** `docs/bugs/P0_AIFUNCTION_NOT_JSON_SERIALIZABLE.md`
**Found:** 2025-12-01
**Resolved:** 2025-12-01

- Problem: `HuggingFaceChatClient` crashed with "Object of type AIFunction is not JSON serializable".
- Fix: Implemented full bi-directional tool support:
    1. **Serialization**: Added `_convert_tools` (AIFunction → OpenAI JSON)
    2. **Parsing (Sync/Async)**: Added `_parse_tool_calls` and streaming accumulator
- Result: Free Tier now supports full function calling capabilities with Qwen2.5-72B.

### ~~P1 - HuggingFace Router 401 Unauthorized~~ FIXED

**File:** `docs/bugs/P1_HUGGINGFACE_ROUTER_401_HYPERBOLIC.md`
**Found:** 2025-12-01
**Resolved:** 2025-12-01

- Problem: 401 errors from HuggingFace Router (Hyperbolic/Novita providers)
- **Actual Root Cause:** HF_TOKEN in `.env` and Spaces secrets was **invalid/expired**
- Fix: Generated new valid HF_TOKEN, updated `.env` and Spaces secrets
- Also switched default model to `Qwen/Qwen2.5-72B-Instruct` for better reliability

### ~~P1 - Advanced Mode Exposes Uninterpretable Chain-of-Thought~~ FIXED

**File:** `docs/bugs/P1_ADVANCED_MODE_UNINTERPRETABLE_CHAIN_OF_THOUGHT.md`
**PR:** [#107](https://github.com/The-Obstacle-Is-The-Way/DeepBoner/pull/107)
**Found:** 2025-12-01
**Resolved:** 2025-12-01

- Problem: Advanced mode exposed raw `task_ledger` and `instruction` events, truncated mid-word.
- Fix: Filtered internal events, transformed `user_task` to progress type, smart sentence-aware truncation.
- Tests: `tests/unit/orchestrators/test_advanced_events.py` (5 tests)
- CodeRabbit review addressed: test markers, edge case handling, truncation test coverage.

### ~~P0 - Advanced Mode Timeout Yields No Synthesis~~ FIXED

**File:** `docs/bugs/P0_ADVANCED_MODE_TIMEOUT_NO_SYNTHESIS.md`
**Found:** 2025-11-30 (Manual Testing)
**Resolved:** 2025-12-01

- Problem: Advanced mode timed out and displayed "Synthesizing..." but no synthesis occurred.
- Root Causes:
  1. Timeout handler yielded misleading message without calling ReportAgent
  2. Factory used wrong setting (`max_iterations=10` instead of `advanced_max_rounds=5`)
  3. Missing `get_context_summary()` in ResearchMemory
- Fix:
  1. Implemented actual synthesis on timeout via ReportAgent invocation
  2. Factory now uses `settings.advanced_max_rounds` (5)
  3. Added `get_context_summary()` to ResearchMemory
- Tests: `tests/unit/orchestrators/test_advanced_timeout.py`
- Key files: `src/orchestrators/advanced.py`, `src/orchestrators/factory.py`, `src/services/research_memory.py`

### ~~P0 - Free Tier Synthesis Incorrectly Uses Server-Side API Keys~~ FIXED (Historical)

**File:** `docs/bugs/P1_SYNTHESIS_BROKEN_KEY_FALLBACK.md`
**PR:** [#103](https://github.com/The-Obstacle-Is-The-Way/DeepBoner/pull/103)
**Found:** 2025-11-30 (Testing)
**Resolved:** 2025-11-30

- Problem: Simple Mode crashed with "OpenAIError" on HuggingFace Spaces.
- Note: This was in the OLD Simple Mode. Now we use Unified Architecture.

### ~~P0 - Synthesis Fails with OpenAIError in Free Mode~~ FIXED (Historical)

**File:** `docs/bugs/P0_SYNTHESIS_PROVIDER_MISMATCH.md`
**Found:** 2025-11-30 (Code Audit)
**Resolved:** 2025-11-30

- Problem: "Simple Mode" (Free Tier) crashed with `OpenAIError`.
- Note: This was in the OLD Simple Mode. Now we use Unified Architecture.

### ~~P0 - Simple Mode Never Synthesizes~~ FIXED (Historical)

**PR:** [#71](https://github.com/The-Obstacle-Is-The-Way/DeepBoner/pull/71) (SPEC_06)
**Commit**: `5cac97d` (2025-11-29)

- Root cause: LLM-as-Judge recommendations were being IGNORED
- Note: This was in the OLD Simple Mode. Now we use Unified Architecture.

### ~~P3 - Magentic Mode Missing Termination Guarantee~~ FIXED

**Commit**: `d36ce3c` (2025-11-29)

- Added `final_event_received` tracking in `orchestrator_magentic.py`
- Added fallback yield for "max iterations reached" scenario
- Verified with `test_magentic_termination.py`

### ~~P0 - Magentic Mode Report Generation~~ FIXED

**Commit**: `9006d69` (2025-11-29)

- Fixed `_extract_text()` to handle various message object formats
- Increased `max_rounds=10` (was 3)
- Added `temperature=1.0` for reasoning model compatibility
- Advanced mode now produces full research reports

### ~~P1 - Streaming Spam + API Key Persistence~~ FIXED

**Commit**: `0c9be4a` (2025-11-29)

- Streaming events now buffered (not token-by-token spam)
- API key persists across example clicks via `gr.State`
- Examples use explicit `None` values to avoid overwriting keys

### ~~P2 - Missing "Thinking" State~~ FIXED

**Commit**: `9006d69` (2025-11-29)

- Added `"thinking"` event type with hourglass icon
- Yields "Multi-agent reasoning in progress..." before blocking workflow call
- Users now see feedback during 2-5 minute initial processing

### ~~P2 - Gradio Example Not Filling Chat Box~~ FIXED

**Commit**: `2ea01fd` (2025-11-29)

- Third example (HSDD) wasn't populating chat box when clicked
- Root cause: Parentheses in `HSDD (Hypoactive Sexual Desire Disorder)`
- Fix: Simplified to `Testosterone therapy for Hypoactive Sexual Desire Disorder?`

### ~~P1 - Gradio Settings Accordion~~ WONTFIX

Decision: Removed nested Blocks, using ChatInterface directly.
Accordion behavior is default Gradio - acceptable for demo.

---

## How to Report Bugs

1. Create `docs/bugs/P{N}_{SHORT_NAME}.md`
2. Include: Symptom, Root Cause, Fix Plan, Test Plan
3. Update this index
4. Priority: P0=blocker, P1=important, P2=UX, P3=edge case