Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa498f4cbb |
@@ -13,6 +13,7 @@ test('a package upgrade refreshes only a proven managed runtime, once per packag
|
|||||||
const stamp = {commit: 'b'.repeat(40), source: 'git'}
|
const stamp = {commit: 'b'.repeat(40), source: 'git'}
|
||||||
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, VALID_MARKER), true)
|
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, VALID_MARKER), true)
|
||||||
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, {...VALID_MARKER, pinnedCommit: stamp.commit}), false)
|
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, {...VALID_MARKER, pinnedCommit: stamp.commit}), false)
|
||||||
|
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, {...VALID_MARKER, pinnedCommit: 'c'.repeat(40), packageCommit: stamp.commit}), false)
|
||||||
assert.equal(needsPackagedRuntimeUpgrade(false, stamp, VALID_MARKER), false)
|
assert.equal(needsPackagedRuntimeUpgrade(false, stamp, VALID_MARKER), false)
|
||||||
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, null), false)
|
assert.equal(needsPackagedRuntimeUpgrade(true, stamp, null), false)
|
||||||
assert.equal(needsPackagedRuntimeUpgrade(true, {commit: '0'.repeat(40), source: 'fallback'}, VALID_MARKER), false)
|
assert.equal(needsPackagedRuntimeUpgrade(true, {commit: '0'.repeat(40), source: 'fallback'}, VALID_MARKER), false)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
export interface BootstrapMarkerLike {
|
export interface BootstrapMarkerLike {
|
||||||
pinnedCommit?: unknown
|
pinnedCommit?: unknown
|
||||||
|
packageCommit?: unknown
|
||||||
schemaVersion?: unknown
|
schemaVersion?: unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12,7 +13,7 @@ export function needsPackagedRuntimeUpgrade(
|
|||||||
): boolean {
|
): boolean {
|
||||||
return Boolean(packaged && stamp?.source !== 'fallback' &&
|
return Boolean(packaged && stamp?.source !== 'fallback' &&
|
||||||
/^[0-9a-f]{40}$/i.test(stamp?.commit || '') && !/^0+$/.test(stamp?.commit || '') &&
|
/^[0-9a-f]{40}$/i.test(stamp?.commit || '') && !/^0+$/.test(stamp?.commit || '') &&
|
||||||
hasValidBootstrapMarker(marker, 1) && marker?.pinnedCommit !== stamp?.commit)
|
hasValidBootstrapMarker(marker, 1) && (marker?.packageCommit || marker?.pinnedCommit) !== stamp?.commit)
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ActiveRuntimeState {
|
export interface ActiveRuntimeState {
|
||||||
|
|||||||
@@ -143,8 +143,8 @@ test('resolveMarkerPinnedCommit prefers real HEAD over fallback stamp zeros', ()
|
|||||||
resolveMarkerPinnedCommit({ commit: 'd'.repeat(40), branch: 'main' }, '/tmp/checkout', {
|
resolveMarkerPinnedCommit({ commit: 'd'.repeat(40), branch: 'main' }, '/tmp/checkout', {
|
||||||
resolveHead: () => realHead
|
resolveHead: () => realHead
|
||||||
}),
|
}),
|
||||||
'd'.repeat(40),
|
realHead,
|
||||||
'packaged real pin wins over checkout HEAD'
|
'marker reports the actual installed checkout, including a preserved newer runtime'
|
||||||
)
|
)
|
||||||
assert.equal(
|
assert.equal(
|
||||||
resolveMarkerPinnedCommit({ commit: ZERO_COMMIT, branch: 'main' }, '/tmp/missing', {
|
resolveMarkerPinnedCommit({ commit: ZERO_COMMIT, branch: 'main' }, '/tmp/missing', {
|
||||||
|
|||||||
@@ -111,16 +111,16 @@ function resolveMarkerPinnedCommit(
|
|||||||
): string | null {
|
): string | null {
|
||||||
const resolveHead = opts.resolveHead || resolveCheckoutHead
|
const resolveHead = opts.resolveHead || resolveCheckoutHead
|
||||||
|
|
||||||
if (installStamp && isPinnedCommit(installStamp.commit)) {
|
|
||||||
return installStamp.commit
|
|
||||||
}
|
|
||||||
|
|
||||||
const head = resolveHead(activeRoot)
|
const head = resolveHead(activeRoot)
|
||||||
|
|
||||||
if (head) {
|
if (head) {
|
||||||
return head
|
return head
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (installStamp && isPinnedCommit(installStamp.commit)) {
|
||||||
|
return installStamp.commit
|
||||||
|
}
|
||||||
|
|
||||||
return readExistingPinnedCommit(activeRoot)
|
return readExistingPinnedCommit(activeRoot)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -918,14 +918,14 @@ async function runBootstrap(opts) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const existingCheckout = hasExistingGitCheckout(activeRoot)
|
const existingCheckout = hasExistingGitCheckout(activeRoot)
|
||||||
const pinCommit = !existingCheckout
|
const pinCommit = Boolean(installStamp && isPinnedCommit(installStamp.commit)) || !existingCheckout
|
||||||
|
|
||||||
if (existingCheckout && installStamp && installStamp.commit) {
|
if (existingCheckout && installStamp && installStamp.commit) {
|
||||||
emit({
|
emit({
|
||||||
type: 'log',
|
type: 'log',
|
||||||
line:
|
line:
|
||||||
`[bootstrap] existing checkout detected at ${activeRoot}; ` +
|
`[bootstrap] existing checkout detected at ${activeRoot}; ` +
|
||||||
`not pinning to packaged install stamp ${installStamp.commit.slice(0, 12)}`
|
`applying packaged install stamp ${installStamp.commit.slice(0, 12)} with installer rollback protection`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1002,6 +1002,7 @@ async function runBootstrap(opts) {
|
|||||||
|
|
||||||
const markerPayload = {
|
const markerPayload = {
|
||||||
pinnedCommit,
|
pinnedCommit,
|
||||||
|
packageCommit: installStamp && isPinnedCommit(installStamp.commit) ? installStamp.commit : null,
|
||||||
pinnedBranch: installStamp ? installStamp.branch : null
|
pinnedBranch: installStamp ? installStamp.branch : null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4597,6 +4597,7 @@ function writeBootstrapMarker(payload) {
|
|||||||
const merged = {
|
const merged = {
|
||||||
schemaVersion: BOOTSTRAP_MARKER_SCHEMA_VERSION,
|
schemaVersion: BOOTSTRAP_MARKER_SCHEMA_VERSION,
|
||||||
pinnedCommit: payload.pinnedCommit || null,
|
pinnedCommit: payload.pinnedCommit || null,
|
||||||
|
packageCommit: payload.packageCommit || null,
|
||||||
pinnedBranch: payload.pinnedBranch || null,
|
pinnedBranch: payload.pinnedBranch || null,
|
||||||
completedAt: new Date().toISOString(),
|
completedAt: new Date().toISOString(),
|
||||||
desktopVersion: app.getVersion()
|
desktopVersion: app.getVersion()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "aiturk-ide",
|
"name": "aiturk-ide",
|
||||||
"productName": "AITURK IDE",
|
"productName": "AITURK IDE",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.3",
|
||||||
"description": "TurkServis resmi yapay zekâ geliştirme ortamı. Hermes Agent tabanlıdır.",
|
"description": "TurkServis resmi yapay zekâ geliştirme ortamı. Hermes Agent tabanlıdır.",
|
||||||
"author": "AITURK / TurkServis",
|
"author": "AITURK / TurkServis",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|||||||
Generated
+1
-1
@@ -65,7 +65,7 @@
|
|||||||
},
|
},
|
||||||
"apps/desktop": {
|
"apps/desktop": {
|
||||||
"name": "aiturk-ide",
|
"name": "aiturk-ide",
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@assistant-ui/core": "0.2.23",
|
"@assistant-ui/core": "0.2.23",
|
||||||
|
|||||||
Reference in New Issue
Block a user