Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ may change in any release. See the status note in the README.

## [Unreleased]

## [0.5.8] — 2026-11-09

The chat's suggestion warm-up stops spending the chat's day on a chat nobody opens, recovers from a failed or
unreachable model within minutes, and the pipeline no longer imports the chat. No migration, and no value to set.
unreachable model within minutes, and the pipeline no longer imports the chat. A stopped chat turn ends its model call
again on the openai-java Spring AI brings, so nothing is held back any more. The frontend builds on Node 26 with
Angular 22.2, and on a phone the toasts stack one high. No migration, and no value to set: the two new
`leadgen.chat.suggestion-*` durations have defaults.

### Changed

Expand Down Expand Up @@ -1851,7 +1856,8 @@ Found while building the demo, all of them in paths only a container exercises:
left six.
- The shortlist card printed the description's Markdown syntax in its teaser.

[Unreleased]: https://github.com/codeministry/leadgen/compare/v0.5.7...HEAD
[Unreleased]: https://github.com/codeministry/leadgen/compare/v0.5.8...HEAD
[0.5.8]: https://github.com/codeministry/leadgen/releases/tag/v0.5.8
[0.5.7]: https://github.com/codeministry/leadgen/releases/tag/v0.5.7
[0.5.6]: https://github.com/codeministry/leadgen/releases/tag/v0.5.6
[0.5.5]: https://github.com/codeministry/leadgen/releases/tag/v0.5.5
Expand Down
2 changes: 1 addition & 1 deletion backend/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ plugins {
}

group = "de.codeministry"
version = "0.5.7"
version = "0.5.8"

/*
* Java 25 through the toolchain rather than the ambient JDK: Gradle runs on
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public record ConfigProperties(

// One home per default, read by the bound constructor and the hand-built one alike, so
// the two cannot drift. `@DefaultValue` takes a compile-time constant, hence strings.
private static final String DEFAULT_VERSION = "0.5.7";
private static final String DEFAULT_VERSION = "0.5.8";
private static final String DEFAULT_CONFIG_POLL_INTERVAL = "PT2S";
private static final String DEFAULT_SCORE_BATCH_POLL_INTERVAL = "PT5M";
private static final String DEFAULT_INGEST_CRON = "-";
Expand Down
6 changes: 3 additions & 3 deletions backend/src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ spring:
name: leadgen
# What a client reads in the `initialize` result: the running build, from the one place
# the build names itself (leadgen.version below).
version: ${LEADGEN_VERSION:0.5.7}
version: ${LEADGEN_VERSION:0.5.8}
# STREAMABLE and not SSE: Spring AI 2.0 deprecates SSE, and Streamable HTTP is what
# current MCP clients negotiate.
protocol: STREAMABLE
Expand All @@ -43,10 +43,10 @@ spring:
# not have to exist — without it the defaults apply.
leadgen:
# What the header shows, and the only place the running build names itself. Without this
# line the default on ConfigProperties applies and every image reports 0.5.7 —
# line the default on ConfigProperties applies and every image reports 0.5.8 —
# the Gradle version is not injected into the jar, and the Dockerfile copies libs/*.jar
# by glob, so nothing else carries it either. The deploy sets it from the image tag.
version: ${LEADGEN_VERSION:0.5.7}
version: ${LEADGEN_VERSION:0.5.8}
config-dir: ${LEADGEN_CONFIG_DIR:config}
security:
# Asserts that something outside this process decides who reaches the port, which is
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
// into the `spring-boot-webmvc-test` module. The old import compiles against
// Boot 3 and simply does not exist here.
@WebMvcTest(StatusController.class)
@TestPropertySource(properties = {"spring.application.name=lead-generation", "leadgen.version=0.5.7"})
@TestPropertySource(properties = {"spring.application.name=lead-generation", "leadgen.version=0.5.8"})
class StatusControllerTest {

@Autowired
Expand All @@ -30,6 +30,6 @@ void returnsApplicationNameAndVersion() {
Assertions.assertThat(mvc.get().uri("/api/v1/status"))
.hasStatusOk()
.bodyJson()
.isEqualTo("{\"application\":\"lead-generation\",\"version\":\"0.5.7\"}");
.isEqualTo("{\"application\":\"lead-generation\",\"version\":\"0.5.8\"}");
}
}
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "frontend",
"version": "0.5.7",
"version": "0.5.8",
"scripts": {
"start": "ng serve",
"build": "ng build",
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/app/app.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ describe('App', () => {
const fixture = TestBed.createComponent(App);
fixture.detectChanges();

httpMock.expectOne('/api/v1/status').flush({application: 'lead-generation', version: '0.5.7'});
httpMock.expectOne('/api/v1/status').flush({application: 'lead-generation', version: '0.5.8'});
// Run ingest and the model choice left the header for the workflow screen (operator,
// 2026-09-27), so the shell does not create the scoring-model store: the model list is
// not asked for here. The ingest store is created at the root (fix 2F-5), so its
Expand All @@ -34,7 +34,7 @@ describe('App', () => {
await fixture.whenStable();
fixture.detectChanges();

expect(fixture.nativeElement.textContent).toContain('lead-generation 0.5.7');
expect(fixture.nativeElement.textContent).toContain('lead-generation 0.5.8');
httpMock.verify();
});

Expand Down
Loading