diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..61ad09f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,41 @@ +# Changelog + +All notable Doc2FAQ changes are recorded here. Version numbers follow semantic versioning; entries describe shipped source functionality and do not imply an external AI service. + +## 0.3.0 + +### Added + +- **Extract Mode** for existing Markdown question headings and explicit Q:/A: pairs. +- **Generate Mode** for source-grounded FAQ suggestions from document sections. Generation is local and deterministic, not powered by a paid AI provider. +- In-browser FAQ editor for changing questions and answers, reordering items, removing duplicates, and adding new entries. +- Markdown, JSON, and standalone HTML exports, with HTML content escaped for safety. +- Windows Command Prompt instructions for installing Java 21 and Maven, configuring PATH, and troubleshooting local startup. +- Java service and API integration tests for generation, limits, and validation, plus Node tests for export safety. + +### Improved + +- Expanded FAQ text validation to **50,000 characters**, consistent with extraction and the browser. +- Generate Mode filters common-topic duplicates, document-title headings, and existing FAQ appendices. +- More natural question phrasing for client responsibilities, confidentiality, and intellectual-property ownership. +- Existing Extract Mode behavior remains unchanged when a document contains explicit FAQ pairs. + +### Supported inputs and limits + +- TXT and Markdown uploads in the browser (256 KB file size). +- PDF and DOCX uploads via the Java server (5 MB each). +- Maximum 50 PDF pages, 50,000 extracted characters, and 30 FAQ items. + +### Known limitations + +- Scanned or image-only PDFs require OCR before import; OCR is not included. +- Generate Mode is heuristic and may skip useful details or produce generic questions. Review every answer. +- No accounts, paid plans, public-server hardening, or document persistence are included. +- PDF and DOCX **export** are planned for a future release. The current outputs are Markdown, JSON, and HTML. + +## 0.2.0 + +- Added PDF and DOCX text import using Apache PDFBox and Apache POI. +- Introduced format-signature validation and explicit errors for unsupported, empty, encrypted, or scanned documents. +- Added document upload size and page/text extraction limits. +- Preserved local, deterministic explicit-Q&A extraction. diff --git a/README.md b/README.md index 5475219..28166de 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Doc2FAQ is a Java 21 / Spring Boot document-to-FAQ workbench. Paste text or uplo Created by **Okan Tiktas** · [OKAN-SOFTWARE](https://github.com/OKAN-SOFTWARE). -> **Development version: v0.3.0 (unreleased).** Latest published release: [v0.2.0 — PDF & DOCX Support](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases/tag/v0.2.0). This README describes the current development branch, not a published v0.3.0 release. +> **Source version: v0.3.0.** The version in `pom.xml` identifies this build. For published tags, release downloads, and announcements, see [GitHub Releases](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases). This source version does not by itself publish a GitHub Release. ## What's new in v0.3.0 @@ -20,6 +20,8 @@ Created by **Okan Tiktas** · [OKAN-SOFTWARE](https://github.com/OKAN-SOFTWARE). **Privacy and accuracy:** The current Generate Mode is **deterministic and rule-based, not a generative AI model**. No API key, paid AI service, or external model is required. Its questions are suggestions; answers come from excerpts in your source document. Topic-based duplicate filtering can sometimes suppress distinct details within a topic. It cannot reliably interpret every layout or guarantee an accurate summary. Always review before publishing. +For detailed changes, see [CHANGELOG.md](CHANGELOG.md). For the release checklist, see [docs/RELEASING.md](docs/RELEASING.md). + ## Requirements - Java Development Kit (**JDK 21**), not just a Java Runtime Environment. diff --git a/docs/RELEASING.md b/docs/RELEASING.md new file mode 100644 index 0000000..e6736f9 --- /dev/null +++ b/docs/RELEASING.md @@ -0,0 +1,38 @@ +# Doc2FAQ release checklist + +This is the procedure for publishing **v0.3.0** from the protected `main` branch. Preparing a PR and changing the Maven version do **not** publish the release. + +## Before publishing + +1. Merge the version-finalization PR into `main` after the required `build-and-test` check passes. +2. Verify the `main` branch has the release commit and the `pom.xml` version is exactly `0.3.0` (not `0.3.0-SNAPSHOT`). +3. Run the GitHub Actions build or verify locally with Java 21 and Maven 3.6.3+: + + ```cmd +mvn -B -ntp clean verify +``` + +4. Open `http://localhost:8080` with `mvn spring-boot:run` and smoke-test: + - Extract Mode: the fictional maintenance agreement produces six explicit FAQ entries. + - Generate Mode: the same example produces nine source-grounded entries after duplicate and appendix filtering. + - Review: edit, reorder, remove, and add FAQ entries. + - Export: Markdown, JSON, and HTML downloads contain the expected questions and answers. +5. Confirm the repository has no existing `v0.3.0` tag or Release. Do not replace an existing tag. + +## Publish using GitHub + +1. Open [Draft a new release](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases/new). +2. Choose **Create new tag**, enter **`v0.3.0`**, and target the current **`main`** branch. +3. Use release title: **Doc2FAQ v0.3.0 — Generate Mode, Review & Multi-Format Export**. +4. Copy the **0.3.0** section of [CHANGELOG.md](../CHANGELOG.md) into the Release notes. Describe the deterministic nature of generation and limits honestly. +5. Optionally attach the runnable `target/doc2faq-0.3.0.jar` built by Maven, after validating it starts with Java 21. GitHub automatically supplies source-code archives. +6. Review all fields and select **Publish release**. This is the public publication step; do it only when ready. + +## Verify after publishing + +- Confirm [Releases](https://github.com/OKAN-SOFTWARE/Doc2FAQ/releases) includes **v0.3.0** and targets the exact release commit on `main`. +- Verify the GitHub Actions check for the tag, if triggered, completes successfully. +- Download the source archive or JAR from the release page and confirm the version and local startup. +- Leave any future PDF/DOCX output feature work for a separate branch and release. + +**License:** MIT · Copyright © 2026 Okan Tiktas. diff --git a/pom.xml b/pom.xml index 1cb61bf..03e9614 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.okansoftware doc2faq - 0.3.0-SNAPSHOT + 0.3.0 Doc2FAQ Privacy-conscious document-to-FAQ preview workbench