@profoundlogic/coderflow-server 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coder-server.js +1 -1
- package/dist/config/cli-models.json +1 -0
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/shipped-skills/skill-editor/SKILL.md +124 -231
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/environments.css +81 -1
- package/dist/web-ui/public/environments.html +8 -3
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.css +28 -0
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.html +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/server-health.js +1 -1
- package/dist/web-ui/public/settings.css +1 -0
- package/dist/web-ui/public/settings.html +5 -5
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.css +110 -3
- package/dist/web-ui/public/skills.html +7 -4
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/styles.css +137 -1
- package/dist/web-ui/public/task.html +22 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x17d934=_0x1d0e;(function(_0x35b2da,_0x3c9f22){const _0x5ceb7f=_0x1d0e,_0x1fdac6=_0x35b2da();while(!![]){try{const _0x57bc48=-parseInt(_0x5ceb7f(0x139))/0x1+-parseInt(_0x5ceb7f(0x125))/0x2*(parseInt(_0x5ceb7f(0x141))/0x3)+-parseInt(_0x5ceb7f(0x138))/0x4*(-parseInt(_0x5ceb7f(0x148))/0x5)+parseInt(_0x5ceb7f(0x12b))/0x6+parseInt(_0x5ceb7f(0x14b))/0x7+parseInt(_0x5ceb7f(0x14c))/0x8+-parseInt(_0x5ceb7f(0x111))/0x9*(parseInt(_0x5ceb7f(0x135))/0xa);if(_0x57bc48===_0x3c9f22)break;else _0x1fdac6['push'](_0x1fdac6['shift']());}catch(_0x382a22){_0x1fdac6['push'](_0x1fdac6['shift']());}}}(_0x3e36,0xe0465));import{initTheme,mountThemeToggle}from'./theme.js';initTheme();const urlParams=new URLSearchParams(window[_0x17d934(0x14a)][_0x17d934(0x114)]),token=urlParams[_0x17d934(0x143)](_0x17d934(0x118)),loadingEl=document[_0x17d934(0x14f)](_0x17d934(0x129)),setupContentEl=document['getElementById'](_0x17d934(0x11b)),setupFormEl=document[_0x17d934(0x14f)]('setup-form'),setupMessageEl=document[_0x17d934(0x14f)]('setup-message'),userUsernameEl=document[_0x17d934(0x14f)](_0x17d934(0x12e)),userNameEl=document[_0x17d934(0x14f)](_0x17d934(0x144)),passwordInput=document[_0x17d934(0x14f)]('password'),confirmPasswordInput=document[_0x17d934(0x14f)](_0x17d934(0x13d)),submitButton=setupFormEl?.[_0x17d934(0x145)](_0x17d934(0x11f));function _0x1d0e(_0x5dfd07,_0x1003fc){_0x5dfd07=_0x5dfd07-0x110;const _0x3e361a=_0x3e36();let _0x1d0eca=_0x3e361a[_0x5dfd07];if(_0x1d0e['RXHvWz']===undefined){var _0x24ef58=function(_0x2df069){const _0x55b0a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cf4a8='',_0x2289cc='';for(let _0x59405e=0x0,_0x32478d,_0x26d4ea,_0x578eae=0x0;_0x26d4ea=_0x2df069['charAt'](_0x578eae++);~_0x26d4ea&&(_0x32478d=_0x59405e%0x4?_0x32478d*0x40+_0x26d4ea:_0x26d4ea,_0x59405e++%0x4)?_0x1cf4a8+=String['fromCharCode'](0xff&_0x32478d>>(-0x2*_0x59405e&0x6)):0x0){_0x26d4ea=_0x55b0a1['indexOf'](_0x26d4ea);}for(let _0x17bdd1=0x0,_0xec4909=_0x1cf4a8['length'];_0x17bdd1<_0xec4909;_0x17bdd1++){_0x2289cc+='%'+('00'+_0x1cf4a8['charCodeAt'](_0x17bdd1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2289cc);};_0x1d0e['nvUzjJ']=_0x24ef58,_0x1d0e['yXrFRR']={},_0x1d0e['RXHvWz']=!![];}const _0x449de4=_0x3e361a[0x0],_0x18e11b=_0x5dfd07+_0x449de4,_0x4aa8c7=_0x1d0e['yXrFRR'][_0x18e11b];return!_0x4aa8c7?(_0x1d0eca=_0x1d0e['nvUzjJ'](_0x1d0eca),_0x1d0e['yXrFRR'][_0x18e11b]=_0x1d0eca):_0x1d0eca=_0x4aa8c7,_0x1d0eca;}function showMessage(_0x1cf4a8,_0x2289cc=_0x17d934(0x13a)){const _0x31b246=_0x17d934;setupMessageEl['textContent']=_0x1cf4a8,setupMessageEl['className']=_0x31b246(0x119)+_0x2289cc+_0x31b246(0x11c);}function hideMessage(){const _0x2c66f2=_0x17d934;setupMessageEl[_0x2c66f2(0x14d)]=_0x2c66f2(0x140);}function showError(_0x59405e){const _0x2f7ff5=_0x17d934;loadingEl['classList'][_0x2f7ff5(0x12f)](_0x2f7ff5(0x110)),setupContentEl[_0x2f7ff5(0x146)]['display']=_0x2f7ff5(0x14e),document[_0x2f7ff5(0x14f)](_0x2f7ff5(0x11e))[_0x2f7ff5(0x146)][_0x2f7ff5(0x117)]=_0x2f7ff5(0x126),setupFormEl[_0x2f7ff5(0x146)][_0x2f7ff5(0x117)]=_0x2f7ff5(0x126),showMessage(_0x59405e,_0x2f7ff5(0x13a));}async function validateToken(){const _0x244cec=_0x17d934;if(!token){showError(_0x244cec(0x147));return;}try{const _0x32478d=await fetch(_0x244cec(0x13b)+encodeURIComponent(token)),_0x26d4ea=await _0x32478d[_0x244cec(0x13c)]();if(!_0x26d4ea['valid']){showError(_0x26d4ea[_0x244cec(0x13a)]||_0x244cec(0x149));return;}loadingEl[_0x244cec(0x12c)][_0x244cec(0x12f)](_0x244cec(0x110)),setupContentEl[_0x244cec(0x146)]['display']=_0x244cec(0x14e),userUsernameEl[_0x244cec(0x113)]=_0x26d4ea[_0x244cec(0x123)][_0x244cec(0x150)],userNameEl[_0x244cec(0x113)]=_0x26d4ea[_0x244cec(0x123)]['name'];const _0x578eae=document[_0x244cec(0x145)](_0x244cec(0x121));_0x26d4ea['type']===_0x244cec(0x12d)?_0x578eae[_0x244cec(0x113)]=_0x244cec(0x151):_0x578eae[_0x244cec(0x113)]=_0x244cec(0x115),passwordInput[_0x244cec(0x13f)]();}catch(_0x17bdd1){console['error'](_0x244cec(0x142),_0x17bdd1),showError(_0x244cec(0x128));}}async function handleSubmit(_0xec4909){const _0x51f3bc=_0x17d934;_0xec4909['preventDefault'](),hideMessage();const _0x58b0c6=passwordInput['value'],_0x3ccdc7=confirmPasswordInput['value'];if(_0x58b0c6!==_0x3ccdc7){showMessage(_0x51f3bc(0x131),_0x51f3bc(0x13a)),confirmPasswordInput[_0x51f3bc(0x13f)]();return;}if(_0x58b0c6[_0x51f3bc(0x124)]<0x8){showMessage(_0x51f3bc(0x13e),_0x51f3bc(0x13a)),passwordInput[_0x51f3bc(0x13f)]();return;}submitButton[_0x51f3bc(0x120)]=!![],submitButton[_0x51f3bc(0x113)]=_0x51f3bc(0x11a);try{const _0x40585d=await fetch('/password/setup',{'method':_0x51f3bc(0x11d),'headers':{'Content-Type':_0x51f3bc(0x122)},'body':JSON[_0x51f3bc(0x127)]({'token':token,'password':_0x58b0c6})}),_0x1b5127=await _0x40585d[_0x51f3bc(0x13c)]();if(!_0x40585d['ok'])throw new Error(_0x1b5127['error']||_0x51f3bc(0x130));showMessage(_0x51f3bc(0x132),'success'),setupFormEl[_0x51f3bc(0x12d)](),setTimeout(()=>{const _0x3a32b4=_0x51f3bc;window[_0x3a32b4(0x14a)][_0x3a32b4(0x134)]='/login.html';},0x7d0);}catch(_0x2e14e6){console[_0x51f3bc(0x13a)](_0x51f3bc(0x112),_0x2e14e6),showMessage(_0x2e14e6[_0x51f3bc(0x136)]||'Failed\x20to\x20set\x20password.\x20Please\x20try\x20again.','error'),submitButton[_0x51f3bc(0x120)]=![],submitButton[_0x51f3bc(0x113)]=_0x51f3bc(0x12a);}}function _0x3e36(){const _0x9bff84=['re9nq29UDgvUDeXVywrLza','zgLZCgXHEq','Dg9Rzw4','C2v0DxaTBwvZC2fNzsa','u2v0DgLUzYbWyxnZD29Yzc4UlG','C2v0DxaTy29UDgvUDa','ihzPC2LIBgu','ue9tva','DxnLCI1PBMzV','yNv0Dg9Uw3r5Cgu9iNn1yM1PDcjD','zgLZywjSzwq','lNnLDhvWlwHLywrLCIbW','yxbWBgLJyxrPB24VANnVBG','DxnLCG','BgvUz3rO','mtHtzfvmEMm','BM9Uzq','C3rYAw5NAwz5','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUlIbqBgvHC2uGDhj5igfNywLUig9YignVBNrHy3qGEw91CIbHzg1PBMLZDhjHDg9YlG','Bg9HzgLUzW','u2v0ifbHC3n3B3jK','mZyWmte0meD4zLnRsW','y2XHC3nmAxn0','CMvZzxq','DxnLCI11C2vYBMfTzq','CMvTB3zL','rMfPBgvKihrVihnLDcbWyxnZD29Yza','ugfZC3DVCMrZigrVig5VDcbTyxrJAa','ugfZC3DVCMqGC2v0ihn1y2nLC3nMDwXSEseGuMvKAxjLy3rPBMCGDg8GBg9NAw4UlI4','ywrKrxzLBNrmAxn0zw5LCG','AhjLzG','mtbUCw9nCfO','BwvZC2fNzq','C3vIBwL0','ndq3nK1rzxriBW','mJC1nZe5swPJqKv3','zxjYB3i','l3bHC3n3B3jKl3zHBgLKyxrLlxrVA2vUp3rVA2vUpq','ANnVBG','y29UzMLYBs1WyxnZD29Yza','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmGBg9UzW','zM9JDxm','C2v0DxaTBwvZC2fNzq','mZyWnZm1t29PCMHf','rMfPBgvKihrVihzHBgLKyxrLihrVA2vUoG','z2v0','DxnLCI1Uyw1L','CxvLCNLtzwXLy3rVCG','C3r5Bgu','tM8GDg9Rzw4GChjVDMLKzwqUifbSzwfZzsbJAgvJAYb0AguGBgLUAYb5B3uGCMvJzwL2zwqU','ndK4nxvLv1HPwG','sw52ywXPzcbVCIbLEhbPCMvKihrVA2vUlIbqBgvHC2uGCMvXDwvZDcbHig5LDYbWyxnZD29YzcbZzxr1CcbSAw5RlG','Bg9JyxrPB24','mtiYmJy5mhzZsLvuCW','nduWmte3nLD2z3nVwq','y2XHC3noyw1L','yMXVy2S','z2v0rwXLBwvUDej5swq','DxnLCM5HBwu','uMvZzxqGEw91CIbWyxnZD29Yza','DMLZAwjSzq','mtu4otm3m1rsuwnLwa','rMfPBgvKihrVihnLDcbWyxnZD29YzdO','Dgv4DenVBNrLBNq','C2vHCMnO','q3jLyxrLigeGC2vJDxjLihbHC3n3B3jKigzVCIb5B3vYigfJy291BNq'];_0x3e36=function(){return _0x9bff84;};return _0x3e36();}setupFormEl&&setupFormEl[_0x17d934(0x133)](_0x17d934(0x137),handleSubmit);validateToken(),document[_0x17d934(0x133)](_0x17d934(0x116),()=>{mountThemeToggle();});
|
|
@@ -1126,11 +1126,12 @@
|
|
|
1126
1126
|
list-style: none;
|
|
1127
1127
|
padding: 0;
|
|
1128
1128
|
margin: 0;
|
|
1129
|
-
max-height:
|
|
1129
|
+
max-height: 60vh;
|
|
1130
|
+
overflow-x: hidden;
|
|
1130
1131
|
overflow-y: auto;
|
|
1131
1132
|
}
|
|
1132
1133
|
|
|
1133
|
-
.modified-files-list li {
|
|
1134
|
+
.modified-files-list > li.changed-file-item {
|
|
1134
1135
|
padding: 8px 12px;
|
|
1135
1136
|
background: var(--color-surface-muted);
|
|
1136
1137
|
border-radius: var(--radius-small);
|
|
@@ -1140,7 +1141,7 @@
|
|
|
1140
1141
|
margin-bottom: 6px;
|
|
1141
1142
|
}
|
|
1142
1143
|
|
|
1143
|
-
.modified-files-list li::before {
|
|
1144
|
+
.modified-files-list > li.changed-file-item::before {
|
|
1144
1145
|
content: '●';
|
|
1145
1146
|
color: var(--color-warning);
|
|
1146
1147
|
margin-right: 8px;
|
|
@@ -1970,3 +1971,109 @@
|
|
|
1970
1971
|
color: #8b5cf6;
|
|
1971
1972
|
border: 1px solid rgba(139, 92, 246, 0.3);
|
|
1972
1973
|
}
|
|
1974
|
+
|
|
1975
|
+
/* Uncommitted changes / commit / discard modal sizing */
|
|
1976
|
+
#uncommitted-changes-modal .modal-content,
|
|
1977
|
+
#commit-modal .modal-content,
|
|
1978
|
+
#discard-modal .modal-content {
|
|
1979
|
+
overflow: hidden;
|
|
1980
|
+
max-width: 750px;
|
|
1981
|
+
}
|
|
1982
|
+
|
|
1983
|
+
#uncommitted-changes-modal .modal-body,
|
|
1984
|
+
#commit-modal .modal-body,
|
|
1985
|
+
#discard-modal .modal-body {
|
|
1986
|
+
overflow-x: hidden;
|
|
1987
|
+
overflow-y: auto;
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1990
|
+
/* Clickable changed files */
|
|
1991
|
+
.changed-file-clickable {
|
|
1992
|
+
cursor: pointer;
|
|
1993
|
+
transition: background 0.15s ease;
|
|
1994
|
+
border-radius: var(--radius-small, 4px);
|
|
1995
|
+
}
|
|
1996
|
+
|
|
1997
|
+
.changed-file-clickable:hover {
|
|
1998
|
+
background: rgba(99, 102, 241, 0.08);
|
|
1999
|
+
}
|
|
2000
|
+
|
|
2001
|
+
.changed-file-clickable.diff-expanded {
|
|
2002
|
+
background: rgba(99, 102, 241, 0.1);
|
|
2003
|
+
border-left: 3px solid var(--color-accent, #6366f1);
|
|
2004
|
+
font-weight: 600;
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
/* Hide the bullet when file is expanded to show diff */
|
|
2008
|
+
.modified-files-list > li.changed-file-item.diff-expanded::before {
|
|
2009
|
+
color: var(--color-accent, #6366f1);
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
/* Inline diff panel below a file in the list */
|
|
2013
|
+
.inline-file-diff {
|
|
2014
|
+
list-style: none;
|
|
2015
|
+
padding: 0;
|
|
2016
|
+
margin: 4px 0 8px 0;
|
|
2017
|
+
border-radius: var(--radius-small, 4px);
|
|
2018
|
+
overflow: hidden;
|
|
2019
|
+
background: none;
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
.inline-file-diff::before {
|
|
2023
|
+
content: none;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
/* Hide the redundant file header - filename is already shown in the list item */
|
|
2027
|
+
.inline-file-diff .file-diff-header {
|
|
2028
|
+
display: none;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
/* Always show diff content in inline context (header with toggle is hidden) */
|
|
2032
|
+
.inline-file-diff .file-diff-content.collapsed {
|
|
2033
|
+
max-height: none;
|
|
2034
|
+
overflow: auto;
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
.inline-file-diff .file-diff {
|
|
2038
|
+
margin-top: 0;
|
|
2039
|
+
border-radius: var(--radius-small, 4px);
|
|
2040
|
+
border: 1px solid var(--color-border, #e2e8f0);
|
|
2041
|
+
overflow: hidden;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
.inline-file-diff .file-diff-content {
|
|
2045
|
+
max-height: 350px;
|
|
2046
|
+
overflow: auto;
|
|
2047
|
+
}
|
|
2048
|
+
|
|
2049
|
+
/* Ensure diff content doesn't cause horizontal overflow on the modal */
|
|
2050
|
+
.inline-file-diff .diff-line {
|
|
2051
|
+
min-width: 0;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
.inline-file-diff .diff-line-content {
|
|
2055
|
+
overflow-wrap: break-word;
|
|
2056
|
+
word-break: break-all;
|
|
2057
|
+
white-space: pre-wrap;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.inline-file-diff-loading {
|
|
2061
|
+
padding: 12px;
|
|
2062
|
+
color: var(--color-text-muted);
|
|
2063
|
+
font-style: italic;
|
|
2064
|
+
font-size: 13px;
|
|
2065
|
+
background: none;
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
.inline-file-diff-loading::before {
|
|
2069
|
+
content: none;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
.inline-diff-empty {
|
|
2073
|
+
padding: 12px;
|
|
2074
|
+
color: var(--color-text-muted);
|
|
2075
|
+
font-style: italic;
|
|
2076
|
+
font-size: 13px;
|
|
2077
|
+
background: var(--color-surface-muted, #f5f5f5);
|
|
2078
|
+
border-radius: var(--radius-small, 4px);
|
|
2079
|
+
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<script type="module" src="markdown-editor.js?v=1"></script>
|
|
31
31
|
<script src="markdown-file-editor.js?v=1"></script>
|
|
32
32
|
<script type="module" src="app.js?v=67"></script>
|
|
33
|
-
<script type="module" src="skills.js?v=
|
|
33
|
+
<script type="module" src="skills.js?v=5"></script>
|
|
34
34
|
<!-- Dev QA shortcut: Ctrl+Shift+Q to launch current page in QA mode -->
|
|
35
35
|
</head>
|
|
36
36
|
<body>
|
|
@@ -132,6 +132,9 @@
|
|
|
132
132
|
<button class="dropdown-item" id="repo-pull-btn">
|
|
133
133
|
<span>🔄</span> Pull from Git
|
|
134
134
|
</button>
|
|
135
|
+
<button class="dropdown-item" id="repo-push-btn" hidden>
|
|
136
|
+
<span>📤</span> Push to Git
|
|
137
|
+
</button>
|
|
135
138
|
<button class="dropdown-item" id="repo-commit-btn" disabled>
|
|
136
139
|
<span>📤</span> Commit & Push...
|
|
137
140
|
</button>
|
|
@@ -518,7 +521,7 @@
|
|
|
518
521
|
<!-- Discard Modal -->
|
|
519
522
|
<div id="discard-modal" class="modal" hidden>
|
|
520
523
|
<div class="modal-overlay"></div>
|
|
521
|
-
<div class="modal-content">
|
|
524
|
+
<div class="modal-content modal-large">
|
|
522
525
|
<div class="modal-header">
|
|
523
526
|
<h2>⚠️ Discard Changes</h2>
|
|
524
527
|
<button type="button" class="modal-close" aria-label="Close" id="close-discard-modal">×</button>
|
|
@@ -576,13 +579,13 @@
|
|
|
576
579
|
<!-- Uncommitted Changes Modal -->
|
|
577
580
|
<div id="uncommitted-changes-modal" class="modal" hidden>
|
|
578
581
|
<div class="modal-overlay"></div>
|
|
579
|
-
<div class="modal-content">
|
|
582
|
+
<div class="modal-content modal-large">
|
|
580
583
|
<div class="modal-header">
|
|
581
584
|
<h2>Uncommitted Changes</h2>
|
|
582
585
|
<button type="button" class="modal-close" aria-label="Close" id="close-uncommitted-modal">×</button>
|
|
583
586
|
</div>
|
|
584
587
|
<div class="modal-body">
|
|
585
|
-
<p class="text-muted" style="margin-bottom: 12px;">The following files have uncommitted changes
|
|
588
|
+
<p class="text-muted" style="margin-bottom: 12px;">The following files have uncommitted changes. Click a file to view its diff.</p>
|
|
586
589
|
<ul id="uncommitted-files-list" class="modified-files-list"></ul>
|
|
587
590
|
</div>
|
|
588
591
|
<div class="modal-actions">
|