@takagaki/cortex-decisions-viewer 0.12.158 → 0.12.160
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/build.js +13 -28
- package/dist/ranking.js +34 -0
- package/dist/render.js +12 -52
- package/package.json +1 -1
package/dist/build.js
CHANGED
|
@@ -1074,8 +1074,8 @@ const MEETING_DATE_DIR = /^\d{8}$/;
|
|
|
1074
1074
|
* すでにある会議を列挙する(#277。投入モーダルの「会議名」の選択肢になる)。
|
|
1075
1075
|
*
|
|
1076
1076
|
* **「会議名」は画面から自由に打てるが、打たせるのは最後の手段にする。** 手で打つと
|
|
1077
|
-
* 表記ゆれ(`定例` と `定例MTG`)で同じ会議が2
|
|
1078
|
-
*
|
|
1077
|
+
* 表記ゆれ(`定例` と `定例MTG`)で同じ会議が2つのディレクトリに割れ、
|
|
1078
|
+
* 履歴が分かれる。すでにある名前を選べれば、その事故はほとんど起きない。
|
|
1079
1079
|
*
|
|
1080
1080
|
* 会議とみなすのは「**日付ディレクトリ(`YYYYMMDD`)を直接ぶら下げているディレクトリ**」。
|
|
1081
1081
|
* 名前の規則ではなく実際の中身で決めるので、`会議/定例/デイリースクラム/20260120/` のような
|
|
@@ -1084,25 +1084,10 @@ const MEETING_DATE_DIR = /^\d{8}$/;
|
|
|
1084
1084
|
* **会議ディレクトリ直下に日付ディレクトリがある形(相対パスが空)は除外する。**
|
|
1085
1085
|
* その形は「会議名なしで投入された回」で、選択肢に出しても送り先にできない
|
|
1086
1086
|
* (`meeting` が空文字になり Lambda が 400 を返す)。
|
|
1087
|
-
*
|
|
1088
|
-
* `minuteDates` は、その日付ディレクトリに議事録(`*_minutes.md`)が**すでにある**日付。
|
|
1089
|
-
* 同じ日に文字起こしを足しても議事録は作り直されないので、送る前に画面で伝えるために使う。
|
|
1090
1087
|
*/
|
|
1091
1088
|
async function collectMeetings(repoRoot) {
|
|
1092
1089
|
const rootAbs = path.join(repoRoot, MEETING_DIR);
|
|
1093
1090
|
const out = [];
|
|
1094
|
-
const hasMinute = async (dirAbs) => {
|
|
1095
|
-
try {
|
|
1096
|
-
for (const e of await node_fs_1.promises.readdir(dirAbs, { withFileTypes: true })) {
|
|
1097
|
-
if (e.isFile() && e.name.endsWith("_minutes.md"))
|
|
1098
|
-
return true;
|
|
1099
|
-
}
|
|
1100
|
-
}
|
|
1101
|
-
catch {
|
|
1102
|
-
// 読めない回は「議事録なし」扱い(注意を出さないだけで、投入は妨げない)
|
|
1103
|
-
}
|
|
1104
|
-
return false;
|
|
1105
|
-
};
|
|
1106
1091
|
const walk = async (relParts) => {
|
|
1107
1092
|
let entries;
|
|
1108
1093
|
try {
|
|
@@ -1116,15 +1101,9 @@ async function collectMeetings(repoRoot) {
|
|
|
1116
1101
|
e.name !== "templates" &&
|
|
1117
1102
|
!e.name.startsWith("."));
|
|
1118
1103
|
const rel = relParts.join("/");
|
|
1119
|
-
const
|
|
1120
|
-
if (
|
|
1121
|
-
|
|
1122
|
-
for (const d of dates.sort()) {
|
|
1123
|
-
if (await hasMinute(path.join(rootAbs, ...relParts, d)))
|
|
1124
|
-
minuteDates.push(d);
|
|
1125
|
-
}
|
|
1126
|
-
out.push({ path: rel, minuteDates });
|
|
1127
|
-
}
|
|
1104
|
+
const hasDates = dirs.some((d) => MEETING_DATE_DIR.test(d.name));
|
|
1105
|
+
if (hasDates && rel)
|
|
1106
|
+
out.push({ path: rel });
|
|
1128
1107
|
// 日付ディレクトリの中は回の中身なので降りない(会議名にはならない)。
|
|
1129
1108
|
// 深さは Lambda 側の上限(isValidMeetingDir の 5 セグメント)と揃える——
|
|
1130
1109
|
// それより深い会議を選択肢に出しても、選んだ瞬間に 400 で断られるだけ
|
|
@@ -2323,9 +2302,12 @@ async function buildSite(opts, views) {
|
|
|
2323
2302
|
const rederived = orderRecordsByLedgers(records, recordsDir, rederive, opts.generatedAt);
|
|
2324
2303
|
// 関係者だけ、関与の多い順(engine の目次と同じ `order`・便 14b)。用語集の並び
|
|
2325
2304
|
// (`orderByActivity`)とは帳簿も式も別で、区画が重ならないので順番に当てても干渉しない
|
|
2326
|
-
const
|
|
2305
|
+
const ledgerOrdered = e.name === "Members"
|
|
2327
2306
|
? (0, engagement_1.orderMembersByEngagement)(rederived, (r) => r.id, engagement, opts.generatedAt)
|
|
2328
2307
|
: rederived;
|
|
2308
|
+
// 一覧は目次と同じ順位のファイル 1 つで並べる(engine #1781・仕様 8-4)。読めた案件では上の帳簿・日付の並びを
|
|
2309
|
+
// 順位で上書きし、順位に無い記録は元の並びのまま末尾。**読めない案件は今までと同じ**
|
|
2310
|
+
const ordered = (0, ranking_1.orderByRanking)(ledgerOrdered, (r) => relOf(recordsDir, r.fileName), (0, ranking_1.rankedPathsOf)(memoryRanking, e.name));
|
|
2329
2311
|
// レコード0件でもタブは出す(空状態から「+AIで登録」できる導線になる)。
|
|
2330
2312
|
// records/ 自体が無いディレクトリ(その区画が未導入の案件)はタブにしない
|
|
2331
2313
|
if (records.length || (await isDirectory(recordsDir))) {
|
|
@@ -2349,6 +2331,9 @@ async function buildSite(opts, views) {
|
|
|
2349
2331
|
return a.date < b.date ? 1 : -1;
|
|
2350
2332
|
return a.id < b.id ? 1 : -1;
|
|
2351
2333
|
});
|
|
2334
|
+
// 決定の一覧も目次と同じ順位で(順位に無い決定は日付の新しい順のまま末尾)。
|
|
2335
|
+
// 🔴 グラフ・月の材料には並べ替える前の `decisions` を渡す(地図の絵が順位で組み変わらない)
|
|
2336
|
+
const rankedDecisions = (0, ranking_1.orderByRanking)(decisions, (d) => recordRelPaths.get(d.id), memoryRanking?.Decisions ?? null);
|
|
2352
2337
|
// 期間フィルタ用の月(YYYY-MM)を日付から導出し、降順(新しい順)にする
|
|
2353
2338
|
const months = uniqueSorted(decisions.map((d) => d.date.slice(0, 7)).filter((m) => /^\d{4}-\d{2}$/.test(m))).reverse();
|
|
2354
2339
|
const graph = buildGraph(decisions, home, graphSections, targetUrls, repo.baseUrl, evidenceBook);
|
|
@@ -2383,7 +2368,7 @@ async function buildSite(opts, views) {
|
|
|
2383
2368
|
viewerVersion: PKG_VERSION,
|
|
2384
2369
|
repoBaseUrl: repo.baseUrl,
|
|
2385
2370
|
branch: repo.branch,
|
|
2386
|
-
decisions,
|
|
2371
|
+
decisions: rankedDecisions,
|
|
2387
2372
|
home,
|
|
2388
2373
|
homeGrounding: homeGrounding,
|
|
2389
2374
|
homeUpdatedAt: homeUpdatedAt,
|
package/dist/ranking.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.MEMORY_RANKING_SECTIONS = exports.MEMORY_RANKING_VERSION = exports.MEMOR
|
|
|
7
7
|
exports.parseMemoryRanking = parseMemoryRanking;
|
|
8
8
|
exports.readMemoryRanking = readMemoryRanking;
|
|
9
9
|
exports.glowByPath = glowByPath;
|
|
10
|
+
exports.orderByRanking = orderByRanking;
|
|
11
|
+
exports.rankedPathsOf = rankedPathsOf;
|
|
10
12
|
/**
|
|
11
13
|
* つながり画面の点の明るさと大きさ(cortex-engine #551・オーナー決定 2026-10-01)。
|
|
12
14
|
*
|
|
@@ -88,3 +90,35 @@ function glowByPath(ranking) {
|
|
|
88
90
|
}
|
|
89
91
|
return out;
|
|
90
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* 一覧を目次と同じ順位で並べ直す(engine #1781・仕様 1-3 / 8-4)。
|
|
95
|
+
*
|
|
96
|
+
* 順位に載っている記録を順位の並びで先に、載っていない記録(順位を書いた夜より後に足された記録など)は
|
|
97
|
+
* **元の並びのまま末尾**に置く(つながり画面の明るさが 0=一番下になるのと同じ向き)。
|
|
98
|
+
* `ranking` が `null`(ファイルが無い・壊れている・版が違う)なら入力をそのまま返す=今までと 1 バイトも同じ。
|
|
99
|
+
*/
|
|
100
|
+
function orderByRanking(items, relPathOf, rankedPaths) {
|
|
101
|
+
if (!rankedPaths)
|
|
102
|
+
return items.slice();
|
|
103
|
+
const rank = new Map();
|
|
104
|
+
rankedPaths.forEach((p, i) => { if (!rank.has(p))
|
|
105
|
+
rank.set(p, i); });
|
|
106
|
+
const ranked = [];
|
|
107
|
+
const rest = [];
|
|
108
|
+
for (const item of items) {
|
|
109
|
+
const p = relPathOf(item);
|
|
110
|
+
const r = p === undefined ? undefined : rank.get(p);
|
|
111
|
+
if (r === undefined)
|
|
112
|
+
rest.push(item);
|
|
113
|
+
else
|
|
114
|
+
ranked.push({ item, r });
|
|
115
|
+
}
|
|
116
|
+
ranked.sort((a, b) => a.r - b.r);
|
|
117
|
+
return [...ranked.map((x) => x.item), ...rest];
|
|
118
|
+
}
|
|
119
|
+
/** 区画名 → 順位の並び。順位が読めない・4 区画の外の区画(Reports 等)は `null`(並べ替えない) */
|
|
120
|
+
function rankedPathsOf(ranking, section) {
|
|
121
|
+
if (!ranking)
|
|
122
|
+
return null;
|
|
123
|
+
return exports.MEMORY_RANKING_SECTIONS.includes(section) ? ranking[section] : null;
|
|
124
|
+
}
|
package/dist/render.js
CHANGED
|
@@ -6093,11 +6093,6 @@ button.ops-card-btn:disabled { opacity: .6; cursor: default; }
|
|
|
6093
6093
|
/* 会議名の欄(選択肢+新規入力+入力エラー) */
|
|
6094
6094
|
.meeting-field { display: flex; flex-direction: column; gap: 6px; }
|
|
6095
6095
|
.meeting-error { min-height: 0; }
|
|
6096
|
-
/* 「その日はもう議事録がある」の注意。送信は妨げないので、エラー(赤)とは色を変える */
|
|
6097
|
-
.modal-warn {
|
|
6098
|
-
background: #fffbeb; border: 1px solid #fcd34d; border-radius: 8px;
|
|
6099
|
-
padding: 8px 12px; font-size: 12.5px; color: #92400e; line-height: 1.7;
|
|
6100
|
-
}
|
|
6101
6096
|
.summary-box { background: var(--accent-weak); border: 1px solid #dce6fb; border-radius: var(--radius); padding: 12px 16px; color: #1e3a8a; }
|
|
6102
6097
|
.deciders { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
6103
6098
|
.refs { margin: 0; padding-left: 18px; }
|
|
@@ -6679,7 +6674,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
6679
6674
|
* fleet-status.json のトップに置いた値を読む(cortex-engine #1094 便 γ 5-14)。
|
|
6680
6675
|
* 値が届いていない(古い生成物)ときは空にして、宛先を名指さない文に倒す
|
|
6681
6676
|
* (他の組織の画面に別の会社のアドレスを出さない)。
|
|
6682
|
-
*
|
|
6677
|
+
* 会議の文字起こしの取り込みでも同じアカウントを使っている。
|
|
6683
6678
|
*/
|
|
6684
6679
|
var DRIVE_INGEST_ACCOUNT = typeof SITE.driveReaderEmail === "string" ? SITE.driveReaderEmail : "";
|
|
6685
6680
|
// Google Chat の「スペースにアプリを追加する」手順の画像(#389)。理由は
|
|
@@ -13000,7 +12995,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
13000
12995
|
// いまの一覧が一番価値を出しているのはそこなので、畳んで失わないようにする。
|
|
13001
12996
|
var CAP_META = {
|
|
13002
12997
|
"課題管理": { icon: "📋", desc: "課題・ドキュメントの同期" },
|
|
13003
|
-
"会議": { icon: "🎙", desc: "
|
|
12998
|
+
"会議": { icon: "🎙", desc: "会議の文字起こしを取り込み" },
|
|
13004
12999
|
"共有資料": { icon: "📁", desc: "資料をMarkdown化して取り込み" },
|
|
13005
13000
|
"チャット": { icon: "💬", desc: "チャンネルの会話をGoldの材料に" },
|
|
13006
13001
|
"デザイン": { icon: "🎨", desc: "Figmaのコメント(指摘)の取り込み" },
|
|
@@ -13554,7 +13549,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
13554
13549
|
if (manual) {
|
|
13555
13550
|
var mBody = el("div", { class: "ds-tile-body" }, [
|
|
13556
13551
|
el("div", { class: "ds-tile-name", text: "文字起こしを手動で追加" }),
|
|
13557
|
-
el("div", { class: "ds-tile-desc", text: "
|
|
13552
|
+
el("div", { class: "ds-tile-desc", text: "自動取り込みできない会議(顧客主催・別ツール)の文字起こしを取り込みます" }),
|
|
13558
13553
|
]);
|
|
13559
13554
|
var mTile = el("button", { class: "ds-tile", type: "button", id: "ds-manual-" + cap }, [
|
|
13560
13555
|
el("span", { class: "ds-tile-logo", text: "📥" }),
|
|
@@ -15761,16 +15756,16 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
15761
15756
|
// 読む人の操作対象ではない——画面から直せないものなので、次の一歩は「担当者へ連絡」。
|
|
15762
15757
|
// 「手で直してください」も出さない(PM に設定ファイルを編集させる案内になっていた)。
|
|
15763
15758
|
if (s.ingestState === "unset") {
|
|
15764
|
-
box.appendChild(el("p", { class: "sec-how", text: "
|
|
15759
|
+
box.appendChild(el("p", { class: "sec-how", text: "このプロジェクトでは会議の自動取り込みがまだ用意されていません。cortex の担当者にご連絡ください。" }));
|
|
15765
15760
|
used = true;
|
|
15766
15761
|
} else if (s.ingestState === "broken") {
|
|
15767
|
-
box.appendChild(el("p", { class: "sec-how", text: "
|
|
15762
|
+
box.appendChild(el("p", { class: "sec-how", text: "会議の取り込み設定を読み取れないため、この画面からは変更できません。cortex の担当者にご連絡ください。" }));
|
|
15768
15763
|
used = true;
|
|
15769
15764
|
} else if (s.ingestState === "off") {
|
|
15770
15765
|
// 自動取り込みを止めている案件(例: Teams を使っていて手動で取り込む運用)。
|
|
15771
15766
|
// ここでトグルを出すと「押せば始まる」と読めるが、実際は設定ファイルの意思表示なので
|
|
15772
15767
|
// 画面から気軽に反転させるものではない。状態だけを伝える。
|
|
15773
|
-
box.appendChild(el("p", { class: "sec-how", text: "
|
|
15768
|
+
box.appendChild(el("p", { class: "sec-how", text: "このプロジェクトは会議の自動取り込みを停止しています。" }));
|
|
15774
15769
|
used = true;
|
|
15775
15770
|
}
|
|
15776
15771
|
}
|
|
@@ -17996,7 +17991,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
17996
17991
|
function intakeCardFor(cap) {
|
|
17997
17992
|
if (!SITE.intake) return null;
|
|
17998
17993
|
if (cap === "会議") {
|
|
17999
|
-
return opsCard("🗒️", "会議の文字起こしを追加", "顧客主催の会議など、自動取り込みできない会議の文字起こしファイル(.txt / .docx
|
|
17994
|
+
return opsCard("🗒️", "会議の文字起こしを追加", "顧客主催の会議など、自動取り込みできない会議の文字起こしファイル(.txt / .docx 等)を取り込みます。ファイルを選ぶかテキストを貼って送信すると、数分で保存され、夜の処理で記憶の材料になります。", "transcript", "文字起こしを追加");
|
|
18000
17995
|
}
|
|
18001
17996
|
// 共有資料の手動追加は #968 でやめた(入口は Google ドライブ 1 つ)。ここでは作らない
|
|
18002
17997
|
return null;
|
|
@@ -18918,7 +18913,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
18918
18913
|
// 列挙の先頭を PDF から元のファイルに入れ替えてある(**受け付ける拡張子は 1 つも変えていない**。
|
|
18919
18914
|
// allowedExt は下のまま)。
|
|
18920
18915
|
modal.appendChild(el("p", { class: "modal-desc", text: isT
|
|
18921
|
-
? "文字起こしファイル(テキスト・Word・PDF・字幕
|
|
18916
|
+
? "文字起こしファイル(テキスト・Word・PDF・字幕 等)を選んで送信してください。(送信後、数分で保存され、夜の処理で記憶の材料になります)"
|
|
18922
18917
|
: "資料ファイル(PowerPoint・Word・Excel・PDF・テキスト・画像 等)を選んで送信してください。元のファイルがあれば PDF より優先してください(画面を保存した PDF・スキャンした PDF からは文字を取り出せません)。(送信後、数分で内容が Markdown に変換されて取り込まれます)" }));
|
|
18923
18918
|
|
|
18924
18919
|
var selectedFiles = [];
|
|
@@ -18957,7 +18952,6 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
18957
18952
|
var meetingSelect = null;
|
|
18958
18953
|
var meetingNewInput = null;
|
|
18959
18954
|
var meetingError = null;
|
|
18960
|
-
var dupWarn = null;
|
|
18961
18955
|
// ユーザーが会議を自分で選んだか。**選んだ後はファイル名からの推測で上書きしない**
|
|
18962
18956
|
var meetingTouched = false;
|
|
18963
18957
|
if (isT) {
|
|
@@ -18980,9 +18974,6 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
18980
18974
|
meetingError.hidden = true;
|
|
18981
18975
|
meetingBox.appendChild(meetingError);
|
|
18982
18976
|
modal.appendChild(fieldRow("会議名(必須)", meetingBox));
|
|
18983
|
-
dupWarn = el("div", { class: "modal-warn meeting-dup-warn" });
|
|
18984
|
-
dupWarn.hidden = true;
|
|
18985
|
-
modal.appendChild(dupWarn);
|
|
18986
18977
|
}
|
|
18987
18978
|
|
|
18988
18979
|
modal.appendChild(fieldRow("お名前(必須)", nameInput));
|
|
@@ -19091,35 +19082,9 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19091
19082
|
}
|
|
19092
19083
|
return null;
|
|
19093
19084
|
}
|
|
19094
|
-
function compactDate(iso) { return String(iso || "").split("-").join(""); }
|
|
19095
|
-
|
|
19096
|
-
// ---- すでに議事録がある日 ----
|
|
19097
|
-
function selectedMeeting() {
|
|
19098
|
-
var v = meetingValue();
|
|
19099
|
-
if (!v) return null;
|
|
19100
|
-
for (var i = 0; i < meetingList.length; i++) if (meetingList[i].path === v) return meetingList[i];
|
|
19101
|
-
return null;
|
|
19102
|
-
}
|
|
19103
|
-
function dupEntries() {
|
|
19104
|
-
var m = selectedMeeting();
|
|
19105
|
-
if (!m || !m.minuteDates || !m.minuteDates.length) return [];
|
|
19106
|
-
return selectedFiles.filter(function (e) {
|
|
19107
|
-
return e.date && m.minuteDates.indexOf(compactDate(e.date)) !== -1;
|
|
19108
|
-
});
|
|
19109
|
-
}
|
|
19110
|
-
function refreshDupWarn() {
|
|
19111
|
-
if (!dupWarn) return;
|
|
19112
|
-
var dups = dupEntries();
|
|
19113
|
-
dupWarn.hidden = !dups.length;
|
|
19114
|
-
dupWarn.textContent = dups.length
|
|
19115
|
-
? "⚠ この日付には既に議事録があります。ファイルは保存されますが、議事録の自動生成は行われません: "
|
|
19116
|
-
+ dups.map(function (e) { return e.file.name; }).join(", ")
|
|
19117
|
-
: "";
|
|
19118
|
-
}
|
|
19119
19085
|
|
|
19120
19086
|
function update() {
|
|
19121
19087
|
refreshMeetingError();
|
|
19122
|
-
refreshDupWarn();
|
|
19123
19088
|
var ok = !!(nameInput.value.trim() && selectedFiles.length);
|
|
19124
19089
|
// 文字起こしは会議名が確定し、各ファイルの日付と記録の種類が入っているときだけ送れる
|
|
19125
19090
|
var kindMissing = selectedFiles.filter(function (e) { return asksKind(e) && !e.recordKind; }).length;
|
|
@@ -19179,7 +19144,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19179
19144
|
function isAllowed(f) {
|
|
19180
19145
|
// 資料はフロントで弾かない(どんなファイルも受け付ける)。対応可否の最終判断はバックエンドに任せる。
|
|
19181
19146
|
if (!isT) return true;
|
|
19182
|
-
//
|
|
19147
|
+
// 文字起こしは文字起こしに不適なファイルを避けるため拡張子で判定する。
|
|
19183
19148
|
var ext = extOf(f.name);
|
|
19184
19149
|
return !!(ext && allowedExt[ext]);
|
|
19185
19150
|
}
|
|
@@ -19220,10 +19185,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19220
19185
|
// 閉じる経路(Escape・背景クリック)は makeModal 側に用意されている
|
|
19221
19186
|
cancelBtn.addEventListener("click", function () { mk.close(); });
|
|
19222
19187
|
submitBtn.addEventListener("click", function () {
|
|
19223
|
-
|
|
19224
|
-
// ✓ の直後に「数分後に議事録が自動生成され…」と出すと、待っても出ない
|
|
19225
|
-
var allDup = isT && selectedFiles.length > 0 && dupEntries().length === selectedFiles.length;
|
|
19226
|
-
submitIntake(kind, selectedFiles, nameInput.value, status, submitBtn, isT ? meetingValue() : null, allDup);
|
|
19188
|
+
submitIntake(kind, selectedFiles, nameInput.value, status, submitBtn, isT ? meetingValue() : null);
|
|
19227
19189
|
});
|
|
19228
19190
|
}
|
|
19229
19191
|
/**
|
|
@@ -19248,7 +19210,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19248
19210
|
el("div", { class: "modal-reopen-note", text: "開き直したら、このタブに戻ってもう一度[送信]を押してください。入力はそのまま使えます。" }),
|
|
19249
19211
|
]);
|
|
19250
19212
|
}
|
|
19251
|
-
async function submitIntake(kind, entries, submitter, status, submitBtn, meeting
|
|
19213
|
+
async function submitIntake(kind, entries, submitter, status, submitBtn, meeting) {
|
|
19252
19214
|
var intake = SITE.intake;
|
|
19253
19215
|
var isT = kind === "transcript";
|
|
19254
19216
|
function setStatus(msg, isError) { status.className = "modal-status" + (isError ? " modal-status-error" : ""); status.textContent = msg; }
|
|
@@ -19296,9 +19258,7 @@ ${story_1.splitByNameLinks.toString()}
|
|
|
19296
19258
|
if (!sub.ok) return fail((sub.j && sub.j.message) || "取り込みに失敗しました。時間をおいて再度お試しください。", sub.j && sub.j.code);
|
|
19297
19259
|
status.className = "modal-status";
|
|
19298
19260
|
status.textContent = "";
|
|
19299
|
-
status.appendChild(el("div", { class: "modal-ok", text:
|
|
19300
|
-
? "✓ 送信しました。保存されました(この日付には既に議事録があるため、議事録の自動生成は行われません)"
|
|
19301
|
-
: "✓ 送信しました。数分後に議事録が自動生成され反映されます。" }));
|
|
19261
|
+
status.appendChild(el("div", { class: "modal-ok", text: "✓ 送信しました。保存されました。夜の処理で記憶の材料になります。" }));
|
|
19302
19262
|
var paths = (sub.j && sub.j.committed) || [];
|
|
19303
19263
|
if (paths.length && sub.j.repo) {
|
|
19304
19264
|
var br = SITE.branch || "main";
|
package/package.json
CHANGED