<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lattex.git/src, branch v0.2.2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/'/>
<entry>
<title>Use polling for file watcher to reliably detect external edits</title>
<updated>2026-03-13T22:28:32+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T22:28:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=56b216fdf73c166ead83231074e3573983b7de51'/>
<id>56b216fdf73c166ead83231074e3573983b7de51</id>
<content type='text'>
chokidar FSEvents is unreliable in macOS temp dirs and misses atomic
writes (write temp + rename) used by Claude Code and other editors.
Switch to usePolling with 500ms interval and atomic: true.

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>
chokidar FSEvents is unreliable in macOS temp dirs and misses atomic
writes (write temp + rename) used by Claude Code and other editors.
Switch to usePolling with 500ms interval and atomic: true.

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Separate Terminal and Claude into independent pty instances</title>
<updated>2026-03-13T22:28:27+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T22:28:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=e377dabf99595a6783fd962a8765d2214a635ac2'/>
<id>e377dabf99595a6783fd962a8765d2214a635ac2</id>
<content type='text'>
- Support multiple named pty instances via ID-based IPC channels
- Terminal tab spawns a shell, Claude tab spawns `claude` CLI separately
- Fix pty race condition: old instance's onExit callback could delete
  the replacement instance from the Map during React StrictMode re-mount
- Guard against StrictMode double-initialization in TerminalInstance

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>
- Support multiple named pty instances via ID-based IPC channels
- Terminal tab spawns a shell, Claude tab spawns `claude` CLI separately
- Fix pty race condition: old instance's onExit callback could delete
  the replacement instance from the Map during React StrictMode re-mount
- Guard against StrictMode double-initialization in TerminalInstance

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add bidirectional sync for binary files (PDF, images, etc.)</title>
<updated>2026-03-13T21:56:13+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T21:56:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=2d268365bc1f9f9b550812a8aa406b7abc005497'/>
<id>2d268365bc1f9f9b550812a8aa406b7abc005497</id>
<content type='text'>
FileSyncBridge now handles binary fileRefs in addition to text docs:
- Downloads all binary files to temp dir on project connect
- Watches for binary file changes on disk and uploads via REST API
- Listens for Overleaf socket events (reciveNewFile, reciveNewDoc,
  removeEntity, reciveEntityRename) to sync remote changes to disk
- Tracks binary files by SHA1 hash to avoid redundant 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>
FileSyncBridge now handles binary fileRefs in addition to text docs:
- Downloads all binary files to temp dir on project connect
- Watches for binary file changes on disk and uploads via REST API
- Listens for Overleaf socket events (reciveNewFile, reciveNewDoc,
  removeEntity, reciveEntityRename) to sync remote changes to disk
- Tracks binary files by SHA1 hash to avoid redundant uploads

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add drag-and-drop file upload, fix project creation modal and API endpoints</title>
<updated>2026-03-13T21:48:56+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T21:48:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=c309944494eb2de63bf9b35ea722d50b52e688a3'/>
<id>c309944494eb2de63bf9b35ea722d50b52e688a3</id>
<content type='text'>
- Add file upload to Overleaf projects via multipart POST with correct
  "name" text field (server reads filename from req.body.name, not from
  Content-Disposition filename)
- Add drag-and-drop support in file tree panel with visual feedback
- Replace window.prompt() with custom modal for new project creation
  (prompt() returns null in Electron)
- Fix API endpoints: /api/project/new → /project/new

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 file upload to Overleaf projects via multipart POST with correct
  "name" text field (server reads filename from req.body.name, not from
  Content-Disposition filename)
- Add drag-and-drop support in file tree panel with visual feedback
- Replace window.prompt() with custom modal for new project creation
  (prompt() returns null in Electron)
- Fix API endpoints: /api/project/new → /project/new

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add code folding, outline view, smart closing, math preview, syntax improvements</title>
<updated>2026-03-13T20:50:40+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T20:50:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=dd2cd06d4e8b64d6e0b9488a1887b05ecdc7d533'/>
<id>dd2cd06d4e8b64d6e0b9488a1887b05ecdc7d533</id>
<content type='text'>
- LaTeX code folding: \begin/\end, sections, \if/\fi, comment blocks, braces
- Outline view: section hierarchy in sidebar with click-to-navigate
- Smart closing: auto-close \begin{env} with \end{env} on Enter, $...$ auto-pair, selection surround
- Math hover preview: tooltip when hovering over $...$ expressions
- Enhanced syntax highlighting: bolder commands, better color differentiation
- Fix compile error click: jump to line works for errors without explicit file path
- Semi-transparent active line + selection highlight layering

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>
- LaTeX code folding: \begin/\end, sections, \if/\fi, comment blocks, braces
- Outline view: section hierarchy in sidebar with click-to-navigate
- Smart closing: auto-close \begin{env} with \end{env} on Enter, $...$ auto-pair, selection surround
- Math hover preview: tooltip when hovering over $...$ expressions
- Enhanced syntax highlighting: bolder commands, better color differentiation
- Fix compile error click: jump to line works for errors without explicit file path
- Semi-transparent active line + selection highlight layering

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix terminal cwd, selection highlight, comment range preservation</title>
<updated>2026-03-13T07:15:10+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T07:15:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=82447ef3229336b914344f5671c4cb8bd589dcdc'/>
<id>82447ef3229336b914344f5671c4cb8bd589dcdc</id>
<content type='text'>
- Terminal now spawns in project sync directory so Claude Code can
  read/write .tex files
- Selection highlight uses semi-transparent color to layer above
  active line highlight
- External edits use diff-match-patch for minimal changes instead of
  full doc replace, preserving comment highlight positions
- Set connection state on project open so status bar shows Connected
- Remove cursor:pointer from comment highlights

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>
- Terminal now spawns in project sync directory so Claude Code can
  read/write .tex files
- Selection highlight uses semi-transparent color to layer above
  active line highlight
- External edits use diff-match-patch for minimal changes instead of
  full doc replace, preserving comment highlight positions
- Set connection state on project open so status bar shows Connected
- Remove cursor:pointer from comment highlights

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update logo, app icon, fix shutdown crash, add README</title>
<updated>2026-03-13T06:37:50+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T06:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=1f68cb8a5de45c8b697ca74085cd5aae2c361787'/>
<id>1f68cb8a5de45c8b697ca74085cd5aae2c361787</id>
<content type='text'>
- Simplified logo: cosmic latte cup on brown background with turquoise
  liquid and sparkle stars
- Square app icon (.icns) for macOS dock
- Fix crash on window close: guard all IPC sends against destroyed window
- Include ws/chokidar/diff-match-patch in packaged app
- Add README with features and install instructions

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>
- Simplified logo: cosmic latte cup on brown background with turquoise
  liquid and sparkle stars
- Square app icon (.icns) for macOS dock
- Fix crash on window close: guard all IPC sends against destroyed window
- Include ws/chokidar/diff-match-patch in packaged app
- Add README with features and install instructions

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add AGPL-3.0 license and copyright headers to all source files</title>
<updated>2026-03-13T06:15:01+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T06:15:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=8b3b3be550307598e84c59e3d708e6ee9a3e1beb'/>
<id>8b3b3be550307598e84c59e3d708e6ee9a3e1beb</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>Rename to LatteX, add LaTeX autocomplete, fix comment highlight positions</title>
<updated>2026-03-13T05:52:59+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-13T05:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=52a5c24f5e28a4b2ba8ffb006874cd7b552d60f7'/>
<id>52a5c24f5e28a4b2ba8ffb006874cd7b552d60f7</id>
<content type='text'>
- Rename project from ClaudeTeX to LatteX (Cosmic Latte theme pun)
- Add new coffee cup logo and branded welcome/project screens
- Add 5-source LaTeX autocomplete: commands, environments, \ref, \cite, file paths
- Fix comment highlight drift by decoding WebSocket-encoded UTF-8 lines and range
  text via decodeURIComponent(escape()), matching Overleaf's client implementation
- Remove hacky byte-offset position remapping from index.ts
- Add pinch-to-zoom on PDF viewer

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>
- Rename project from ClaudeTeX to LatteX (Cosmic Latte theme pun)
- Add new coffee cup logo and branded welcome/project screens
- Add 5-source LaTeX autocomplete: commands, environments, \ref, \cite, file paths
- Fix comment highlight drift by decoding WebSocket-encoded UTF-8 lines and range
  text via decodeURIComponent(escape()), matching Overleaf's client implementation
- Remove hacky byte-offset position remapping from index.ts
- Add pinch-to-zoom on PDF viewer

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add collaborator cursors and project chat</title>
<updated>2026-03-12T23:11:10+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-03-12T23:11:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=a0dd3d7ac642111faeaefd02c5a452898b9c6d49'/>
<id>a0dd3d7ac642111faeaefd02c5a452898b9c6d49</id>
<content type='text'>
Collaborator cursors:
- Real-time cursor positions via clientTracking Socket.IO events
- CM6 extension renders colored cursor widgets with name labels
- Throttled cursor position broadcasting (300ms)
- Connected users count in toolbar and status bar

Project chat:
- Chat panel in right sidebar (toggleable)
- Load message history via REST API
- Send messages with real-time delivery via Socket.IO new-chat-message
- Auto-scroll, avatars, timestamps

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>
Collaborator cursors:
- Real-time cursor positions via clientTracking Socket.IO events
- CM6 extension renders colored cursor widgets with name labels
- Throttled cursor position broadcasting (300ms)
- Connected users count in toolbar and status bar

Project chat:
- Chat panel in right sidebar (toggleable)
- Load message history via REST API
- Send messages with real-time delivery via Socket.IO new-chat-message
- Auto-scroll, avatars, timestamps

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