<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lattex.git, branch v0.6.0</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>Add browser-style project tabs: persistent home + one tab per project</title>
<updated>2026-08-18T12:24:40+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-08-18T12:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=ec8214a4d111d92ce7c44de29d1706f241aa9514'/>
<id>ec8214a4d111d92ce7c44de29d1706f241aa9514</id>
<content type='text'>
The project list is now a persistent home tab; each opened project runs
in its own WebContentsView tab below a 38px tab strip (hidden when only
home is open). Background tabs stay fully live (sync, collab, terminals).

Main process: per-project singletons (socket, sync bridge, compilation
manager, MCP state, compile watcher) become per-tab ProjectSession
objects keyed by webContents.id; PTYs are scoped per webContents.
Hardened against races found in review: concurrent ot:connect dedupe,
teardown/reopen serialization on the shared sync dir, destroyed-window
guards on all bridge sends, real logout that closes project tabs.

Renderer: tabs strip in the home renderer (wt-* classes, distinct from
the editor's .tab-bar file tabs), project tabs boot from ?projectId= and
connect straight into the editor; Back closes the tab.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The project list is now a persistent home tab; each opened project runs
in its own WebContentsView tab below a 38px tab strip (hidden when only
home is open). Background tabs stay fully live (sync, collab, terminals).

Main process: per-project singletons (socket, sync bridge, compilation
manager, MCP state, compile watcher) become per-tab ProjectSession
objects keyed by webContents.id; PTYs are scoped per webContents.
Hardened against races found in review: concurrent ot:connect dedupe,
teardown/reopen serialization on the shared sync dir, destroyed-window
guards on all bridge sends, real logout that closes project tabs.

Renderer: tabs strip in the home renderer (wt-* classes, distinct from
the editor's .tab-bar file tabs), project tabs boot from ?projectId= and
connect straight into the editor; Back closes the tab.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Upload Windows installer via gh CLI instead of electron-builder publisher</title>
<updated>2026-07-30T03:12:40+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T03:12:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=df3092328865949c088eed321e6675e3b7758c36'/>
<id>df3092328865949c088eed321e6675e3b7758c36</id>
<content type='text'>
The builder's GitHub publisher refuses to attach assets to releases
published more than two hours earlier.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The builder's GitHub publisher refuses to attach assets to releases
published more than two hours earlier.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Publish CI assets to the existing release, not a draft</title>
<updated>2026-07-30T03:08:01+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T03:08:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=c784ead2f221609686a856fff0a827e51c50dc29'/>
<id>c784ead2f221609686a856fff0a827e51c50dc29</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Quote npmRebuild flag for pwsh in Windows CI</title>
<updated>2026-07-30T03:02:55+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T03:02:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=2b094156b9a8c13b1e4ec117db3c9d10392be90c'/>
<id>2b094156b9a8c13b1e4ec117db3c9d10392be90c</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Windows CI: explicit verbose node-pty rebuild instead of install-app-deps</title>
<updated>2026-07-30T02:59:30+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T02:59:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=d09de8c873d4d7092e94b354b3457ef496da5cef'/>
<id>d09de8c873d4d7092e94b354b3457ef496da5cef</id>
<content type='text'>
@electron/rebuild swallows child-process output and hung indefinitely at
"preparing node-pty" on both windows-latest and windows-2022 images.
Skip lifecycle scripts during npm ci and rebuild node-pty for Electron
directly via node-gyp (verbose, 10-minute step timeout), then package
with npmRebuild=false.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
@electron/rebuild swallows child-process output and hung indefinitely at
"preparing node-pty" on both windows-latest and windows-2022 images.
Skip lifecycle scripts during npm ci and rebuild node-pty for Electron
directly via node-gyp (verbose, 10-minute step timeout), then package
with npmRebuild=false.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Pin Windows CI to windows-2022 image</title>
<updated>2026-07-30T02:29:24+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T02:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=429d737f940a52ca4124f13f5911e6759d4b63bb'/>
<id>429d737f940a52ca4124f13f5911e6759d4b63bb</id>
<content type='text'>
windows-latest moved to Visual Studio 2026 in June 2026; node-gyp cannot
detect VS2026 yet (fails on v9, hangs on v11). Also add a 25-minute job
timeout and electron-builder debug output.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
windows-latest moved to Visual Studio 2026 in June 2026; node-gyp cannot
detect VS2026 yet (fails on v9, hangs on v11). Also add a 25-minute job
timeout and electron-builder debug output.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Pin node-gyp ^11 via overrides for VS2022 detection on Windows CI</title>
<updated>2026-07-30T01:08:42+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T01:08:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=6026c4191cfdaadd379565cfc064158d619f2fbc'/>
<id>6026c4191cfdaadd379565cfc064158d619f2fbc</id>
<content type='text'>
@electron/rebuild requires the in-tree node-gyp directly, so the
npm_config_node_gyp env override had no effect — force the resolution
tree-wide instead.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
@electron/rebuild requires the in-tree node-gyp directly, so the
npm_config_node_gyp env override had no effect — force the resolution
tree-wide instead.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Windows CI: use latest node-gyp for VS2022 detection</title>
<updated>2026-07-30T01:04:29+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T01:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=e1a48bcf4b554d8a4f3d2cfa73df69c548cdde8b'/>
<id>e1a48bcf4b554d8a4f3d2cfa73df69c548cdde8b</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Release v0.5.0</title>
<updated>2026-07-30T01:01:07+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T01:01:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=06a972b0f72930ae29d5388764062b83285d39fc'/>
<id>06a972b0f72930ae29d5388764062b83285d39fc</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Cross-platform support: Windows build target and CI release workflow</title>
<updated>2026-07-30T01:00:55+00:00</updated>
<author>
<name>haoyuren</name>
<email>13851610112@163.com</email>
</author>
<published>2026-07-30T01:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.blackhao.com/lattex.git/commit/?id=7297f7c339186f8af50f4f0ed3734e4ad4b47aed'/>
<id>7297f7c339186f8af50f4f0ed3734e4ad4b47aed</id>
<content type='text'>
- Normalize watcher paths to forward slashes (Windows events use
  backslashes; all sync maps are '/'-keyed), path.delimiter for
  PATH/TEXINPUTS, dirname() instead of '/'-substring splits, bridge log
  in os.tmpdir()
- Platform-aware TeX search paths (TeX Live / MiKTeX on Windows),
  terminal shell default (COMSPEC/powershell), native window frame off
  macOS
- electron-builder: NSIS target + win icon + GitHub publish provider
- GitHub Actions workflow builds the Windows installer on tag push
  (node-pty needs MSVC — cannot cross-compile from macOS) and attaches
  it to the release

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Normalize watcher paths to forward slashes (Windows events use
  backslashes; all sync maps are '/'-keyed), path.delimiter for
  PATH/TEXINPUTS, dirname() instead of '/'-substring splits, bridge log
  in os.tmpdir()
- Platform-aware TeX search paths (TeX Live / MiKTeX on Windows),
  terminal shell default (COMSPEC/powershell), native window frame off
  macOS
- electron-builder: NSIS target + win icon + GitHub publish provider
- GitHub Actions workflow builds the Windows installer on tag push
  (node-pty needs MSVC — cannot cross-compile from macOS) and attaches
  it to the release

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