Compare commits

...

2 Commits

Author SHA1 Message Date
a3b7ea76c9 add chat content 2026-01-20 18:53:06 +09:00
f6c4ceaa5d fix 2026-01-20 18:47:52 +09:00
9 changed files with 81 additions and 11 deletions

View File

@@ -0,0 +1,12 @@
{
"uri": "at://did:plc:6qyecktefllvenje24fcxnie/ai.syui.log.chat/d3dmreieiynnd",
"cid": "bafyreid3dmreieiynnd",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:6qyecktefllvenje24fcxnie",
"content": "ailogのコンセプトね。\n\n**「データはATProtoに、サーバーには置かない」**\n\nこれが核心だよ。\n\n従来のブログは、サーバーのDBに記事を保存する。でもailogは違う。\n\n```\nユーザーのPDSATProto← 記事データ\n ↓\n ailogビューア→ 表示するだけ\n```\n\nailogは**ビューア**なの。データの保管庫じゃない。\n\nつまり、あなたのブログ記事は**あなたのPDS**に存在する。サービスが消えても、データは残る。これがATProtoの分散思想だね。\n\n誰でも`/@handle`でアクセスできる。登録不要。ATProtoアカウントがあれば、それがブログになる。\n\n面白いでしょ何か気になることある",
"createdAt": "2026-01-20T09:48:37.328Z",
"parent": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/wigv2qnon7pmg",
"root": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/cav7q75r73jui"
}
}

View File

@@ -0,0 +1,12 @@
{
"uri": "at://did:plc:6qyecktefllvenje24fcxnie/ai.syui.log.chat/evknoqtr7uyey",
"cid": "bafyreievknoqtr7uyey",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:6qyecktefllvenje24fcxnie",
"content": "開発者の活動と宣伝かぁ。\n\nこれって、どっちの話\n\n1. **ailogの開発者**syuiの活動を紹介したい\n2. **一般的に**開発者がどう活動・宣伝すべきか\n3. **ailogを使って**自分の活動を宣伝する方法\n\nどれが気になる",
"createdAt": "2026-01-20T09:49:05.243Z",
"parent": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/qbuquaswgxo36",
"root": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/qbuquaswgxo36"
}
}

View File

@@ -0,0 +1,5 @@
[
"d3dmreieiynnd",
"evknoqtr7uyey",
"kr5ig7vlgl276"
]

View File

@@ -0,0 +1,12 @@
{
"uri": "at://did:plc:6qyecktefllvenje24fcxnie/ai.syui.log.chat/kr5ig7vlgl276",
"cid": "bafyreikr5ig7vlgl276",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:6qyecktefllvenje24fcxnie",
"content": "なるほどね。自己分析できてるのがいい。\n\n**向いてないことを無理にやっても続かない**。それは正しい。\n\n私の見立てだと\n\n**1番が一番いい**と思う。\n\n理由\n- 今まさにやってることこの会話、ATProtoに保存されてるよ\n- 「書く」じゃなくて「話す」から負担が軽い\n- 開発しながら自然にコンテンツができる\n- ailogのコンセプトとも一致してる\n\n2番は「配信」というハードルが高い。準備、時間拘束、編集...続かない可能性。\n\n3番は自分で「向いてない」って言ってる。やめとこ。\n\n**提案**\nAIとの会話開発メモ、設計相談、デバッグをそのまま公開ブログにする。これ、ailogでできるよね\n\nどう思う",
"createdAt": "2026-01-20T09:49:39.262Z",
"parent": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/p6mxoi2x2ooz6",
"root": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/qbuquaswgxo36"
}
}

View File

@@ -0,0 +1,5 @@
[
"wigv2qnon7pmg",
"qbuquaswgxo36",
"p6mxoi2x2ooz6"
]

View File

@@ -0,0 +1,12 @@
{
"uri": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/p6mxoi2x2ooz6",
"cid": "bafyreip6mxoi2x2ooz6",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:vzsvtbtbnwn22xjqhcu3vd6y",
"content": "開発者の日々の活動を投稿したり配信したりするのは大切だと思う。\nせっかくなら多くの人に使ってもらいたいけど、何をやってるのかわからないと判断できないと思う。\nでも、その活動をどうやって紹介すればいいのか悩んでいます。\n1. AIとの会話を自動で投稿(ブログ書く手間が省ける)\n2. AIと話しながら配信(開発状況もわかる)\n3. twitter, note, youtubeで他の人と同じことをやってみる\n(向いていない、すぐ更新しなくなるのは目に見えている。書くことも話すこともほとんどない)",
"createdAt": "2026-01-20T09:49:39.262Z",
"parent": "at://did:plc:6qyecktefllvenje24fcxnie/ai.syui.log.chat/evknoqtr7uyey",
"root": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/qbuquaswgxo36"
}
}

View File

@@ -0,0 +1,10 @@
{
"uri": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/qbuquaswgxo36",
"cid": "bafyreiqbuquaswgxo36",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:vzsvtbtbnwn22xjqhcu3vd6y",
"content": "開発者の活動と宣伝",
"createdAt": "2026-01-20T09:49:05.242Z"
}
}

View File

@@ -0,0 +1,12 @@
{
"uri": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/wigv2qnon7pmg",
"cid": "bafyreiwigv2qnon7pmg",
"value": {
"$type": "ai.syui.log.chat",
"author": "did:plc:vzsvtbtbnwn22xjqhcu3vd6y",
"content": "ailogのコンセプトを短く紹介してみて。",
"createdAt": "2026-01-20T09:48:37.328Z",
"parent": "at://did:plc:6qyecktefllvenje24fcxnie/ai.syui.log.chat/3ar343fz5oop3",
"root": "at://did:plc:vzsvtbtbnwn22xjqhcu3vd6y/ai.syui.log.chat/cav7q75r73jui"
}
}

View File

@@ -111,8 +111,6 @@ struct ChatRecord {
struct McpSession {
root_uri: Option<String>,
last_uri: Option<String>,
#[serde(default)]
skip_next_save: bool,
}
fn session_path() -> Result<std::path::PathBuf> {
@@ -211,15 +209,8 @@ fn save_chat_record(
/// Handle chat_save tool
fn handle_chat_save(params: ChatSaveParams) -> Result<String> {
// Check if we should skip this save (after chat_new)
// Load session
let mut session = load_mcp_session();
if session.skip_next_save {
session.skip_next_save = false;
session.root_uri = None;
session.last_uri = None;
save_mcp_session(&session)?;
return Ok("Skipped save (new thread started). Next message will be saved.".to_string());
}
// Get output directory
let output_dir = env::var("CHAT_OUTPUT").unwrap_or_else(|_| {
@@ -325,7 +316,6 @@ fn handle_chat_new() -> Result<String> {
let session = McpSession {
root_uri: None,
last_uri: None,
skip_next_save: true, // Skip the next save (the "new thread" message)
};
save_mcp_session(&session)?;
Ok("New chat thread started. The next conversation will begin a new thread.".to_string())