<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ContextFlow.git/frontend, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/'/>
<entry>
<title>Clarify Gemini file expiry wording in Quick Guide</title>
<updated>2026-02-14T05:20:10+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T05:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=2da23f73f68ce63ea9d7070af11899074d6237db'/>
<id>2da23f73f68ce63ea9d7070af11899074d6237db</id>
<content type='text'>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite Quick Guide as compact accordion with updated feature coverage</title>
<updated>2026-02-14T05:18:03+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T05:18:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=dea99a7c13bbb4a3971a3603ed03186ff199b9e1'/>
<id>dea99a7c13bbb4a3971a3603ed03186ff199b9e1</id>
<content type='text'>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Create quick chat nodes immediately on send, fix Enter key routing</title>
<updated>2026-02-14T05:07:13+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T05:07:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=147451f94030cd47a24821015f12cde967bb2305'/>
<id>147451f94030cd47a24821015f12cde967bb2305</id>
<content type='text'>
- Move node creation decision before API call so new nodes appear
  instantly with loading state instead of waiting for full response
- Use useFlowStore.getState().nodes for fresh state in the decision
- Fix Enter key in prompt textarea to call handleRunCouncil/handleRunDebate
  for council/debate nodes instead of always calling handleRun

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Move node creation decision before API call so new nodes appear
  instantly with loading state instead of waiting for full response
- Use useFlowStore.getState().nodes for fresh state in the decision
- Fix Enter key in prompt textarea to call handleRunCouncil/handleRunDebate
  for council/debate nodes instead of always calling handleRun

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix file drag-drop: allow dragging items out of folders and to empty area</title>
<updated>2026-02-14T05:07:03+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T05:07:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=db1249889090ba6283dd92783776bf500f36d9e4'/>
<id>db1249889090ba6283dd92783776bf500f36d9e4</id>
<content type='text'>
- Drop on file moves item to file's parent directory
- Drop on empty area moves item to project root
- Container gets flex-1 height so empty droppable space exists
- Mark internal drags with dataTransfer to distinguish from OS file uploads

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Drop on file moves item to file's parent directory
- Drop on empty area moves item to project root
- Container gets flex-1 height so empty droppable space exists
- Mark internal drags with dataTransfer to distinguish from OS file uploads

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add horizontal scroll and thin borders for markdown tables</title>
<updated>2026-02-14T04:29:18+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T04:29:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=f119ab4f60ca40dcea993c46dd8ce47440b10c96'/>
<id>f119ab4f60ca40dcea993c46dd8ce47440b10c96</id>
<content type='text'>
Matches the existing katex-display scroll pattern. Tables now have
1px borders and overflow-x: auto for wide content.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Matches the existing katex-display scroll pattern. Tables now have
1px borders and overflow-x: auto for wide content.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix stale closure bug in council/debate node title generation</title>
<updated>2026-02-14T04:27:16+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T04:27:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=45806ea907334d86c7f0729692d5d4826cf570f8'/>
<id>45806ea907334d86c7f0729692d5d4826cf570f8</id>
<content type='text'>
The onComplete callbacks captured `nodes` from the closure at call time,
which was stale by the time streaming finished. Use useFlowStore.getState()
to read fresh state instead.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The onComplete callbacks captured `nodes` from the closure at call time,
which was stale by the time streaming finished. Use useFlowStore.getState()
to read fresh state instead.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add model response selection UI when no final verdict in debate</title>
<updated>2026-02-14T04:15:37+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T04:15:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=731c1f1f3c6677b9e1332bd26f7d962a6c0dc630'/>
<id>731c1f1f3c6677b9e1332bd26f7d962a6c0dc630</id>
<content type='text'>
When debate ends without a judge verdict (Display Only or Self-convergence
without winner), show last round responses with "Use this" buttons instead
of "No final verdict" placeholder.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When debate ends without a judge verdict (Display Only or Self-convergence
without winner), show last round responses with "Use this" buttons instead
of "No final verdict" placeholder.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix debate elimination display and preserve original debater role numbers</title>
<updated>2026-02-14T03:59:20+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T03:59:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=ac9611478b4f394e62e4e4b2813dad337e22e698'/>
<id>ac9611478b4f394e62e4e4b2813dad337e22e698</id>
<content type='text'>
- Add elimination cards (orange themed) in Timeline showing who was convinced and by whom
- Add "N eliminated" badge in round headers
- Preserve original debater numbers after elimination by passing original_indices through debate_round()

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add elimination cards (orange themed) in Timeline showing who was convinced and by whom
- Add "N eliminated" badge in round headers
- Preserve original debater numbers after elimination by passing original_indices through debate_round()

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add background task persistence for debate &amp; council operations</title>
<updated>2026-02-14T03:40:31+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T03:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=bdf381a2c8a0337f7459000f487a80f9cbbbdd2f'/>
<id>bdf381a2c8a0337f7459000f487a80f9cbbbdd2f</id>
<content type='text'>
Decouple debate/council execution from SSE connection lifecycle so tasks
survive browser disconnects. Backend runs work as asyncio.Tasks with
progressive disk persistence; frontend can reconnect and recover state.

- New backend/app/services/tasks.py: task registry, broadcast pattern,
  disk persistence at milestones, stale task cleanup on startup
- New endpoints: POST start_debate/start_council, GET task stream/poll
- Frontend stores taskId on nodes, recovers running tasks on page load
- _applyPartialEvents rebuilds stage text + data from accumulated events

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Decouple debate/council execution from SSE connection lifecycle so tasks
survive browser disconnects. Backend runs work as asyncio.Tasks with
progressive disk persistence; frontend can reconnect and recover state.

- New backend/app/services/tasks.py: task registry, broadcast pattern,
  disk persistence at milestones, stale task cleanup on startup
- New endpoints: POST start_debate/start_council, GET task stream/poll
- Frontend stores taskId on nodes, recovers running tasks on page load
- _applyPartialEvents rebuilds stage text + data from accumulated events

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework debate prompts, add turn-based rounds and self-elimination convergence</title>
<updated>2026-02-14T01:31:53+00:00</updated>
<author>
<name>YurenHao0426</name>
<email>blackhao0426@gmail.com</email>
</author>
<published>2026-02-14T01:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/ContextFlow.git/commit/?id=51b5208b9b5ac51b7e531ddeb59093c1cb381491'/>
<id>51b5208b9b5ac51b7e531ddeb59093c1cb381491</id>
<content type='text'>
- Round 1 parallel (form positions), Round 2+ sequential turn-based (each model
  sees current round's prior responses before speaking)
- Prompts treat user question as open-ended, not as a debate proposition — models
  form their own thesis in Round 1 then defend it
- Structured opposition: each model defends own unique position, not FOR/AGAINST
- Self-convergence: each model judges if convinced after each round, eliminated
  models drop out, last one standing wins and provides final summary
- Skip convergence/judge checks on Round 1 (still forming positions)
- Auto-save now triggers on councilData/debateData updates so intermediate rounds
  persist across page refresh

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Round 1 parallel (form positions), Round 2+ sequential turn-based (each model
  sees current round's prior responses before speaking)
- Prompts treat user question as open-ended, not as a debate proposition — models
  form their own thesis in Round 1 then defend it
- Structured opposition: each model defends own unique position, not FOR/AGAINST
- Self-convergence: each model judges if convinced after each round, eliminated
  models drop out, last one standing wins and provides final summary
- Skip convergence/judge checks on Round 1 (still forming positions)
- Auto-save now triggers on councilData/debateData updates so intermediate rounds
  persist across page refresh

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
