ReviewOS

also looking at this

stacks/uplink

feat: let a text switch one thread between Claude and Codex

#52
Merged glennmichael123 wants to merge feat/per-thread-engine into main
16 files +316 -27
app/Models/Conversation.tsmodified+12-0
Changes to app/Models/Conversation.ts
@@ -70,5 +70,17 @@ export default defineModel({
7070 validation: { rule: schema.string() },
7171 factory: () => '',
7272 },
73
74 /**
75 * The engine this thread was switched to, or null to follow whatever the
76 * installation is set to. Null is the point: a thread that never asked
77 * keeps tracking the menubar's picker, so changing it there still works.
78 */
79 engine: {
80 order: 8,
81 fillable: true,
82 validation: { rule: schema.enum(['claude', 'codex']) },
83 factory: () => 'claude',
84 },
7385 },
7486} as const)