Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,35 @@ export function createDeveloperToolsController() {
const [rebuildState, setRebuildState] = createSignal<RebuildState>("idle")
const [rebuildError, setRebuildError] = createSignal<string | undefined>(undefined)

// On mount, check if we just came back from a successful rebuild reload
// On mount, check if we just came back from a rebuild (successful or in-progress).
// The "rebuilding" flag survives iframe reloads caused by file-watcher churn
// (e.g. git checkout in a watched workspace folder during remote rebuild).
onMount(() => {
try {
if (localStorage.getItem("amicode:devtools-rebuilt") === "1") {
const wasRebuilding = localStorage.getItem("amicode:devtools-rebuilding") === "1"
const didFinish = localStorage.getItem("amicode:devtools-rebuilt") === "1"

if (wasRebuilding && didFinish) {
// Rebuild completed during a reload — show success
localStorage.removeItem("amicode:devtools-rebuilding")
localStorage.removeItem("amicode:devtools-rebuilt")
setRebuildState("rebuilt")
setTimeout(() => setRebuildState("idle"), 5000)
} else if (wasRebuilding) {
// Still rebuilding — restore the indicator (iframe reloaded mid-rebuild)
setRebuildState("rebuilding")
// Safety timeout: clear after 5 min to avoid permanently stuck state
setTimeout(() => {
if (rebuildState() === "rebuilding") {
try { localStorage.removeItem("amicode:devtools-rebuilding") } catch {}
setRebuildState("failed")
setRebuildError("Rebuild timed out")
}
}, 300_000)
} else if (didFinish) {
// Legacy path (rebuilding flag missing but rebuilt is set)
localStorage.removeItem("amicode:devtools-rebuilt")
setRebuildState("rebuilt")
// Clear the "rebuilt" badge after 5 seconds
setTimeout(() => setRebuildState("idle"), 5000)
}
} catch {
Expand Down Expand Up @@ -74,10 +96,13 @@ export function createDeveloperToolsController() {
setRebuildState("rebuilding")
setRebuildError(undefined)
} else if (d.state === "failed") {
try { localStorage.removeItem("amicode:devtools-rebuilding") } catch {}
setRebuildState("failed")
setRebuildError(d.error ?? "Unknown error")
} else if (d.state === "done") {
try { localStorage.removeItem("amicode:devtools-rebuilding") } catch {}
// The window reload follows shortly — "rebuilt" flag is read on next mount
}
// "done" state triggers a reload — the "rebuilt" flag is read on next mount
}
}

Expand Down Expand Up @@ -108,6 +133,7 @@ export function createDeveloperToolsController() {
setRebuildState("rebuilding")
setRebuildError(undefined)
try {
localStorage.setItem("amicode:devtools-rebuilding", "1")
localStorage.setItem("amicode:devtools-reopen", "1")
localStorage.setItem("amicode:devtools-rebuilt", "1")
} catch {
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "ملاحظات الإصدار",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/br.ts
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Notas da versão",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/bs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Bilješke o izdanju",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/da.ts
Original file line number Diff line number Diff line change
Expand Up @@ -843,7 +843,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Udgivelsesnoter",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -797,7 +797,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Versionshinweise",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1028,7 +1028,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",

Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Notas de la versión",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -795,7 +795,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Notes de version",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "リリースノート",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "릴리스 노트",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/no.ts
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Utgivelsesnotater",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -785,7 +785,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Informacje o wydaniu",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -852,7 +852,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Примечания к выпуску",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/th.ts
Original file line number Diff line number Diff line change
Expand Up @@ -839,7 +839,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "บันทึกการอัปเดต",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -858,7 +858,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Sürüm notları",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/uk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "Нотатки до релізу",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "发行说明",
Expand Down
2 changes: 1 addition & 1 deletion packages/app/src/i18n/zht.ts
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ export const dict = {
"settings.general.row.amicodePath.building": "Building extension…",
"settings.general.row.amicodePath.reloadNeeded": "Reload to apply",
"settings.general.row.devTools.rebuildLocally": "Rebuild Locally",
"settings.general.row.devTools.rebuildRemotely": "Rebuild Remotely",
"settings.general.row.devTools.rebuildRemotely": "Rebuild from Latest",
"settings.general.row.devTools.rebuilding": "Rebuilding…",
"settings.general.row.devTools.rebuilt": "Rebuilt!",
"settings.general.row.releaseNotes.title": "發行說明",
Expand Down
Loading