그동안 쌓여 있던 미커밋 파일들을 정리. 소스·자산만 올리고, 개인 데이터와 런타임 상태는 gitignore로 차단. 추가된 자산: - web-ui/audiomass, web-ui/wavacity — 자체 호스팅 오디오 에디터 - web-ui/drums — 드럼 샘플 - wol-gate — WOL 프록시 컨테이너(Dockerfile + server.js) - glm-1m-fix — GLM 1M 컨텍스트 설치 스크립트(linux/windows) - RENODE_FIXES_SUMMARY*.md, CCTV정보_서울특별시.csv, .claude/plans 수정: - edge_tts_synth.py: rate 인자 추가(말하기 속도 조절) - .smallclaw/config.json: google(gemini) provider 등록 — 키는 vault 참조 - assets/SmallClaw*.png 삭제분 반영 gitignore (중요): - .smallclaw/users/*/workspace/ 전체 차단. 기존 패턴이 memory/uploads와 일부 확장자만 막아서 detective/(고소장·통화녹취·의사소견서·가족관계증명서), generated-media/, music/, pptx/ 등 앱 생성 개인 데이터 403MB가 노출돼 있었음 - .smallclaw/active-sessions.json 차단 — 살아있는 bearer 토큰과 admin 역할이 평문으로 들어있어 커밋 시 게이트웨이 관리자 자격증명이 그대로 공개됨 - google-usage.json, config.json.bak-*, workspace/memory·weather-maps· task_result_*, voice/ 등 런타임 상태도 함께 차단 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
68 lines
3.3 KiB
HTML
Executable File
68 lines
3.3 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html lang="en" manifest="audiomass.appcache">
|
|
<head>
|
|
<title>AudioMass - Audio Editor</title>
|
|
<link href="ico.png" rel="shortcut icon">
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"/>
|
|
|
|
<meta name="description" content="AudioMass is a free full-featured web-based audio & waveform editing tool"/>
|
|
<meta property="og:image" content="https://audiomass.co/icon.jpg"/>
|
|
<meta property="og:title" content="AudioMass">
|
|
<meta property="og:url" content="https://audiomass.co/">
|
|
<meta property="og:description" content="AudioMass is a free full-featured web-based audio & waveform editing tool">
|
|
<meta name="keywords" content="AudioMass, WebAudio, WaveForm, audio editing, free audio editing, audio tool, waveform editor, sound editor, open source">
|
|
<link rel="apple-touch-icon" href="https://audiomass.co/icon-app.png">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-title" content="AudioMass">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:site" content="@pkalogiros">
|
|
<meta name="twitter:creator" content="@pkalogiros">
|
|
<meta name="twitter:title" content="AudioMass - Audio Editor">
|
|
<meta name="twitter:description" content="AudioMass is a free full-featured web-based audio & waveform editing tool">
|
|
<meta name="twitter:image" content="https://audiomass.co/icon.jpg">
|
|
|
|
<link rel="stylesheet" type="text/css" href="all.css">
|
|
</head>
|
|
<body>
|
|
<div id="app"></div>
|
|
|
|
<script src="all.build.js"></script>
|
|
<script>
|
|
var editor = PKAudioEditor.init ('app');
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
try {
|
|
var rl = 0;
|
|
function nr ( sw ) {
|
|
if (document.getElementById ('pk_upd')) return ;
|
|
var el = document.createElement ('div');
|
|
el.id = 'pk_upd';
|
|
el.className = 'pk_oneup';
|
|
el.style.cssText = 'top:58px;margin-top:0;opacity:1;transform:translateX(-50%);pointer-events:auto;font-size:13px';
|
|
el.innerHTML = 'New version ready <button class="pk_modal_a_bottom pk_modal_a_accpt" style="float:none;display:inline-block;margin-left:10px">Reload</button>';
|
|
document.body.appendChild ( el );
|
|
el.getElementsByTagName ('button')[0].onclick = function () {
|
|
rl = 1;
|
|
sw && sw.postMessage ('SKIP_WAITING');
|
|
setTimeout (function () { location.reload (); }, 900);
|
|
};
|
|
}
|
|
navigator.serviceWorker.addEventListener ('controllerchange', function () { rl && location.reload (); });
|
|
navigator.serviceWorker.register( 'sw.js' ).then (function (r) {
|
|
function ch ( sw ) { sw && (sw.state === 'installed' && navigator.serviceWorker.controller ? nr (sw) : sw.onstatechange = function () { sw.state === 'installed' && navigator.serviceWorker.controller && nr (sw); }); }
|
|
r.waiting && navigator.serviceWorker.controller && nr (r.waiting);
|
|
ch (r.installing);
|
|
r.onupdatefound = function () { ch (r.installing); };
|
|
});
|
|
} catch ( error ) {}
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|