Files
kimandClaude Opus 5 e85ebe6608 v4.3.20: 미커밋 자산 일괄 정리 + 유저 워크스페이스/세션토큰 gitignore
그동안 쌓여 있던 미커밋 파일들을 정리. 소스·자산만 올리고, 개인 데이터와
런타임 상태는 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>
2026-07-29 14:55:37 +09:00

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 &amp; 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 &amp; 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 &amp; 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>