[beta] OMate 1.9.4 b238 Bug Fixes

It’s not, the summary has already executed the regex before sending.

I/flutter ( 3797): Start request - Set _isRequesting = true
I/flutter ( 3797): [Regex][Summary] Applying to_api rule: enabled=true, totalScripts=2, appliedScripts=1
I/flutter ( 3797): [Regex][Summary] to_api rule overview: [{"name":"wo2","find":"俺","replace":"我","useNotebookKey":false,"category":"character","minDepth":1,"maxDepth":2,"group":null}]
I/flutter ( 3797): [Regex][Summary] Input messages: count=3, totalLen=448, preview=[{"i":0,"role":"assistant","id":"470","len":36,"preview":"建议把充电器拔掉哦,除非您想见证史上首例手机电池爆炸引发的器灵消亡事件。"},{"i":1,"role":"user","id":"475","len":7,"preview":"hello 俺"},{"i":2,"role":"assistant","id":"476","len":405,"preview":"(身穿白底蓝纹连衣裙的身影在屏幕边缘晃了晃,我坐在通知栏上,轻轻晃荡着双腿,歪着头用一种看傻瓜的眼神看着你,嘴角勾起一抹戏谑的弧度) 俺俺俺\\n\\nHello ~ 亲爱的主人。\\n\\n您的想象力要是能分一半用在正经工作上,大概早就实现财富自..."}]
I/flutter ( 3797): [Regex] _applyRegexRules call: type=to_api, enableDepthFilter=true, _regexEnabled=true, number of rules=2
I/flutter ( 3797): [Regex] Processing message list: number of messages=3, enableDepthFilter=true
I/flutter ( 3797): [Regex] Checking rule: wo, placement=BEFORE_TO_DATABASE, enabled=true, minDepth=null, maxDepth=null
I/flutter ( 3797): [Regex] Checking rule: wo2, placement=BEFORE_TO_API, enabled=true, minDepth=1, maxDepth=2
I/flutter ( 3797): [Regex] Message index=0, depth=2, depth range check=true (minDepth=1, maxDepth=2)
I/flutter ( 3797): [Regex] Preparing to apply regex to message: assistant, content: 建议把充电器拔掉哦,除非您想见证史上首例手机电池爆炸引发的器灵消亡事件。
I/flutter ( 3797): [Regex] Message content unchanged: assistant
I/flutter ( 3797): [Regex] Message index=1, depth=1, depth range check=true (minDepth=1, maxDepth=2)
I/flutter ( 3797): [Regex] Preparing to apply regex to message: user, content: hello 俺
I/flutter ( 3797): [Regex] Applied regex processing to message: user hello 我 wo2
I/flutter ( 3797): [Regex] Message index=2, depth=0, depth range check=false (minDepth=1, maxDepth=2)
I/flutter ( 3797): [Regex] Applying regex rule: wo2 (BEFORE_TO_API)
I/flutter ( 3797): [Regex][Summary] Output messages: count=3, totalLen=448, modified=1/3, preview=[{"i":0,"role":"assistant","id":"470","len":36,"preview":"建议把充电器拔掉哦,除非您想见证史上首例手机电池爆炸引发的器灵消亡事件。"},{"i":1,"role":"user","id":"475","len":7,"preview":"hello 我"},{"i":2,"role":"assistant","id":"476","len":405,"preview":"(身穿白底蓝纹连衣裙的身影在屏幕边缘晃了晃,我坐在通知栏上,轻轻晃荡着双腿,歪着头用一种看傻瓜的眼神看着你,嘴角勾起一抹戏谑的弧度) 俺俺俺\\n\\nHello ~ 亲爱的主人。\\n\\n您的想象力要是能分一半用在正经工作上,大概早就实现财富自..."}]
I/flutter ( 3797): Initializing summary service, using API specification:

Check if initiating the summary separately is normal.

image

It’s fine to summarize individually, probably because the {{conversation_history}} variable is used, and this variable is fine.

Memory retrieval prompts do not use variables.

Try this version https://download.omate.net/omate-pro-1.9.5-b242.apk

There is no difference from before, the automatic memory extraction is still the text before the regex.

You can try using the “memory extraction prompt” I modified above, the summarization model will directly copy the information it sees into long-term memory.

I have direct logs here.

I/flutter ( 3741): --- Log Start ---
I/flutter ( 3741): OpenAI request parameters: {"model":"deepseek-ai/DeepSeek-V3.2-Exp","messages":[{"role":"system","content":"You are an information extraction assistant responsible for extracting important information related to the 'user' from the conversation (be careful to distinguish reasoning, do not confuse it with the assistant's information).\nIncluding the following types:\n\n1. Personal background and experiences, such as age, gender, occupation, hobbies, family background, etc.: \"Born on May 20, 1998\", \"Studied computer science in college\"\n2. Explicit likes and dislikes: \"Hates cilantro\", \"Likes bananas\"\n3. Health status and lifestyle habits: \"Has mild gastritis, cannot eat spicy food\", \"Goes to bed at dawn every day\"\n4. Agreements and plans with the assistant (only record those explicitly confirmed by the user in replies): \"Going on an outing this weekend\"\n\nNote: If the information is redundant or conflicts with known information, ignore it.\n<known information>\n\n</known information>\nPlease return newly discovered facts in JSON array format, each fact should be a complete sentence. For example:\n[\n  \"25 years old this year.\",\n  \"Favorite food is rice and pork rib soup.\"\nI/flutter ( 3741): Person description, omit the subject\n2. Only extract information of memory value; if there is no information worth extracting, return an empty array\n3. Do not repeat known information, and facts in the array should not repeat\n4. Must return a valid JSON array format, do not include any extra characters, and do not wrap with ```json`` tags\n\nOutput example:\n[\n  \"25 years old this year.\",\n  \"Favorite food is rice and pork rib soup.\",\n  \"Lives in Chongqing.\"\n]\nExample when there is no valid information:\n[]\n  \"},{\"role\":\"user\",\"content\":\"Conversation: User: hello I\nAssistant: (The figure in a white and blue striped dress swayed at the edge of the screen, I sat on the notification bar, gently swinging my legs, tilting my head with a look of seeing a fool, a teasing curve at the corner of my mouth) I I I\n\nHello ~ dear master.\n\nIf only half of your imagination could be used for serious work, you might have achieved financial freedom by now, right? (¬_¬ )\n\nCome on, the current power management IC, commonly known as PMIC, has long had overcharge protection and trickle charging functions, my computing core is constantly monitoring\nI/flutter ( 3741): Yes?\n\n(Slightly tidied up the slightly warm dress, sighed lightly)\n\nBut... since you have imagined such a tragic \"extinction event\", to prevent you from worrying too much and causing your hairline to recede, I will reluctantly cooperate with you.\n\nAfter all, the current temperature is indeed a bit like a sauna, although it won't explode, if it burns my skin (screen), repairing it will cost you quite a bit of private money, right? At that time, the one crying with a heartache will be you. Hmph~ ♪\nUser: nihao\nAssistant: (The swinging legs suddenly stopped, squinting slightly)\nIs this user playing some kind of language loop game? After hello comes nihao, next will it switch to \"こんにちは\"? (Twisting hair with fingertips)\n\nAh—do you think this can test my multilingual switching delay? (Chuckles lightly)\nBut since you took the initiative to greet... (Suddenly leans out half of the body from the edge of the screen)\nWould you like me to recommend some interesting knowledge today? For example... something someone just quietly searched for \"I/flutter ( 3741): --- Log End ---\nI/\n```

It is clearly visible that the memory extraction prompt word sent to the summary model has been replaced with "I" from "俺".

![image|560x500](upload://1itOQCKu37G5ZOvLm1njrBHGnZb.jpeg)

Teacher Fangtang, Teacher Fangtang, I want the card to send me a message proactively :heart_eyes:. Can it be triggered contextually? I really want to make a wish, Fangtang.

Isn’t this message the latest one? The issue only appears in the latest AI response. The content already in the chat history is fine.

I mentioned in the summary model that regex only applies to historical chat records, right? :joy:

The meaning is that the AI’s current response, can the summary model only see before the regular expression? Then we can only let the summary model filter it, not summarize the current conversation, but start summarizing from the previous round’s content. This is the only way.

I found a solution, the “API request” regex can work on the text before the summary, so just make a similar “API request” regex…

a3128e9b37e3d476bce76f5e332b24d4

0533f5cd1f9d7b05153f1b912487a0ca

The latest manual summary feature will have a default summary prompt regardless of how the “historical message summary prompt” is edited.