File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -488,6 +488,45 @@ describe("getMessageFeishu", () => {
488488 } ,
489489 ] ) ;
490490 } ) ;
491+
492+ it ( "does not partially parse malformed thread history create_time values" , async ( ) => {
493+ mockClientList . mockResolvedValueOnce ( {
494+ code : 0 ,
495+ data : {
496+ items : [
497+ {
498+ message_id : "om_text" ,
499+ msg_type : "text" ,
500+ body : {
501+ content : JSON . stringify ( { text : "partial time" } ) ,
502+ } ,
503+ sender : {
504+ id : "ou_1" ,
505+ sender_type : "user" ,
506+ } ,
507+ create_time : "1710000000000ms" ,
508+ } ,
509+ ] ,
510+ } ,
511+ } ) ;
512+
513+ const result = await listFeishuThreadMessages ( {
514+ cfg : { } as ClawdbotConfig ,
515+ threadId : "omt_1" ,
516+ rootMessageId : "om_root" ,
517+ } ) ;
518+
519+ expect ( result ) . toEqual ( [
520+ {
521+ messageId : "om_text" ,
522+ senderId : "ou_1" ,
523+ senderType : "user" ,
524+ contentType : "text" ,
525+ content : "partial time" ,
526+ createTime : undefined ,
527+ } ,
528+ ] ) ;
529+ } ) ;
491530} ) ;
492531
493532describe ( "editMessageFeishu" , ( ) => {
Original file line number Diff line number Diff line change 11import { resolveMarkdownTableMode } from "openclaw/plugin-sdk/markdown-table-runtime" ;
2+ import { parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime" ;
23import {
34 isRecord ,
45 normalizeLowercaseStringOrEmpty ,
@@ -378,7 +379,7 @@ function parseFeishuMessageItem(
378379 senderType : item . sender ?. sender_type ,
379380 content : parseFeishuMessageContent ( rawContent , msgType ) ,
380381 contentType : msgType ,
381- createTime : item . create_time ? Number . parseInt ( item . create_time , 10 ) : undefined ,
382+ createTime : parseStrictNonNegativeInteger ( item . create_time ) ,
382383 threadId : item . thread_id || undefined ,
383384 } ;
384385}
You can’t perform that action at this time.
0 commit comments