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
36 changes: 32 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,36 @@

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project tracks the bundled [Vapi4k](https://github.com/vapi4k/vapi4k)
library version.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
As of **1.2.0**, the template is versioned independently of the bundled
[Vapi4k](https://github.com/vapi4k/vapi4k) library, and each release records
the Vapi4k version it ships. Earlier entries (**1.7.0** and below) mirror the
bundled Vapi4k library version.

## [1.2.0][1.2.0-2026] - 2026-07-10

First template release versioned independently of the bundled Vapi4k library.
Ships **Vapi4k 1.8.0**, **Ktor 3.5.1**, **Kotlin 2.4.0**, and the **Gradle
9.6.1** wrapper.

### Added
- GitHub Actions CI workflow (`.github/workflows/ci.yml`) that builds the
project on every push and pull request.
- `CHANGELOG.md` and `RELEASE_NOTES.md` documenting the project's history.
- Makefile `help` target, release/Docker/image guards, and Docker
build/run/push shortcuts.

### Changed
- Vapi4k upgraded to **1.8.0**; Ktor to **3.5.1**; Kotlin to **2.4.0**.
- Gradle wrapper upgraded to **9.6.1**.
- `build.gradle.kts` refactored into `configureKotlin`, `configureKtor`, and
`configureVersions` helper functions.
- Dependency-update filtering now uses a delimiter-aware regex that rejects a
pre-release candidate only when the current version is stable, so
intentionally-tracked pre-release lines still surface newer pre-releases.
- Makefile modernized: parsed project/dependency versions, target guards,
Docker hygiene, and the `versioncheck` target renamed to `versions`.
- Version catalog key renamed from `gradle` to `gradle-wrapper`.

## [1.7.0] - 2026-04-08

Expand Down Expand Up @@ -96,7 +123,8 @@ library version.
### Changed
- Vapi4k pinned to **1.1.0**; Ktor upgraded to **3.0.1**; Kotlin **2.0.20**.

[1.7.0]: https://github.com/vapi4k/vapi4k-template/compare/c16fbbf...HEAD
[1.2.0-2026]: https://github.com/vapi4k/vapi4k-template/compare/8b86ea6...HEAD
[1.7.0]: https://github.com/vapi4k/vapi4k-template/compare/c16fbbf...8b86ea6
[1.6.1]: https://github.com/vapi4k/vapi4k-template/compare/49dfb5f...1a3ec08
[1.4.0]: https://github.com/vapi4k/vapi4k-template/compare/0b846c5...cadd1d0
[1.3.2]: https://github.com/vapi4k/vapi4k-template/compare/bcba402...0b846c5
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Each app configures a model, voice provider, system message, and the `WeatherLoo

## Dependencies

- **Kotlin** 2.3.20, **Ktor** 3.4.2, **Vapi4k** 1.7.0
- **Kotlin** 2.4.0, **Ktor** 3.5.1, **Vapi4k** 1.8.0
- Gradle with Kotlin DSL (version in `gradle/wrapper/gradle-wrapper.properties`)
- Two Vapi4k libraries: `vapi4k-core` (voice app framework) and `vapi4k-dbms` (persistence)
- All versions managed in `gradle/libs.versions.toml` — update versions there, not in `build.gradle.kts`
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Vapi4k Application Template

[![Kotlin version](https://img.shields.io/badge/kotlin-2.3.20-red?logo=kotlin)](http://kotlinlang.org)
[![Kotlin version](https://img.shields.io/badge/kotlin-2.4.0-red?logo=kotlin)](http://kotlinlang.org)
[![ktlint](https://img.shields.io/badge/ktlint%20code--style-%E2%9D%A4-FF4081)](https://pinterest.github.io/ktlint/)

This template is a starting point for creating a new [Vapi](https://vapi.ai) application using
Expand Down
51 changes: 26 additions & 25 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,40 @@
# Release Notes — v1.7.0 (2026-04-08)
# Release Notes — v1.2.0 (2026-07-10)

The full version history is in [CHANGELOG.md](CHANGELOG.md). This file
covers the most recent release only and is intended for use as the body of a
GitHub release.

This is the first template release versioned independently of the bundled
Vapi4k library.

## Highlights

- **Vapi4k 1.7.0** and **Ktor 3.4.2** — pulled in the latest upstream features
and fixes.
- **Vapi4k now resolves from Maven Central.** The Maven group ID changed from
`com.github.vapi4k.vapi4k` to `com.vapi4k`, and the JitPack repository has
been removed from the build.
- **`.env`-based configuration.** A new `.env.example` documents the
environment variables the template reads at startup; copy it to `.env`
locally. Heroku and Docker continue to inject env vars through their own
mechanisms.
- **Voice and model configurations refreshed** across all three apps:
- Inbound call app — OpenAI GPT-4 Turbo + DeepGram Luna
- Outbound call app (`/callCustomer`) — Anthropic Claude Opus 4 + ElevenLabs Paula
- Web talk app (`/talkApp`, UI at `GET /talk`) — Groq Llama3 70B + PlayHT Jack
- **JVM 21** is now required (already the default in the Docker image and
`system.properties`; now also enforced by the Gradle toolchain).
- **README** points at the new documentation site, `https://docs.vapi4k.com/`.
- **Vapi4k 1.8.0**, **Ktor 3.5.1**, and **Kotlin 2.4.0** — the latest upstream
features and fixes.
- **Gradle 9.6.1 wrapper.**
- **Continuous integration.** A new GitHub Actions workflow
(`.github/workflows/ci.yml`) builds the project on every push and pull
request.
- **Build script refactor.** `build.gradle.kts` configuration is split into
`configureKotlin`, `configureKtor`, and `configureVersions` helpers. The
`dependencyUpdates` pre-release filter now uses a delimiter-aware regex that
rejects an unstable candidate only when the current version is stable, so
dependencies intentionally tracked on a pre-release line still surface newer
pre-releases.
- **Makefile modernization.** Parsed project and dependency versions, a
self-documenting `help` target, guards for the release/Docker targets, and
Docker build/run/push shortcuts. The `versioncheck` target is now `versions`.
- **Project history docs.** `CHANGELOG.md` and `RELEASE_NOTES.md` were added.

## Upgrade notes

If you have a fork or downstream copy of this template:
If you have a fork or downstream copy of this template, no source changes are
required. To match this release:

1. Replace any `com.github.vapi4k.vapi4k:vapi4k-*` dependency coordinates with
`com.vapi4k:vapi4k-*`.
2. Remove the JitPack `maven(url = "https://jitpack.io")` repository entry.
3. Make sure your build environment has **JDK 21** available
(`./gradlew --version` should report Java 21).
4. Copy `.env.example` to `.env` and populate the variables your deployment
needs.
1. Upgrade the Gradle wrapper to **9.6.1** (`make upgrade-wrapper` or
`./gradlew wrapper --gradle-version 9.6.1`).
2. Pull the dependency versions from `gradle/libs.versions.toml` (Vapi4k
**1.8.0**, Ktor **3.5.1**, Kotlin **2.4.0**).

## Build & run

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
group = "com.myapp"
version=1.1.0
version=1.2.0

kotlin.code.style=official
org.gradle.configuration-cache=true
Expand Down
6 changes: 3 additions & 3 deletions llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ Each app configures an AI model, a voice provider, a system message, and service

## Tech Stack

- **Language**: Kotlin (JVM 21)
- **Web framework**: Ktor with CIO engine
- **Voice AI**: Vapi4k (`vapi4k-core` + `vapi4k-dbms`) via Maven Central
- **Language**: Kotlin 2.4.0 (JVM 21)
- **Web framework**: Ktor 3.5.1 with CIO engine
- **Voice AI**: Vapi4k 1.8.0 (`vapi4k-core` + `vapi4k-dbms`) via Maven Central
- **Build**: Gradle with Kotlin DSL, version catalog (`gradle/libs.versions.toml`)
- **HTML rendering**: kotlinx.html DSL
- **Deployment**: Heroku (Procfile), Docker (Alpine + JDK 21), or standalone fat JAR
Expand Down
Loading