- Replace cross-ClassLoader reflection with ExtensionGetter.getEnabledExtension(AiModelService.class) - Declare optional pluginDependencies (ai-foundation?: "*") and recommended-apps annotation - Use OutputSpec.choice for structured classification (sentiment, review safety/quality) - Use GenerateTextRequest with maxRetries=2 for reliable chat generation - Add multi-turn conversation context (conversation_history placeholder) - Fix RateLimitService thread leak (implement DisposableBean) - Two-stage AI review: safety check + 1-5 quality score mapped to 0-100 - Remove redundant dashboard cards (sentiment distribution, 7-day trend, avg score) - Redesign settings page with tabbed navigation (basic/persona/model/prompt/cleanup) - Fix settings layout (move tab bar out of grid container) - Fix button icon+text alignment via :deep(.btn-content) inline-flex - Add review score grade labels (excellent/good/fair/poor) in logs
59 lines
1.4 KiB
Groovy
59 lines
1.4 KiB
Groovy
plugins {
|
|
id 'java'
|
|
id "io.freefair.lombok" version "9.2.0"
|
|
id "run.halo.plugin.devtools" version "0.6.2"
|
|
}
|
|
|
|
group 'top.nxxy335.commentaiautopilot'
|
|
version '1.0.0-beta.2-kx7m2p'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation platform('run.halo.tools.platform:plugin:2.25.0')
|
|
compileOnly 'run.halo.app:api'
|
|
compileOnly files('libs/ai-foundation-api.jar')
|
|
implementation 'org.jsoup:jsoup:1.18.1'
|
|
|
|
testImplementation 'run.halo.app:api'
|
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(21)
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = "UTF-8"
|
|
options.release = 21
|
|
}
|
|
|
|
tasks.register('processUiResources', Copy) {
|
|
from project(':ui').layout.buildDirectory.dir('dist')
|
|
into layout.buildDirectory.dir('resources/main/ui')
|
|
dependsOn project(':ui').tasks.named('assemble')
|
|
shouldRunAfter tasks.named('processResources')
|
|
}
|
|
|
|
tasks.named('classes') {
|
|
dependsOn tasks.named('processUiResources')
|
|
}
|
|
|
|
tasks.named('generatePluginComponentsIdx') {
|
|
notCompatibleWithConfigurationCache('This task invokes "Task.project" at execution time, which is not supported with configuration cache.')
|
|
}
|
|
|
|
halo {
|
|
version = '2.25'
|
|
}
|
|
|