@iola_adm/iola-cli 0.2.28 → 0.2.29

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iola_adm/iola-cli",
3
- "version": "0.2.28",
3
+ "version": "0.2.29",
4
4
  "description": "CLI и AI-агент городского округа Йошкар-Ола.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/adm-iola/iola-cli#readme",
package/src/cli.js CHANGED
@@ -4030,7 +4030,8 @@ async function yandexMailRead(uid, options = {}) {
4030
4030
  try {
4031
4031
  await imapAuthenticate(session, email, token);
4032
4032
  await imapCommand(session, `SELECT ${quoteImapMailbox(options.mailbox || "INBOX")}`);
4033
- const fetch = await imapCommand(session, `UID FETCH ${Number(uid)} (UID FLAGS RFC822.SIZE BODY.PEEK[HEADER.FIELDS (DATE FROM SUBJECT)] BODY.PEEK[TEXT])`, { timeout: 60000 });
4033
+ const bodyAccessor = options.markSeen === false ? "BODY.PEEK[TEXT]" : "BODY[TEXT]";
4034
+ const fetch = await imapCommand(session, `UID FETCH ${Number(uid)} (UID FLAGS RFC822.SIZE BODY.PEEK[HEADER.FIELDS (DATE FROM SUBJECT)] ${bodyAccessor})`, { timeout: 60000 });
4034
4035
  return parseImapFetchSummaries(fetch, { full: true })[0] || { uid, status: "not-found" };
4035
4036
  } finally {
4036
4037
  await imapClose(session);
@@ -81,6 +81,8 @@ assertIncludes(cliSource, "язндекс", "Yandex direct router should tolerat
81
81
  assertIncludes(cliSource, "yandexMailCount", "Yandex mail should answer unread count questions directly");
82
82
  assertIncludes(cliSource, "resolveYandexMailUidFromQuestion", "Yandex mail follow-ups should resolve selected message UID");
83
83
  assertIncludes(cliSource, "extractYandexMailUidByOrdinal", "Yandex mail follow-ups should support numbered selections");
84
+ assertIncludes(cliSource, "BODY[TEXT]", "Yandex mail read should mark opened messages as seen");
85
+ assertIncludes(cliSource, "markSeen === false", "Yandex mail read should keep an explicit no-mark fallback");
84
86
  assertIncludes(cliSource, "buildCasualDirectAnswer(question)", "Casual greetings should bypass external AI providers");
85
87
  assertNotIncludes(cliSource, "Сервисы через запятую [identity,disk]", "Yandex setup should not ask for services during connector setup");
86
88
  if (!packageJson.files.includes("docs/assets/iola-oauth-icon.png")) {