Compare commits

...

2 Commits

Author SHA1 Message Date
chyoo 0b26613f6e version up! 2026-07-08 11:43:03 +09:00
chyoo 72180e0ea1 remove polling 2026-07-08 11:09:17 +09:00
4 changed files with 8 additions and 36 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "lms",
"version": "1.0.15",
"version": "1.0.18",
"description": "Autonomy Studio LMS Electron app",
"main": "./out/main/index.js",
"author": {
+5 -11
View File
@@ -655,8 +655,6 @@ function LocalPcWorkspaceMockup({
const studentSlug = makeStudentSlug(studentEmail)
const clonePathPreview = makePlatformWorkspaceRoot(configuredWorkspaceRoot, studentSlug, weekNumber, platformKey)
const remoteRuntimeRoot = `/tmp/autonomy-studio/sessions/${`${platformId}-${studentSlug}-week-${weekNumber}`.replace(/[^a-zA-Z0-9_.-]+/g, '-')}`
const draftClonePathPreview = makePlatformWorkspaceRoot(configuredDraftWorkspaceRoot, studentSlug, weekNumber, platformKey)
const draftGiteaRepositoryPreview = `${sourceSettingsDraft.giteaBaseUrl.replace(/\/+$/, '')}/${sourceSettingsDraft.giteaOwner}/${studentSlug}-week-${weekNumber}.git`
const {
visualizationStacks,
visualizationStack,
@@ -1415,8 +1413,8 @@ function LocalPcWorkspaceMockup({
workspaceRoot: remoteWorkspace
? platformSourceSettingsDefaults.workspaceRoot
: sourceSettingsDraft.workspaceRoot.trim() || defaultStudioSourceSettings.workspaceRoot,
giteaBaseUrl: sourceSettingsDraft.giteaBaseUrl.trim().replace(/\/+$/, '') || defaultStudioSourceSettings.giteaBaseUrl,
giteaOwner: sourceSettingsDraft.giteaOwner.trim() || defaultStudioSourceSettings.giteaOwner,
giteaBaseUrl: sourceSettings.giteaBaseUrl,
giteaOwner: sourceSettings.giteaOwner,
gpuEnabled: sourceSettingsDraft.gpuEnabled,
rosDomainId: sourceSettingsDraft.rosDomainId.trim() || defaultStudioSourceSettings.rosDomainId
})
@@ -2418,8 +2416,6 @@ function LocalPcWorkspaceMockup({
configuredDraftWorkspaceRoot={configuredDraftWorkspaceRoot}
sourceSettingsDraft={sourceSettingsDraft}
platformSourceSettingsDefaults={platformSourceSettingsDefaults}
draftClonePathPreview={draftClonePathPreview}
draftGiteaRepositoryPreview={draftGiteaRepositoryPreview}
onUpdateSourceSetting={updateSourceSetting}
onResetSourceSettings={setSourceSettingsDraft}
onSaveSourceSettings={saveSourceSettings}
@@ -3013,8 +3009,9 @@ export default function App(): React.JSX.Element {
useEffect(() => {
if (!courseSelectionVisible) return
if (studentCoursesLoaded || studentCoursesLoading) return
void loadStudentCourses({ autoSelectSingle: false })
}, [courseSelectionVisible, loadStudentCourses])
}, [courseSelectionVisible, loadStudentCourses, studentCoursesLoaded, studentCoursesLoading])
const loadCurriculum = useCallback(async (): Promise<void> => {
if (!authReady || !studentCoursesLoaded || courseSelectionVisible || !selectedCourseId) return
@@ -4068,10 +4065,7 @@ export default function App(): React.JSX.Element {
activeLearningStep={activeLearningStep}
allowFutureLearningSteps={publicGuideCourseActive}
onLearningStepSelect={publicGuideCourseActive ? setActiveLearningStep : undefined}
onSubmissionRecorded={() => {
setCurriculumRefreshSignal((current) => current + 1)
void loadStudentCourses({ autoSelectSingle: false })
}}
onSubmissionRecorded={() => undefined}
/>
</div>
)}
+1 -1
View File
@@ -87,7 +87,7 @@ const LAUNCHER_API_BASE_URL = NOTIFICATION_API_BASE_URL.replace(/\/api$/, '')
const LMS_AUTH_SESSION_STORAGE_KEY = 'autonomy-studio.lms.auth-session'
const NOTIFICATION_DROPDOWN_LIMIT = 10
const NOTIFICATION_MODAL_PAGE_SIZE = 8
const NOTIFICATION_REFRESH_INTERVAL_MS = 10_000
const NOTIFICATION_REFRESH_INTERVAL_MS = 60_000
const normalizeNotification = (notification: NotificationMessage): NotificationMessage => ({
...notification,
@@ -10,8 +10,6 @@ type Props = {
configuredDraftWorkspaceRoot: string
sourceSettingsDraft: StudioSourceSettings
platformSourceSettingsDefaults: StudioSourceSettings
draftClonePathPreview: string
draftGiteaRepositoryPreview: string
onUpdateSourceSetting: <Key extends keyof StudioSourceSettings>(key: Key, value: StudioSourceSettings[Key]) => void
onResetSourceSettings: (settings: StudioSourceSettings) => void
onSaveSourceSettings: () => void
@@ -26,8 +24,6 @@ function WorkspaceSettingsView({
configuredDraftWorkspaceRoot,
sourceSettingsDraft,
platformSourceSettingsDefaults,
draftClonePathPreview,
draftGiteaRepositoryPreview,
onUpdateSourceSetting,
onResetSourceSettings,
onSaveSourceSettings
@@ -50,7 +46,7 @@ function WorkspaceSettingsView({
<div className={['mt-5 rounded-lg border p-4', dark ? 'border-white/10 bg-[#1f1f1f]' : 'border-[#e1e6ef] bg-[#f8fafc]'].join(' ')}>
<p className={['text-[13px] font-black', textStrong].join(' ')}>공용 플랫폼 환경</p>
<p className={['mt-2 text-[12px] font-semibold leading-relaxed', textMid].join(' ')}>
원격 플랫폼의 워크스페이스와 저장소 설정은 강사/관리자 설정을 사용합니다.
원격 플랫폼의 워크스페이스 설정은 강사/관리자 설정을 사용합니다.
</p>
<div className="mt-4 grid gap-2 text-[12px] font-semibold">
<div className={['rounded-md px-3 py-2', dark ? 'bg-white/[0.05] text-white/62' : 'bg-white text-[#4f596b]'].join(' ')}>
@@ -76,12 +72,6 @@ function WorkspaceSettingsView({
onChange={(value) => onUpdateSourceSetting('rosDomainId', value.replace(/[^\d]/g, '').slice(0, 3))}
dark={dark}
/>
<StudioSettingsField
label="Gitea 주소"
value={sourceSettingsDraft.giteaBaseUrl}
onChange={(value) => onUpdateSourceSetting('giteaBaseUrl', value)}
dark={dark}
/>
<StudioSettingsSwitch
label="GPU 가속"
description="ON이면 Docker 실행 시 NVIDIA GPU를 사용합니다."
@@ -91,18 +81,6 @@ function WorkspaceSettingsView({
/>
</div>
<div className={['mt-5 rounded-lg border p-4', dark ? 'border-white/10 bg-[#1f1f1f]' : 'border-[#e1e6ef] bg-[#f8fafc]'].join(' ')}>
<p className={['text-[12px] font-black', textMid].join(' ')}>저장소</p>
<div className="mt-3 grid gap-2 font-mono text-[12px]">
<div className={['rounded-md px-3 py-2', dark ? 'bg-white/[0.05] text-white/68' : 'bg-white text-[#4f596b]'].join(' ')}>
clone path: {draftClonePathPreview}
</div>
<div className={['rounded-md px-3 py-2', dark ? 'bg-white/[0.05] text-white/68' : 'bg-white text-[#4f596b]'].join(' ')}>
repository: {draftGiteaRepositoryPreview}
</div>
</div>
</div>
<div className="mt-5 flex justify-end gap-2">
<button
type="button"