{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 86,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
            "branch" : [
              {
                "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
            "branch" : [
              {
                "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
        "branch" : [
          {
            "SHA1" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://thoughtframe.ai/thoughtframe/repos/thoughtframe-core"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "ROOT.war",
      "fileName" : "ROOT.war",
      "relativePath" : "thoughtframe/deploy/ROOT.war"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#86",
  "duration" : 127769,
  "estimatedDuration" : 117583,
  "executor" : None,
  "fullDisplayName" : "thoughtframe-core #86",
  "id" : "86",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 86,
  "queueId" : 81,
  "result" : "SUCCESS",
  "timestamp" : 1793585345851,
  "url" : "http://dev.ijsolutions.ca/jenkins/view/all/job/thoughtframe-core/86/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/search.groovy",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/read.groovy",
          "thoughtframe/src/main/java/org/thoughtframe/search/WebSearchModule.java",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.groovy",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.html",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.xconf",
          "thoughtframe/src/main/java/org/thoughtframe/search/DeepSeekWebSearcher.java",
          "thoughtframe/src/main/java/org/thoughtframe/search/WebSearcher.java",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/deepresearch.groovy",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/synthesize.groovy",
          "thoughtframe/src/main/resources/plugin.xml",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/plan.groovy"
        ],
        "commitId" : "70584f3efb273956e04e0284846d7e819722fbfb",
        "timestamp" : 1793457581000,
        "author" : {
          "absoluteUrl" : "http://dev.ijsolutions.ca/jenkins/user/ian",
          "fullName" : "ian"
        },
        "authorEmail" : "ian@oneliveweb.com",
        "comment" : "deep research: declarative frame that talks to DeepSeek itself\u000a\u000aThe frame is structure only: each state declares its step and maps the step's own event (planned/searched/read/synthesized/failed) to a transition, so no script decides its own next state. Steps are scripts under actions/ that call api.deepseek.com/v1/tools/{search,fetch} directly and read the existing 'deepseek-key' setting; they leave queries/sources/notes/report on the frame.\u000a\u000aReverts the DeepSeekWebSearcher provider, the WebSearcher.fetch default and the WebSearchModule changes from a7a3bb66: the frame needs none of them, so the engine stays untouched.\u000a",
        "date" : "2026-10-31 11:39:41 -0300",
        "id" : "70584f3efb273956e04e0284846d7e819722fbfb",
        "msg" : "deep research: declarative frame that talks to DeepSeek itself",
        "paths" : [
          {
            "editType" : "add",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.xconf"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/src/main/java/org/thoughtframe/search/WebSearchModule.java"
          },
          {
            "editType" : "delete",
            "file" : "thoughtframe/src/main/java/org/thoughtframe/search/DeepSeekWebSearcher.java"
          },
          {
            "editType" : "add",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.html"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/deepresearch.groovy"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/src/main/java/org/thoughtframe/search/WebSearcher.java"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/synthesize.groovy"
          },
          {
            "editType" : "add",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/start.groovy"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/read.groovy"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/plan.groovy"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/src/main/resources/plugin.xml"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/frames/research/actions/search.groovy"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/system/events/importing/importcomplete.xconf",
          "thoughtframe/webapp/WEB-INF/base/thoughtframe/system/events/scripts/asset/applygoogletranscode.groovy",
          "dam/src/main/java/org/entermediadb/asset/sources/OriginalsAssetSource.java",
          "thoughtframe/src/main/java/org/thoughtframe/Logo.java"
        ],
        "commitId" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
        "timestamp" : 1793585309000,
        "author" : {
          "absoluteUrl" : "http://dev.ijsolutions.ca/jenkins/user/ian",
          "fullName" : "ian"
        },
        "authorEmail" : "ian@oneliveweb.com",
        "comment" : "bunch of changes.\u000a",
        "date" : "2026-11-01 22:08:29 -0400",
        "id" : "b3ab35772613caef1cb48f7509b8f5d6140043a6",
        "msg" : "bunch of changes.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/system/events/scripts/asset/applygoogletranscode.groovy"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/webapp/WEB-INF/base/thoughtframe/system/events/importing/importcomplete.xconf"
          },
          {
            "editType" : "edit",
            "file" : "thoughtframe/src/main/java/org/thoughtframe/Logo.java"
          },
          {
            "editType" : "edit",
            "file" : "dam/src/main/java/org/entermediadb/asset/sources/OriginalsAssetSource.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "http://dev.ijsolutions.ca/jenkins/user/ian",
      "fullName" : "ian"
    }
  ]
}