Repository navigation
Description
An attempted merge of upstream/main (428 commits, merge-base 338e73859a, fork main at a8d646330f) was aborted before resolving conflicts, because upstream now ships its own keep-awake feature that overlaps the fork's, and choosing between them is a product decision.
The overlap
Fork (#17, 85d06ae7e9):
- Setting
keepAwakeMode: "off" | "agent" | "always", default"off". - Live status RPC
server.subscribeKeepAwakeStatus(ServerKeepAwakeStatus), shown in webKeepAwakeSettings.tsxand the mobile Server Controls footer (useKeepAwakeFooter.ts). apps/server/src/background/KeepAwake.ts(caffeinate, systemd-inhibit, PowerShell), with a restart-once failure policy.
Upstream (pingdotgg/t3code#34128, 587deab7d3):
- Setting
keepAwakeWhileAgentsWork: boolean, defaulttrue. - Its own
apps/server/src/background/KeepAwake.ts(same three platform helpers, 60 s release grace, exponential retry backoff,holdWhileWantedstream helper) registered inserver.ts. - A toggle in the Maintenance settings panel, a
keep-awake-while-agents-worksettings search entry, and a mobile Server Controls row.
Why it was not resolved mechanically
Git merges packages/contracts/src/settings.ts, settingsSearch.ts and SettingsPanels.tsx cleanly, so a naive merge ships both settings and both UIs. KeepAwake.ts, KeepAwake.test.ts and server.ts conflict. If both layers survive, upstream's default-on toggle holds a sleep inhibitor on every Kinako install, including ones whose keepAwakeMode is "off".
Decision needed
- Keep the fork's implementation and drop upstream's (setting, layer, Maintenance toggle, search entry, mobile row). Every future upstream edit to
KeepAwake.tsconflicts. - Adopt upstream's implementation and drop the fork's, possibly migrating
keepAwakeMode("agent"maps totrue,"off"tofalse;"always"has no upstream equivalent) and porting the live status RPC on top. - Hybrid: upstream's
KeepAwake.tsas the base, extended with the fork's"always"mode and status RPC, with one setting.
Also decide the default: the fork chose off, upstream chose on.
Other notes from the scan (no action needed yet)
- 70 conflicted files (59 after the classifier and lockfile), no new upstream workflows to disable.
- Upstream migration
087_ProjectionProjectsCustomTitle.tstouchesprojection_projects, which a fork migration alters; the fork schema test needs to confirm it. - Unauthenticated surface changes upstream in
server.ts,ws.ts,McpHttpServer.ts,ServerEnvironment.tsandenvironmentHttp.ts; these get the usual step 6 audit on the next attempt.
Once the keep-awake direction is decided, rerun the merge-upstream skill.
Activity
chore(fork): merge upstream main