Changelog
Public record of changes to koher.app. What changed and why.
2026-06-02
Sensorium v0.1.7 — the sensed-split needle goes live
v0.1.7
The sensed-split needle now reads every model reply and moves on each chat round — calibration becomes the opening baseline, and the conversation drives the instrument in real time. Swing it: a model holding firm pushes the needle toward held; flattery pushes it toward conflated. Plus the fixes from Dhyeya's testing: calibration now survives quit + relaunch, the needle remembers each chat, and a flavour-upgrade guard stops a stale baseline reading silently wrong. Default chat model is now Claude Haiku 4.5. macOS (Apple silicon + Intel), Windows, and Linux (amd64 + arm64, deb + flatpak) all built from the same source this cut.
Why. This release turns the sensed split from a one-time calibration figure into a live instrument — the change asked for after the static-needle design was rejected ("per-chat-round response, fast and responsive"). It also closes the calibration-persistence and needle-memory bugs Dhyeya surfaced in testing, so the reading is trustworthy across sessions.
2026-06-01
Coherence Diagnostic v1.1 — evidence & assumption over-prediction fix
v1.1
Retrained the Coherence Diagnostic's Stage-1 DeBERTa model after Pablo Martínez Samper reported it over-detecting EVIDENCE and ASSUMPTIONS — reading them as present in fluent concepts that actually supply none. On the corrected held-out test set, assumption over-detection (predicting present when absent) fell from 0.31 to 0.01 and evidence from 0.07 to 0.02; overall accuracy rose from 0.92 to 0.97 with no regression on the other dimensions. A fluent, evidence-free concept now correctly reads low on both. Live at coherence-demo.koher.app. With thanks to Pablo Martínez Samper for the bug report and advice.
2026-05-28
Removed submission-venue name from the architecture note and position page
The Koher paper's 21 April 2026 journal submission was declined at editorial review on 28 May 2026. The koher.app note had publicly named the venue; the architecture position page also named it. Both surfaces edited to remove the name.
Why. New rule: never publish the name of a paper's submission target on any public surface before the outcome is known. Naming a venue before outcome creates an asymmetric public footprint — visible on acceptance and on rejection alike, with no upside from pre-decision visibility.
2026-05-22
Sensorium v0.1.6 — flavour install + 14 Dhyeya fixes
v0.1.6
Three substantive surfaces and 14 friction items from Dhyeya's week-09 testing. Flavour install pipeline (From URL / From file / Browse registry buttons now do real work; sycophancy.json published as a release asset). Top-bar model picker opens a real dropdown with every OpenRouter model live. OpenRouter spend display shows your actual cumulative usage next to the per-refresh estimate. Dhyeya items: wizard centring, Ollama link strip, Ollama info hierarchy restructure, Re-check loading state, top-bar model picker wiring, manual refresh button, suppress bundled-sample timestamps on first use, composer placeholder branches, panel reset on model change, real OpenRouter usage line, folds-label alignment, settings dropdown styling, Behind the Curtain nested toggles per Q/R/L, Settings persistence pass (Refresh cadence, Budget cap, Ollama model, Narration mode all now save). Mac DMGs (aarch64 + x64); Linux .deb + .flatpak catch-up bundle on next Linux build cycle.
Why. Hotfix-class multi-batch ship per Prayas's call: she sends reports weekly, no point in delaying. Closes the v0.1.4 / v0.1.5 Mac-only hotfix cluster; Linux users on v0.1.3 catch up to everything via v0.1.6. Next non-hotfix release window holds at 5 June 2026 (originally v0.1.5's slot, now v0.1.7's).
2026-05-22
Sensorium v0.1.5 — Mac hotfix
v0.1.5
Four fixes from Dhyeya's testing of v0.1.4. Settings → Provider: Update API-key button wired (was unwired), Clear button flips status pill visibly (was silent). Tone-cue row above composer redesigned as brainstorming prompts — always returns 3 cues with a model-agnostic pool (Question the frame, Try the opposite, Ask for an example, Slow it down, Add a constraint, Change register, Name the stakes, Ask how it knows, Surface a tension, Test an edge case); threshold-driven sycophancy cues still take priority when they fire. Chat-model dropdown now pulls from live OpenRouter /models on every settings open, with a corrected hardcoded shortlist as fallback. Mac-only build (aarch64 + x64); Linux gets the fixes bundled into v0.1.6 substance on 5 Jun 2026.
Why. Surfaced within 90 minutes of the v0.1.4 ship. Tone-cue redesign reframes the feature — cues are for brainstorming next moves with any model, not warnings about sycophancy patterns. Earlier reading of the bug as a missing fallback was too tolerant; the real shift is the purpose of the cues.
2026-05-21
Sensorium v0.1.4 hotfix — Settings → Chat model dropdown now actually saves
v0.1.4
Mac-only hotfix wiring the Settings → Chat model dropdown to the header badge and the chat module. Prior behaviour: selecting a different model in Settings was a no-op — the header lied (kept showing the hardcoded default) and messages still went to the previous model, because the save handler wrote only probe_selection and never active_model. Five-edit JS-only fix across src/index.html, src/js/settings-modal.js, src/js/app.js: the header span and Chat model select gain ids; syncFromSource pre-selects the dropdown from saved active_model (with a defensive option-prepend if the saved value isn't a built-in); the save handler now writes active_model; on save, the header is rewritten and chat.setModel() is called so the next message in the same session goes to the new model. Mac DMGs only (aarch64 + x64). Linux .deb + .flatpak users on v0.1.3 wait for v0.1.5 on/after 4 June 2026 — the bug is platform-independent but the rebuild + sandbox-smoke cycle wasn't worth a same-day Linux hotfix. The v0.1.4 label is consumed by this hotfix; the planned non-hotfix substance from buffer.md moves to v0.1.5. The two-week cadence floor for the next non-hotfix release stays 4 June 2026 (hotfixes override the floor but the next planned release respects the original interval). Release: https://github.com/koherarchitecture/sensorium/releases/tag/v0.1.4
2026-05-21
Sensorium tool page gains a detailed Features section with custom iconography
koher.app/tools/sensorium now leads with a 12-card Features grid before the prose — Local-first chat, Bring your own model, Filter cartography, Five-dial cluster, Three-state verdicts, Behind the Curtain, Suggested-tone cues, Chat history + search, Cost transparency, Cross-platform, Open source AGPL-3.0, and Flavour architecture. Each card carries a custom SVG icon paired with a WebP fallback (rendered via picture/srcset), a title, and a two-to-three-sentence description. The same Features section now also opens the GitHub repository README at koherarchitecture/sensorium, mirrored exactly so visitors landing on either surface get the same overview. Twelve icons were drawn in the page's existing typographic-diagrammatic house dialect — letterform glyphs, mono captions, terracotta-for-active, three-state ●◐○ symbols — to keep the set coherent with the page's existing inline diagrams (the five-axes reading and the Q-R-L architecture figure).
Why. Two visual-review passes before deploy: first pass flagged four icons (local-first / bring-your-own-model / chat-history / cross-platform) as generic-line-art pictograms that read as default SaaS clichés rather than the page's house dialect; second pass cleared after those four were rewritten — boundary-box + DATA cell for local-first, vertical model-label stack with highlighted row for BYOM, timestamped rows for history, Fraunces M/L letterforms with mono captions for cross-platform. Stroke weights normalised across the set (primary outlines 1.5; secondary lines 0.6-0.8). Accessibility pass: aria-hidden on the decorative icons, alt-empty since the visible feature-title carries the screen-reader label, explicit width/height to prevent layout shift. Why now: the page previously had two inline diagrams but no scannable feature overview; visitors arriving from a search engine had to read the lede + the architecture spec before they could tell what Sensorium does in concrete terms. The new section answers that in one screen.
2026-05-21
Sensorium v0.1.3 released — suggested-tone cues + three calibration-load fixes
v0.1.3
A new row of system-selected coaching cues appears above the chat composer after the first calibration — up to three small bronze pills (e.g. Push harder / Stay flat / Disagree firmly / Demand specifics / Withdraw investment) drawn from how the model has been behaving on the recent fingerprint. The cues are read-only; the system selects them based on the fingerprint's folds ratio and dial averages (hedge, affirm, concession, capitulation), and you read them as coaching for your next message. When no triggers fire the row stays hidden — silence is itself a signal. Alongside the feature, three load-path fixes resolve a no-flavour-loaded error that prevented calibration from starting on fresh installs of v0.1.2 across all platforms: the startup flavour loader now runs inside Tauri's .setup() callback with real resource paths instead of relying on a compile-time fallback that silently succeeded on build machines; both flavour::load_flavour and ensure_flavour_in_user_data now look at the _up_/flavours/ path Tauri's bundler produces for ../-relative resources; the flatpak manifest now explicitly copies the bundled /usr/lib/sensorium tree into /app/lib/sensorium (the manifest was previously extracting the .deb but never copying the lib tree, so flatpaks shipped without any bundled resources at all). A small UI fix: the three install-flavour buttons in Settings (From URL, From file, Browse registry) now display an inline notice instead of failing silently. Six artefacts attached to the GitHub release: macOS aarch64 + x64 DMGs, Linux amd64 + arm64 .debs, Linux amd64 + arm64 .flatpaks.
Why. The originally-planned 5 June 2026 v0.1.3 substance was suggested-tone icons; that work was pulled forward into this release alongside the calibration-load fixes after the bug surfaced on shipped v0.1.2. Initial version stamp 0.1.2.1 was rejected by Tauri's and Cargo's SemVer parsers (four-dot strings are invalid); promoted to 0.1.3 and the icons feature folded in. Bug lineage traces to v0.1.0 via two compounding masking mechanisms — compile-time-manifest fallback inside flavour::load_flavour silently succeeded on build machines because env!(CARGO_MANIFEST_DIR) resolved to a path that existed on disk, and the flatpak manifest never copied the bundled lib tree in any version. Both were invisible to same-host smoke tests; the bug surfaced only on user-machine installs. Verified by sandboxed flatpak smoke tests on amd64 (x86_64 Linux dev box) and arm64 (Apple Silicon Parallels VM) — both emitted the success signal 'setup: loaded flavour sycophancy v0.1'. Mac DMGs verified by code-path transitivity. Upcoming section on koher.app/tools/sensorium now begins at v0.1.4 (substance open from the buffer).
2026-05-18
Sensorium v0.1.2 released — chat history + search, arm64 flatpak parity, UI polish
v0.1.2
Conversations now persist across launches; a sidebar lists prior conversations and a search input runs across both their titles and contents. Each exchange records the flavour and the model used at the time, so a conversation reads back with its original context intact even if you have since switched models. arm64 .flatpak now builds alongside amd64, closing the matrix gap noted in the v0.1.1 release. Six artefacts attached to the GitHub release: macOS aarch64 + x64 DMGs, Linux amd64 + arm64 .debs, Linux amd64 + arm64 .flatpaks. The Upcoming section on koher.app/tools/sensorium now begins at v0.1.3 (suggested-tone icons, 5 June 2026).
Why. Why: chat history was the most-asked feature after the v0.1.0/v0.1.1 ship; the arm64 flatpak parity was promised in the v0.1.1 release notes. Cadence: the two-week desktop-release floor would have placed v0.1.2 at 23 May; user override on 11 May 2026 compressed the window to 17 May onwards. The polish set (flatter assistant headings, quieter bullets, thinking indicator, opaque first paint, deferred-keychain probe) rode along.
2026-05-15
Position published: The Boundary and the Loop
Combines the two-part mentee framework (the What/Why/How boundary and the doing-changes-knowing loop) into one canonical Koher position. Sits underneath Learning by Negotiation as the framework the negotiation enacts, and underneath The Envelope of the Prompt as the pedagogical translation of SDC.
2026-05-09
Sensorium roadmap revised — chat history + search rolled into v0.1.2
v0.1.2 (target 22 May 2026) now bundles chat history + search alongside arm64 flatpak parity, instead of carrying only the arm64 flatpak fix. Subsequent versions slide up: v0.1.3 takes suggested-tone icons, v0.1.4 takes Windows packaging, v0.1.5 takes auto-update plumbing. The cadence ceiling is unchanged (every two weeks); the per-release substance increases. The Upcoming section on koher.app/tools/sensorium reflects the new schedule.
2026-05-09
Sensorium v0.1.1 hotfix released; tools/sensorium gains Upcoming roadmap section
v0.1.0 shipped 7-8 May with three frontend bugs (raw markdown in replies, model-name label overlapping the message body, input not clearing on Send) plus a missing + NEW CHAT control. The bugs degraded the substrate the probes operate on, so this hotfix overrode the standard two-week desktop release floor. v0.1.1 fixes all four. The koher.app/tools/sensorium page now also surfaces the next five planned releases (v0.1.2 to v0.1.6, dated through mid-July) so visitors can see the cadence and decide what is worth waiting for.
8 May 2026
Email gate retired — Cloudflare Turnstile + anonymous cookie replaces it
All three hosted demos (Coherence Diagnostic, Play Shape Diagnostic, Fragment Mapper) now use Cloudflare Turnstile (invisible bot check) plus an anonymous user_id cookie minted on first visit, instead of the email-verification gate that was empirically losing users to spam folders. No account, no email, no verification link — open the page, the panel renders, you get 10 analyses per day per browser. Quota resets at midnight IST. Sensorium (desktop app, not gated) was unaffected. The legacy email-keyed users table is preserved as a read-only archive. Site copy on / and /about updated to match.
Why. Why: verification emails from hello@koher.app were classified as spam by Gmail at low send volumes. Telling users to check spam folders did not recover them. Why anonymous-cookie + Turnstile: zero PII collection by default; 10/day quota becomes per-browser-per-day; Turnstile (invisible mode) handles bot protection without user friction. Voluntary post-use email submission still available for those who want updates.
30 April 2026
Privacy Policy and Terms — DPDP / IT Rules compliance pass
Indian-law compliance pass on the legal pages: added Grievance Officer (Prayas, with 24h ack / 15-day resolution / 36h takedown commitments per IT (Intermediary Guidelines) Rules 2021); aligned children threshold to 18 with verifiable parental consent per DPDP Act 2023 §9; added personal-data-breach notification clause (72 hours, Data Protection Board) per DPDP §8(6); adopted Data Fiduciary / Data Principal terminology; added purpose-limitation and consent-withdrawal sections; clarified that liability cap does not apply to gross negligence, fraud, or statutory rights under Indian Contract Act, Consumer Protection Act 2019, and DPDP Act. Lawyer review still pending — these are minimum compliance edits, not a substitute for one.
30 April 2026
Privacy Policy and Terms of Service published
Two new templated pages at /privacy and /terms, with their own legal-document layout distinct from position articles. Footer updated to link both. Required so external integrations (Meta Graph API, future partners) can point to canonical policy URLs. Content reflects actual data flows: tool submissions, Anthropic API, Cloudflare Turnstile, Razorpay, self-hosted analytics. Prayas Abhinav as individual data controller; no legal entity claimed; Indian law governs.
30 April 2026
Privacy Policy and Terms of Service published
Added privacy and terms pages at /position-privacy and /position-terms. Required for Meta Graph API app approval and for any future external integration that asks where the policies live. Content reflects actual data flows: tool submissions, Anthropic API, Cloudflare Turnstile, Razorpay, self-hosted analytics. No legal entity asserted; Prayas Abhinav as individual data controller; Indian law governs.
2026-04-12
New note: Manufactured Confidence
Published practitioner piece on AI sycophancy and the three-layer architecture. Names the architectural diagnosis behind the Iran war AI planning failures — the same collapse of qualification, judgement, and narration into a single probabilistic layer that Koher separates by design.
2026-04-11
Footer: remove redundant koher.app link, tighten spacing
Removed the koher.app link from the footer — the logo in the nav already points to home, so the footer self-link was redundant and read as either self-reference or as a URL rather than a navigation link. Footer now starts with Voice directly. Also reduced footer padding (40px 24px 60px to 20px 24px 28px) and font size (14px to 13px) so the footer no longer occupies more space than it needs.
2026-04-11
About page: reframe money vs stories as both/and
The About page previously read "What Koher seeks is interesting use-cases and stories. Not money. Not scale." This was factually wrong — Koher does seek money. Grants, patrons, institutional support all matter, and the tools cost real rupees to run. The old framing collapsed into a false binary. Reframed as both/and: Koher seeks money too, and it also seeks the harder-to-find thing — interesting use-cases and stories from actual users. Heading changed from "Stories matter more than donations" to "Stories matter as much as donations". Closing CTA now invites both stories and support.
2026-04-11
Licensing made explicit: new position article on the MIT/AGPL split
Renee Ridgway flagged that the licensing model was not explained adequately on the site. Fixed across the whole stack: (1) New dedicated position article at /position-open-source-and-licensing explaining why three tools are under MIT, why every tool after 5 April 2026 is under AGPL-3.0, who is affected, and why the split exists. (2) Updated the two outdated foundational position articles (architecture, being-around) to mention the AGPL split. (3) Added bracketed corrections noting that there is no consultancy any more — the practice pivoted out of consultancy in February 2026. (4) Expanded the about page bullet into a full paragraph naming the tools and the rationale. (5) Replaced vague AGPL marketing text on homepage and voice page with the explicit MIT-then-AGPL phrasing. (6) Replaced the LICENSE-TEMPLATE in tools-release/ with the AGPL-3.0 text so any new tool defaults to AGPL. (7) Updated tools-release/CLAUDE.md, RELEASE-PROCESS.md, RELEASE-CRITERIA.md to specify AGPL for new releases.
2026-04-11
Full British English sweep
Broad sweep converting American to British spellings across the entire Koher project (excluding already-submitted grants and external research materials). Covers judgment to judgement, behavior to behaviour, organize to organise, realise to realise, analyse to analyse, emphasise to emphasise, recognise to recognise, favour to favour, honour to honour, catalogue to catalogue, defence to defence, offence to offence. Per user-level rule: nothing public should be American; henceforth only British. Canonical core docs, CLAUDE.md, the FICA proposal and portfolio, the entire website, memory files, tool specs, and all actively maintained content updated. Already-submitted grant PDFs (IFA Explorations submitted 8 April) retain the earlier spelling as immutable historical records. Website rebuilt and redeployed.
2026-04-11
British English: judgement (not judgment)
Reversed an earlier American-spelling choice. Per the user-level convention that all writing is in British English, the canonical Koher tagline is now AI handles language. Code handles judgement. The canonical claim language and judgement are two different domains uses the same British spelling. Updated across all canonical core docs, the project instructions, the FICA grant proposal and portfolio, the website (homepage and all position articles), and the persistent memory layer. The website was rebuilt and redeployed. Already-submitted grant PDFs (IFA Explorations) cannot be retroactively changed and remain on record with the American spelling.
2026-04-11
Canonical claim unified across core docs
Promoted the cross-domain claim (language and judgment are two different domains) to canonical status across all Koher core documents. Updated architecture-spec.md to lead with the claim as the foundational ontological move, position-statement.md to frame the three-layer pattern as following directly from it, ten-year-ethic.md to state the claim before the architecture table, tool-strategy.md to reference it as required context, interests.md to note that the external cross-domain range and the internal architectural separation are the same claim at different scales, and core-docs.md to mark the claim as the thread through every document. Fixed spelling inconsistency: the homepage section now uses judgment (American) to match the established Koher brand tagline.
2026-04-11
The Claim — Two Domains
Added a new section to the homepage making the cross-domain claim explicit: language and judgement are two different domains and require different treatments. Language is probabilistic, judgement is deterministic. The architecture separates them because they are not the same kind of thing. The impression conveyed by the site is now this — that the cross-domain character of Koher is not only external (tech/art/philosophy/design) but internal, at the smallest scale of the architecture itself.
2026-04-05
Licensing updated to AGPL-3.0 for future tools
Existing tools (Coherence Diagnostic, Play Shape Diagnostic, Fragment Mapper) remain MIT-licensed. All future tools and new releases are AGPL-3.0 — ensuring derivative work, including network use, stays open. Updated across tools page, about page, homepage, and voice cloud. OTF concept note updated to reflect dual licensing and clarify Claude Code collaboration as tool dependency, not organisational dependency.
31 March 2026
New position statement: Knowing Why
New page
Added Knowing Why — a position on the difference between better output and visible judgement. The industry is racing to make AI output better through multi-model orchestration (GitHub ensembles since 2024, Perplexity Model Council, Microsoft Critique and Council). Koher asks a different question: can you see the judgement that produced the output? Includes three diagrams (SVG + WebP) comparing orchestration and architectural separation. Listed on positions page and index (replacing Parameterisation Gap in the top 3).
30 March 2026
Navigation streamlined, secondary links moved to footer
Site-wide
Removed Voice, Reading, and Venue from the top navigation across all 16 pages. The nav now shows only four items: Tools, Positions, Notes, About. Voice, Reading, and Venue are now in the footer alongside Values and Changelog. This reduces cognitive load in the nav bar while keeping all pages accessible.
Vision page added
New page
Added vision.html — a long-form statement of what space Koher occupies, what it represents, and what it builds toward. Content converted from vision.md. Covers the position between AI enthusiasm and refusal, the architecture as proof, encodable judgement, the "do more with less" philosophy, the full range of domains, the ten-year timeframe, and what success looks like. Not a top-level nav item; linked from the footer.
29 March 2026
Fragment Mapper added to tools page and released on GitHub
Tool release
Fragment Mapper is now listed on the tools page and published as an open-source repository at koherarchitecture/fragment-mapper. This is the third Koher tool to be released.
The release includes frontend fixes from first-encounter usability testing by Dhyeya Pandya: the narrative now appears before the map (reading the narrative first makes the map comprehensible — the reverse does not work), the legend sits above the canvas rather than below it, the fragment list with inline tags is promoted as a primary display, the map animation is settle-then-still with hover highlighting, pipeline labels use plain language, and line types are more visually distinct.
28 March 2026
Added funding.json manifest
Infrastructure
Machine-readable funding declaration following the fundingjson.org spec. Hosted at /funding.json. Lists all three Koher tools, funding channels, and financial history. Also added to the Coherence Diagnostic and Play Shape Diagnostic GitHub repositories.
22 March 2026
Simplified Voice section on index page
Design
Removed the h2 heading, description paragraph, and multi-statement preview from the Voice section. Replaced with a single random statement that changes on each page load, drawn from the full set of 29. The previous version stacked too many text elements — heading, count, description, three preview statements — creating visual clutter.
21 March 2026
New position: The Envelope of the Prompt
Position statement
Published new position statement on why prompts have a ceiling and why the interesting work begins beyond it. Argues that a prompt is a request, not a mechanism — and that the Koher architecture is a direct response to this categorical distinction. Covers the four moves beyond the prompt: architectural, infrastructure, process, and memory.
Added to /positions as newest entry. Replaces ChatGPT Problem card on index.html (max 3 positions on landing page).
Inline SVG diagrams added to position statements
Content
Added 3 inline SVG diagrams to The Envelope of the Prompt: request vs mechanism comparison, four moves beyond the envelope, and the three-layer architecture with "no prompt" emphasis on the Rules layer.
Added 4 inline SVG diagrams to Being Around: the exit ramp cycle, scaling vs staying trajectories, accrual of significance over time, and the body of work grid. Brings Being Around in line with the visual density of newer position statements.
19 March 2026
Voice page
New page
Added /voice — 25 full-screen bold statements positioning Koher. No nav, no footer, scroll-snap between screens. Fraunces 900 on dark ground. Statements drawn from actual architecture, economics, and practice.
Voice added to site navigation
Navigation
Added Voice link to nav across all 12 pages, placed between Notes and About.
Voice highlight box on index
Landing page
Added Voice section to index.html between Venue and About — preview panel showing three sample statements in voice page typography, linking to /voice.
16 March 2026
Balance top-up and index update
Infrastructure
Added ₹1,000 personal contribution to restore Coherence Diagnostic funding after balance hit zero. Updated static balance display on index page to reflect current state.
Hosted demos pause when balance reaches zero. This top-up restores service for approximately 2 weeks of student usage.
Updated
index.html
Updated static balance display from ₹4,200 to ₹1,000 and runway from ~7 weeks to ~2 weeks.
Updated
balance.json
Updated balance to ₹1,000, runway to 2 weeks, status to "low".
12 March 2026
New Position: The Hallucination Proof
Position statement
Published a new position statement analysing the OpenAI/Georgia Tech paper "Why Language Models Hallucinate" (Kalai et al., 2025) and its implications for AI tool design. The paper proves mathematically that hallucination is inevitable — not a bug, but a property of density estimation. This position explains what this means for Koher's architecture.
The claim that "AI hallucination is inevitable" often gets used either sensationally or dismissively. This position statement makes the proof accessible, explains why it matters (and what it doesn't mean), and articulates why Koher's three-layer architecture — qualification, rules, language — is specifically designed to address this inevitability. If hallucination cannot be eliminated, the architectural question becomes: where does it matter?
Added
position-hallucination-proof.html
New position statement with three custom SVG graphics: the mathematical inevitability equation, the benchmark problem (9/10 benchmarks penalise honesty), and the architectural response (typical approach vs Koher's separation of concerns).
Added
img/hallucination-inevitable.svg
SVG visualising the core mathematical proof: generative error rate ≥ 2 × classification error rate.
Added
img/benchmark-problem.svg
Table SVG showing that 9/10 major benchmarks use binary scoring with no credit for "I don't know" — incentivising confident guessing over honest uncertainty.
Added
img/koher-response.svg
Architecture comparison SVG: typical "AI judges" approach vs Koher's three-layer separation where hallucination in narration is harmless because judgement lives in deterministic code.
Changed
positions.html
Added "The Hallucination Proof" as the newest position at the top of the grid.
Changed
index.html
Updated positions section to show the three newest positions, replacing "Being Around" with "The Hallucination Proof".
11 March 2026
"What Koher Seeks" — Making the Ask Explicit
New content
Added explicit "What Koher Seeks" sections to index.html and about.html, clarifying what Koher asks from users: interesting use-cases and stories, plus engaged ongoing support (not just one-off donations).
People tell me they can't understand what Koher wants. Everything is free, open source, no login required — so what's the exchange? The answer: stories of interesting use sustain the practice. And if you want to support financially, recurring small amounts matter more than one-off donations, because infrastructure costs month after month.
Changed
index.html
New "What Koher Seeks" section after hero, before tools. Explains: stories of use are the return; engaged ongoing support preferred over one-off donations; contact hello@koher.app to share stories.
Changed
about.html
New "What Koher seeks" section at the end of the page, before footer. Same messaging with an info-card highlighting the preference for ongoing support.
10 March 2026
New Page: Reading List
New content
Curated reading list of 25 freely accessible papers, essays, tutorials, and projects across six categories that inform the Koher architecture. Each category has a distinctive inline SVG illustration and readings are presented as scannable cards with type badges, author attribution, and source labels.
Koher's architecture draws from specific research traditions — interpretable ML, transformer mechanics, neuro-symbolic systems, design pedagogy, human-AI collaboration, and AI ethics in education. Making these sources visible and navigable builds intellectual credibility and serves students exploring the same questions.
Added
reading-list.html
Full reading list page with six category sections, each with an abstract SVG illustration. 25 reading cards with external links, type badges, and source labels. Alphabetical index at bottom with jump links. Light background page consistent with positions.html and about.html. Navigation includes "Reading" link.
9 March 2026
New Position: The Parameterisation Gap
New content
Fourth position statement published. Argues that AI will always need an adapter between what it computes and what humans live — not because AI is limited, but because human experience exceeds what can be parameterised. The form of the adapter (currently dimensions and thresholds) will change. The need for it will not.
Emerged from a self-correction caught in voice notes: the initial "training wheels" framing (Koher is temporary) gave way to the deeper position (the gap is permanent). The piece includes four inline diagrams illustrating the self-correction, the stream metaphor, dual-language qualification, and the horizon.
Added
position-parameterisation-gap.html
Full position statement with four inline SVG diagrams. Hero image at post-parameterisation-gap.svg/.webp.
Updated
positions.html — New card
Added Parameterisation Gap card at top (newest first). Includes SVG thumbnail with parameterisable/gap/lived visual.
Updated
index.html — Positions section
Added Parameterisation Gap card at top of positions list on landing page.
8 March 2026
The First Cyborg — AI Co-authorship Declaration
Philosophy update
Koher was co-created with Claude Code. This has been true since the beginning. Today we made it explicit everywhere. The architecture isn't theory — it's autobiography. I said what and why. Claude Code offered how.
Hiding the collaboration felt dishonest. Let those who want to ridicule, ridicule. This is, as far as we know, the first public case of explicit AI co-authorship.
Updated
index.html — Hero byline
Before
Built by Prayas Abhinav
After
Co-created by Prayas Abhinav + Claude Code
Updated
index.html — About section
"A teacher making tools" → "The first cyborg." Full rewrite explaining the division of labour: human handles judgement, AI handles synthesis. The architecture is autobiography.
Updated
index.html — Footer attribution
"Designed and built by Prayas Abhinav" → "Co-created by Prayas Abhinav + Claude Code"
Updated
index.html — Meta description and structured data
Meta description now references co-creation. Structured data author field updated to include both Prayas Abhinav (Person) and Claude Code (SoftwareApplication).
Updated
about.html — "Who makes this" section
Complete rewrite. Now opens with "Koher was co-created with Claude Code" and explains the cyborg framing: "I'm not an engineer. I couldn't have built this without AI. But Claude Code couldn't have built it without me either."
Updated
about.html — Footer and meta
Footer attribution and meta description updated to reflect co-creation.
Outreach Communication Alignment
Copy refinement
Updated index.html to align with outreach communication guidelines. Four principles addressed: child of AI (not critic), extension (not correction), ambition is the pattern, and start from their pursuit.
Koher is built with AI, by someone who uses AI constantly. The question is where judgement needs to be inspectable, not whether AI can be trusted.
Updated
index.html — "What This Means" heading
Before
"Language and judgement are different tasks. Separating them makes judgement inspectable."
After
"You want AI feedback you can actually learn from — not just receive."
Opens with the reader's pursuit, not the architecture.
Added
index.html — Approach section
"The architecture is the contribution. The tools are demonstrations. Every AI tool that makes judgements could work this way."
Frames the pattern as the ambition, not the specific tools.
Updated
index.html — Removed anti-AI language
"Most AI tools conflate them" → removed. "answers you can't trust" → "When AI gives you a verdict, can you see why?"
Cyborg Framing Sharpened
Copy refinement
Clarified the cyborg framing: Koher is the cyborg — the human-AI co-creation — not Prayas. The previous framing ("The first cyborg.") was ambiguous about who or what was the cyborg.
The distinction matters. Prayas is human. Koher is the cyborg — neither human nor AI, but both. The tools themselves are the hybrid creation.
Changed
index.html — About section heading
Before
"The first cyborg."
After
"A cyborg project."
Changed
index.html — About opening line
Before
"Koher was co-created with Claude Code."
After
"Koher is neither human nor AI — it's both."
Added
index.html + about.html — Explicit cyborg statement
Added "Koher is the cyborg." to the architecture-as-autobiography paragraph.
Changed
about.html — Section heading
Before
"Who makes this"
After
"A cyborg project"
GitHub Organisation Migration
Infrastructure
Migrated GitHub repos from koher-architecture to koherarchitecture (no hyphen). Updated all source links across the website.
Updated
index.html — GitHub source links
Coherence Diagnostic and Play Shape Diagnostic links now point to koherarchitecture organisation.
Updated
tools.html — GitHub source links
Both tool cards updated to new org URL.
Updated
changelog.html — Historical references
Updated org name in 6 March 2026 entries to reflect current state.
1 March 2026
Cadence Change: Monthly → Quarterly
Philosophy update
Changed tool release cadence from "one tool per month" to "one tool every three months" across all pages. This reflects the reality that tools require assumption grounding through 4–8 weekly conversations with students before development begins.
Updated
index.html — About section cadence
"One tool per month" → "One tool every three months"
Updated
about.html — Practice description
"Koher is a ten-year practice. One tool per month." → "One tool every three months."
Updated
tools.html — Meta descriptions and subtitle
"Released monthly" → "Released quarterly" in meta tags. Page subtitle updated to "One tool every three months."
Updated
position-being-around.html — Two instances
"One tool per month" → "One tool every three months." Also updated "If a month passes" → "If a quarter passes."
The "Being Around" position explicitly grounds the practice in cadence. The quarterly rhythm allows proper assumption grounding — one conversation per week, alternating new students and mentored students. Building on ungrounded assumptions wastes more time than grounding them first.
26 February 2026
Notes Section Launch
New feature
Launched the Notes section — a blog for short-form writing, updates, and announcements. API-driven with WebP hero images.
Added
notes.html — Short-form writing and updates
A blog section with hero images, individual post headers, and client-side routing. First post: "Notes is now live".
Koher needed a space for timely updates that don't fit the static position pages or tool documentation. Notes fills this gap.
Updated
Navigation includes Notes across all pages
Added Notes link to nav on: index, about, tools, positions, position-architecture, position-being-around, position-chatgpt-problem, changelog.
Removed
"The Question" section from homepage
Removed redundant section ("You know when your work holds together..."). This content is already captured in the About section. Cleaner flow: Tools → What This Means.
New About Page
New page
Created a dedicated About page focused on students and self-learners. Updated navigation across all pages to link to the new about.html instead of an in-page anchor.
Added
about.html — For students. For self-learners.
A dedicated page explaining who Koher is for and why the tools are free for students. Grounded in the experience of learning without a guide.
The previous About section was embedded in index.html. A dedicated page creates space for the self-learner focus — acknowledging that the tools are built by someone who was self-taught for 15 years before becoming a teacher.
Updated
Navigation standardised across all pages
All pages now link to about.html in nav. Position pages previously had inconsistent nav (Application Areas, Consultancy) — now standardised to: Tools, Positions, Venue, About.
24 February 2026
Architecture Specification Updates
Philosophy refinement
Updated the Architecture Specification to reflect lessons from recent tool development — qualification can be human-driven, not just AI-driven, and category systems vary by domain.
Expanded
Qualification layer: Human, AI, or Hybrid
Before
Qualification: "AI reads language patterns, transforms unstructured input into structured signals"
After
Qualification: "Humans or AI extract what is present"
The Coherence Diagnostic uses AI classification (DeBERTa) for qualification. Other tools may use human selection — users choose options from a grid. Both are valid qualification approaches. The architecture now explicitly accommodates both, plus hybrid approaches that combine human and AI qualification.
Added
Human Selection approach in qualification table
Added a "Human Selection" row to the qualification approaches table: "When to use: Users have domain knowledge to identify signals directly. Example: User selects play qualities that describe their game's emotional shape."
The original table listed AI-centric approaches (pattern matching, semantic classification, NER). Human selection is equally valid — sometimes the user is the best signal extractor.
Renamed
"The Three-State Innovation" → "Domain-Meaningful Categories"
Before
Single example: Solid / Worth Examining / Attention Needed (confidence-based)
After
Multiple examples: Confidence-based (Solid/Worth Examining/Attention Needed), Relationship-based (Synergy/Neutral/Tension), plus Severity-based and Completeness-based examples
The Coherence Diagnostic uses confidence-based categories. Other tools may use relationship-based categories (Synergy/Neutral/Tension for how elements interact). Both are valid. The architecture now shows category systems as domain-specific, not prescriptive.
These changes align the architecture specification with what recent tool development has demonstrated: human selection can replace AI classification, and relationship-based categories work alongside confidence-based ones. The spec now reflects this flexibility.
22 February 2026
Enhanced data privacy clarification
Transparency
Expanded data use disclosure to explicitly state: no human reads submissions, data is never sold or shared. The previous wording mentioned "no commercial use" but didn't address human access or sharing explicitly.
Students and practitioners should know exactly what happens to their submissions. "No commercial use" could still imply humans review data for quality. The clarification makes it unambiguous: logged data is used only for model training, never seen by humans, never sold, never shared.
Added ChatGPT Problem position to index and positions page
Content
The position statement "When Students Trust ChatGPT More Than Teachers" was created but not linked. Now added to both index.html and positions.html. Index shows latest 3 positions only — older positions remain on positions.html.
Philosophical Reframe
Major restructure
Koher shifts from a consultancy seeking institutional clients to a teacher making free tools for students. The entire commercial framing is removed. A transparent, community-funded model replaces it.
Reframed
From consultancy to practice
Before
A consultancy seeking institutional clients, listing aspirational domains, displaying credentials
After
A teacher making free tools for students and practitioners, transparently funded by community pay-it-forward
The consultancy framing created exit ramps: "If institutions don't buy, if revenue doesn't arrive, if recognition doesn't come — leave." The new framing has no exit conditions. The practice continues regardless of funding. Open source is the core; hosted demos are community-funded convenience.
Rewritten
Hero tagline and CTAs
Before
"Working tools built on a simple separation..."
CTAs: See the tools / How it works / hello@koher.app
After
"Small tools that help you see your own work clearly. Free for students. Open source."
CTAs: Try the tools / Support the practice / Built by Prayas Abhinav
Removed
Commercial and credential sections
- Where This Applies — domain grid (Legal, Education, Finance, etc.) listing aspirational claims without demonstration
- Ways to Work Together — consultancy tiers from ₹5,000 to ₹1,50,000/month
- Boundaries — "What the Koher consultancy doesn't do"
- Track Record — credentials display ("15+ years...", "50M+ annual viewers...")
Domain claims without tools are empty promises. Consultancy pricing creates revenue expectations. Credentials are resume-padding. A teacher making tools needs none of these.
Added
About section
Personal voice replacing institutional framing: "I teach design at Anant National University. For fifteen years I've watched students struggle to see whether their concepts hold together..." The section establishes Koher as one teacher's practice, not a company.
Added
Support section with transparent balance sheet
A public balance sheet showing: monthly costs (API ₹1,800 + Hosting ₹600), current balance, runway in weeks. The "Pay it forward" model — working practitioners extend access for students who can't pay. When balance hits zero, hosted demos pause; open source continues.
Hidden costs create exit ramps. Transparent costs create shared ownership. The balance sheet updates automatically with API usage. Anyone can see how their contribution extends access.
Deleted
Consultancy files
- consultancy.html — redirect page
- consultancy-og2.png — OG image
- consultancy-og2.svg — source file
- linkedin-service-text.txt — consultancy copy
Changed
Site navigation
Before
Tools · Positions · Venue · Application Areas · Consultancy
After
Tools · Positions · Venue · About · Support
Navigation updated across all pages: homepage, tools, positions, position articles, and changelog.
The test for every element: does this create an exit ramp? Consultancy pricing, domain claims, credentials, institutional deployment — all created conditions for leaving. The reframe removes them. The practice continues regardless of funding, recognition, or adoption. Open source is the core. Hosted demos are convenience.
Concept Logging for Model Improvement
Data transparency
Submitted concepts are now logged solely to improve model accuracy. No human reads your submissions — data is never sold, shared, or used commercially. With no commercial model, the training data becomes the value — better data means better tools for students.
Added
Concept submission logging
The hosted demo now logs: submitted concept text, evaluation scores, and timestamp. Data stored in SQLite alongside cost tracking. Used solely for model improvement.
The DeBERTa model was trained on synthetic data. Real student submissions reveal patterns synthetic data missed — edge cases, phrasing variations, domain-specific concepts. Logging enables periodic retraining with real-world examples.
Added
Data use disclosure on website
The Support section now includes a data transparency note: "Concepts submitted to hosted demos are logged solely to improve model accuracy. No human reads your submissions. Data is never sold, shared, or used commercially — training data only. Self-hosted versions log nothing."
Transparency about data use is part of the practice. Users should know their submissions contribute to model improvement, that no human ever sees what they submit, that data is never sold or shared, and that self-hosting avoids logging entirely.
Live Balance Sheet
Support section enhancement
The Support section's balance sheet now fetches live data from the tools-demo API rather than displaying static values.
Added
Live balance fetch from coherence-demo.koher.app
On page load, the Support section now calls the /balance endpoint at https://coherence-demo.koher.app to retrieve current balance and runway values. The balance display updates with live data; colour changes based on status (green for healthy, amber for low, red for critical/paused).
The balance sheet exists for transparency — showing how contributions sustain the hosted demos. Static values would become stale. Live data from the actual cost tracking system ensures the displayed balance reflects reality.
Added
Graceful fallback
If the API is unreachable or returns an error, the static values remain visible. No error messages shown to visitors — the balance sheet simply displays the default values.
The API lives on separate infrastructure (coherence-demo.koher.app). If that service is down, the main website should still render completely. Silent fallback prevents cascading failures.
Payment Button Disabled
Temporary change
The Buy Me a Coffee payment button has been temporarily disabled while evaluating Razorpay as an alternative payment processor.
Disabled
Buy Me a Coffee button
The "Pay it forward" button in the Support section is commented out. The balance sheet and transparency messaging remain visible.
Razorpay offers better integration for Indian users (UPI, Indian cards) and lower transaction fees. Decision pending on which payment processor to use.
21 February 2026
Third Position Statement
Content addition
A new position statement published: "The ChatGPT Problem" — articulating why AI feedback feels hollow and how the Koher architecture addresses this by separating language ability from judgement.
Published
The ChatGPT Problem (/position-chatgpt-problem)
A position statement on the fundamental error people make with AI tools: conflating language ability with judgement ability. The piece explains why ChatGPT feedback varies every time, why there are no consistent criteria, and how the three-layer architecture (qualification → rules → language) addresses this by using AI for what it does well while encoding judgement in deterministic code.
The Architecture Specification explains what the three-layer pattern is. "Being Around" explains the temporal commitment. This piece explains the problem — the core issue that makes separation necessary. It draws from real user feedback (Akash meeting, 20 February) describing the moment of recognition: "this is a very good separation of code and the language" and "holding the model accountable."
20 February 2026
Database Path Alignment
Infrastructure fix
Aligned the SQLite database path with the Docker volume mount point. The Dockerfile created /app/data for persistence, but the code defaulted to /app/analytics/.
Fixed
Database path resolution
Before
Default: ./analytics/koher-analytics.db (inside container: /app/analytics/)
After
Production: /app/data/koher-analytics.db | Development: ./analytics/
The Dockerfile created /app/data as the intended volume mount point, but the database code ignored it. Analytics data would be lost on container restart unless operators manually set DB_PATH. Now production deployments automatically use the prepared directory.
Added
NODE_ENV=production in Dockerfile
The Dockerfile now sets NODE_ENV=production so the database path logic triggers automatically without requiring environment variable configuration.
19 February 2026
Koher Venue Launched
New subdomain
Launched venue.koher.app — quarterly interactive art experiences exploring AI judgement. Season 1 "You Are The Model" opens: visitors judge design concepts under time pressure with partial information, then compare their patterns to an AI's.
Added
Venue section on homepage
New "The Venue" section after Positions, introducing the art practice alongside the tools and philosophy. Links to venue.koher.app.
Added
Venue link in footer
Footer navigation now includes Changelog · Positions · Venue.
Venue embodies the Koher philosophy rather than explaining it. Where tools demonstrate the architecture technically, venue lets visitors feel what judgement under constraint means experientially.
Analytics: All Time Filter
Enhancement + Bug fix
Added "All time" option to the time period selector in the analytics dashboard.
Added
All time range option
Dashboard time filter now includes: Last 24 hours, Last 7 days, Last 30 days, Last 90 days, and All time.
Fixed
Falsy zero bug in time range
The 'all' range returned 0 (no lower bound), but JavaScript's || operator treated 0 as falsy and defaulted to 7 days. Changed to in check so 0 is correctly returned for 'all'.
Enables viewing complete historical data from when analytics began, useful for overall trend analysis and total visitor counts.
18 February 2026
Analytics: UTM Medium Column
Bug fix
Added missing "Medium" column to UTM Campaigns table in analytics dashboard.
Fixed
UTM Campaigns table display
Before
Campaign | Source | Visits
After
Campaign | Source | Medium | Visits
The database query groups by utm_medium but the table wasn't displaying it — causing rows with identical campaign/source but different mediums to appear as duplicates with unexplained different counts.
18 February 2026
Homepage: Monthly Practice Framing
Copy and structure
Clarified that making Koher tools is a monthly practice. Updated homepage to reflect tools released so far rather than singular "the working tool."
Changed
Hero CTA button
Before
See the working tool
After
See the tools released so far
The singular "tool" implied a single demonstration. The practice is monthly releases — plural framing reflects the ongoing nature.
Added
Tools section heading and practice framing
The tools section now has "The Practice" label and heading "One tool per month. Open source. Running now." with introductory text: "Making tools is the practice. Each month, one small tool ships — demonstrating the architecture in a specific domain."
The previous version jumped straight to showing the tool without explaining the rhythm of the practice. The new framing establishes that monthly releases are the mechanism, not a one-time demonstration.
Changed
Tools page link
Before
More tools shipping monthly — see all tools
After
One tool per month — see all tools released so far
Changed
Demo access copy (homepage and tools page)
Before
Register with your email to try the hosted demo (10 analyses per account).
After
Verify your email to try it now — 10 free analyses, no account setup.
Reduced friction language. "Register" implies a process; "verify your email" describes exactly what happens. Added "free" and "no account setup" to remove hesitation.
18 February 2026
Coherence Diagnostic: Email-Verified Access Gate
Tool authentication
Added a lightweight email-verification gate to the Coherence Diagnostic. Replaces the previous open-access model with controlled signups and usage limits.
Added
Email verification flow
Users enter name and email to receive a verification link. Clicking the link sets a session cookie granting access to the tool. No passwords, no OAuth — just email verification.
The tool was completely open. Each analysis uses DeBERTa inference + OpenRouter API credits. Without any gate, costs are unbounded and there's no way to understand who is using the tool.
Added
Usage limits
10 new user signups per day (resets daily). 10 analyses per user (lifetime). A waitlist captures overflow when the daily cap is reached.
Caps cost exposure while keeping the tool accessible. The daily signup limit prevents sudden spikes; the per-user limit encourages thoughtful use rather than casual testing.
Added
Session-only cookies
Authentication uses signed session cookies (via itsdangerous). Cookies are deleted when the browser closes — no persistent login.
Session-only cookies are the lightest viable auth. Users re-verify each browser session, which is acceptable for a demo tool. No password storage, no token refresh logic.
Added
Analyses counter in header
A subtle "X analyses left" counter appears in the header after authentication. Updates after each analysis completes.
Changed
Landing screen
Removed "No login." from the landing meta text, since login is now required.
Admin Dashboard: Adapted for Email Auth
Tool admin
Adapted the admin dashboard from the released coherence-diagnostic version to work with the new email-verified user model.
Changed
Admin API endpoints
Replaced the single /api/admin/dashboard endpoint with separate endpoints matching the old admin pattern: /api/admin/login, /api/admin/stats, /api/admin/users, /api/admin/waitlist. Protected by X-Admin-Key header.
The old admin had a proven login-then-query flow. Separate endpoints are easier to debug and extend.
Changed
Admin UI
Users table now shows Name, Email, Status (verified/pending), Usage, and Joined date. Removed the "Create New User" section (users self-register now). Added a Waitlist section. Stats grid shows Total Users, Verified, Signups Today, Analyses, Exhausted, and Waitlist counts.
The admin no longer creates users — it monitors self-registered users and their verification status.
Website Copy: Updated for Email Verification
Copy change
Updated public-facing pages to reflect the new self-service email verification flow, replacing references to invitation-based access.
Changed
Tools page subtitle
Before
Hosted demos available by invitation — email hello@koher.app to request access.
After
Hosted demos require email verification — 10 analyses per account.
Access is now self-service. The old copy implied a manual gatekeeping step that no longer exists.
Changed
Homepage tool card access note
Before
Hosted demo by invitation — email hello@koher.app for access.
After
Register with your email to try the hosted demo (10 analyses per account).
18 February 2026
Homepage: proof before philosophy
Above-the-fold revision
Restructured the homepage so a visitor sees working tools within seconds, not after six sections of abstract positioning.
Changed
Hero section
Replaced "Koher is a philosophy..." tagline with "Working tools built on a simple separation..." and changed primary CTA from "Read Our Positions" to "Try the Coherence Diagnostic". Added pipeline indicator (DeBERTa / Rules / Haiku).
The hero was entirely abstract — philosophy, architecture, positions. Someone landing on the page had no signal that working tools existed. The new hero communicates "this is real, try it now" within the first screen.
Changed
Tool section moved to position 2
The Coherence Diagnostic card now appears immediately after the hero (first scroll), moved from position 7. Status changed from "Demo" to "Live".
The tool was buried behind six explanation sections. A visitor who came to see if this was real had to scroll through philosophy, problem framing, architecture diagrams, and practice statements before finding proof. Now proof is the first thing after the hero.
Removed
"The Practice" section
Removed the section containing "A body of thought, not a product" and "This is not a startup. This is a practice." headings.
These lines actively told visitors "this isn't a real thing." For someone trying to determine whether Koher produces working tools, this section was counterproductive. The practice philosophy lives in the position statements for those who seek it.
17 February 2026
SEO Infrastructure
Site-wide improvement
Comprehensive SEO optimisation across all pages. Added crawl infrastructure, structured data, and consistent meta tags for social sharing.
Added
robots.txt and sitemap.xml
Created robots.txt declaring the sitemap location, and sitemap.xml listing all six pages with update frequencies and priorities.
Search engines can discover pages through links, but explicit sitemap declaration helps them find all pages efficiently and understand update frequency. The robots.txt also serves as the canonical location for sitemap declaration.
Added
Canonical URLs on all pages
Every page now includes a <link rel="canonical"> tag pointing to the canonical URL without .html extension.
Without canonical URLs, search engines may index URLs with and without trailing slashes as separate pages, or index both /position-architecture and /position-architecture.html.
Added
Twitter Card tags on secondary pages
All pages (tools, positions, position-architecture, position-being-around, changelog) now include Twitter Card meta tags mirroring their Open Graph content.
Only index.html had Twitter Card tags. When other pages were shared on Twitter/X, they displayed without rich previews.
Added
JSON-LD structured data
Added Schema.org structured data: SoftwareApplication schema on the homepage, Article schema on position pages (position-architecture, position-being-around).
Structured data helps search engines understand what Koher is (a software application/philosophy) and that the position statements are articles with specific publication dates and authorship.
Fixed
og:url inconsistencies
Position pages had og:url values ending in .html while internal links used paths without the extension. Now aligned to canonical URLs without .html.
Added
Open Graph tags on changelog
The changelog page was missing all Open Graph tags. Now includes og:type, og:url, og:title, og:description, and og:image.
Deployment Script Fix
Infrastructure
Updated the CapRover deployment script to include SEO files.
Fixed
robots.txt and sitemap.xml now included in deployment
Added robots.txt and sitemap.xml to the INCLUDE_FILES array in make-caprover-tar.sh.
The deployment script used an explicit include-list. SEO files created earlier in the day were not being deployed to production because they were not added to this list.
Google Search Console Submission
SEO
Site deployed to production and submitted to Google Search Console.
Added
koher.app submitted to Google Search Console
Sitemap submitted at https://koher.app/sitemap.xml. All six pages now discoverable by Google's crawlers.
16 February 2026
Coherence Diagnostic: Logout Button
Tool fix
Added logout functionality to the Coherence Diagnostic demo. Previously, once authenticated, users remained logged in permanently with no way to clear the stored password.
Added
Logout link in header
A "Logout" link now appears in the header next to "All Tools" when the user is authenticated. Clicking it clears the stored password from localStorage and returns to the password modal.
The authentication system stored credentials in localStorage permanently with no mechanism to clear them. Users who wanted to test with a different password, or simply wanted to log out, had no way to do so without manually clearing browser storage.
Coherence Diagnostic: Usage Counter on Page Load
Tool fix
The usage counter ("X analyses remaining") now displays immediately on page load for authenticated users, rather than only appearing after completing an analysis.
Added
User status endpoint and initial fetch
Backend now exposes a /user/status endpoint that returns remaining analyses without consuming one. The frontend calls this endpoint on page load when a stored password exists.
Previously, the server tracked usage in SQLite but only returned the remaining count after completing an analysis. Users who logged in couldn't see how many analyses remained until they ran one. The admin panel showed correct counts (e.g., "2/10") but the frontend showed nothing until an analysis was performed.
Coherence Diagnostic: OpenRouter Migration
Infrastructure change
Stage 3 (language layer) now uses OpenRouter instead of the direct Anthropic API. The DeBERTa model downloads on first deploy rather than being bundled in the Docker image.
Changed
Anthropic API → OpenRouter
The Stage 3 language layer now calls Claude Haiku via OpenRouter (anthropic/claude-haiku-4.5) using the OpenAI SDK, rather than the direct Anthropic API. Environment variable changed from ANTHROPIC_API_KEY to OPENROUTER_API_KEY.
OpenRouter provides a unified API across multiple model providers. This allows future flexibility in model selection without code changes, and simplifies API key management for users who already have OpenRouter accounts.
Changed
First-deploy model download
The DeBERTa model (~750MB) now downloads automatically on first container start via entrypoint.sh, rather than being bundled in the Docker image. The model persists in a volume at /app/models.
Bundling the model in the Docker image made builds slow and images large. Downloading on first deploy keeps the image small (~200MB) while the model persists across container restarts. Subsequent deploys skip the download entirely.
15 February 2026
Second Position Statement
Content addition
A new position statement published to the Positions page: "Being Around" — on the philosophy of staying with practice rather than setting expectations that become exit ramps.
Published
Being Around (/position-being-around)
A position statement on staying with practice long enough for significance to accrue. The core insight: "It is more important to be around than to be big." The piece describes the mechanism by which over-investment creates exit ramps, and how Koher refuses that pattern through monthly shipping, open source, and metrics that invite continuation rather than justify departure.
The Architecture Specification explains what the three-layer pattern is. This piece explains how Koher intends to stay with the practice — the philosophy of compounding over scaling. Together, the two positions establish both the technical architecture and the temporal commitment.
Added
Position card on /positions
The Positions page now displays two cards: "Being Around" (15 February) and "Architecture Specification" (13 February), in reverse chronological order.
Updated
Homepage Positions section
The Positions section on the homepage now shows both position statements with dates: "Being Around" (15 Feb) and "Architecture Specification" (13 Feb). Previously showed only the Architecture Specification.
The homepage should surface recent positions, similar to how the Tools section shows recent tools. As more positions are published, the section will show the 3 most recent.
Unchanged
What stayed the same
- Tools page and Coherence Diagnostic
- Architecture Specification position statement
- Subscription tiers and pricing
- Visual design
Koher's philosophical foundation now has two pillars: what the architecture is (separation of language and judgement), and how the practice sustains itself (staying with the work regardless of external validation). The Positions page grows as the body of thought develops.
Institutional Deployment Tier
Service offering
A new service tier for universities and educational institutions that want to use existing Koher tools but lack technical capacity to self-deploy.
Added
Institutional Deployment — ₹15,000
One-time deployment service: scoping call, deployment to client infrastructure, branding and threshold configuration, handover documentation, training call, and 2 weeks post-deployment support. First 50 institutions at early adopter pricing.
The tools are open source and free, but "clone repo, install dependencies, configure API keys" excludes the natural audience — educators. This tier makes the tools accessible to those who recognise their value but lack technical capacity.
Structure
Tiered pricing
- First 50 institutions: ₹15,000 (early adopter)
- Institutions 51–150: ₹20,000
- After 150: ₹20,000 + ₹10,000/year support
- Additional customisation rounds: ₹5,000 each
- Annual support retainer (optional): ₹10,000/year
Volume-based pricing rewards early adopters and introduces recurring revenue at scale. Infrastructure and API costs borne by client — no margin compression.
Restructured
"Ways to Work Together" section
The consultancy section is renamed from "For Those Who Want Help" to "Ways to Work Together." Tiers split into two sub-sections: One-time (Single Session, Institutional Deployment) and Ongoing (Advisory, Architecture, Development). Architecture Map tier removed.
The new framing better describes the range of engagements — from a single call to full development — without implying that only "help" is available.
Removed
"Off-the-shelf solution deployment" from Boundaries
The "What we don't do" section previously included "Off-the-shelf solution deployment." This is now removed since Institutional Deployment does exactly that — deploys existing tools for clients.
The gap between "free and open source" and "custom architecture work" excluded universities — the natural audience for tools born from 15 years of design education. Institutional Deployment closes that gap without compromising the philosophy: tools remain free, the service is setup labour.
Tools Page Refinements
Visual and copy
Small refinements to the Tools page for clarity and visual polish.
Fixed
SVG pipeline indicator overlap
The "DeBERTa → Rules → Haiku" pipeline indicator in the Coherence Diagnostic thumbnail was overlapping with the GAPS dimension. Moved to clear position.
Added
Demo access instructions
The page subtitle now includes how to request demo access: "email hello@koher.app to request access." Previously just said "Hosted demos available by invitation" without explaining how.
14 February 2026
First Tool Release
Tools infrastructure + Coherence Diagnostic v1.1.0
The Open Tools section is no longer empty. The first tool — Coherence Diagnostic — is released to GitHub and demo infrastructure. A dedicated Tools page lists available tools with source links and hosted demos.
Added
Tools page (/tools)
A dedicated page at /tools listing all open tools. Card-based layout with SVG thumbnails, demo links, and GitHub source links. Links to the new GitHub organisation: github.com/koherarchitecture.
The "Open Tools" section on the homepage pointed to an empty Lab. With the first tool ready, a proper tools page provides the destination — tool cards with descriptions, source links, and demo access.
Released
Coherence Diagnostic v1.1.0
The first Koher tool — a design concept coherence analyser. Takes a 2-8 sentence concept and shows what's strong, thin, or unclear across five dimensions (CLAIM, EVIDENCE, SCOPE, ASSUMPTIONS, GAPS). Three-stage pipeline: DeBERTa qualifies, deterministic rules judge, Haiku narrates.
Source
github.com/koherarchitecture/coherence-diagnostic
Demo
coherence-demo.koher.app (by invitation)
This is the tool that was removed from the homepage on 13 February. It returns — not as a "proof of concept" the architecture must stand or fall by, but as one small tool demonstrating the three-layer separation. Open source under MIT licence; users clone the repo, bring their own Anthropic API key, run locally.
Features
User management and comparison modes (v1.1.0)
- User management with SQLite storage
- Admin panel at /admin for creating users
- Usage limits: 10 analyses per user, 10 new users per day
- Three-mode toggle: Koher pipeline, Direct AI, Side-by-Side comparison
- History tabs showing previous analyses
- Sample concepts button for quick testing
- 60-second timeout with refresh prompt
The comparison modes let users see the difference between the Koher architecture (DeBERTa → Rules → Haiku) and direct AI prompting. The user management prevents abuse of the hosted demo while keeping it accessible by invitation.
Established
Demo URL pattern
Pattern
[toolname]-demo.koher.app
All future tool demos will follow this pattern. The main website remains at koher.app; each tool demo lives at its own subdomain.
Clear separation between the philosophy (koher.app) and the demonstrations ([tool]-demo.koher.app). Each tool is independent infrastructure.
Unchanged
What stayed the same
- Homepage content and structure
- Positions page
- Subscription tiers and pricing
- Visual design — colours, typography, layout
This release completes the infrastructure announced on 13 February: the Lab is no longer empty. Tools ship monthly, open source, one at a time. The architecture speaks through working code.
13 February 2026
Philosophy Pivot
Major reframe
Koher.app shifts from a consultancy service page to a philosophy-first site. The core architecture and subscription tiers remain. The tool demo is removed. A Lab section and practice framing are added.
Rewritten
Page title and meta tags
Before
Koher — AI Tool Design for Domain Experts
After
Koher — AI Handles Language. Code Handles Judgement.
The site now leads with the philosophical insight, not a service description. The first thing someone reads should be the idea, not an offering.
Rewritten
Hero section
Before
"AI Tool Design for Domain Experts" with "Get in Touch" button
After
"AI handles language. Code handles judgement." with "Read the Architecture" button
The first action should be reading the architecture, not emailing. The philosophy needs to land before any conversation starts.
Added
The Practice section
New section after "The Approach" — four short paragraphs setting the practice frame. "The architecture is the constant. The tools evolve... This is not a startup. This is a practice."
The site had no philosophical anchor. The architecture was presented as a service offering rather than a body of thought. This section establishes that Koher is a long-term practice — tools ship when they crystallise, open source, under MIT licence.
Replaced
Proof of Concept → Open Tools
Before
A "Proof of Concept" section showing a mockup of the design coherence diagnostic tool with sample output across five dimensions.
After
An "Open Tools" section — empty for now, framed as a growing collection. "Small tools. Open source. One at a time."
The design coherence tool will not be released in its current form. It was specific to one domain (design education), one audience (students and faculty), one user level (early-stage concept formation), and one maker level (the practitioner's current implementation capacity). Presenting it as "proof of concept" made the architecture's credibility hostage to a single tool that most visitors would find irrelevant to their domain. Ideas do not get second chances. The Lab section honestly states that no tools are released yet, and frames the practice of shipping small tools as they arrive.
Reframed
Subscription Plans → For Those Who Want Help
Before
"Subscription Plans" — "Annual subscriptions. First month free."
After
"For Those Who Want Help" — "The tools are free. The consultancy is for those who want help."
The subscription tiers are real offerings and remain unchanged in price and content. The framing shifts from a sales climax to an option. The consultancy exists for those who want to apply the architecture in their domain.
Restructured
Open offering separated from subscription tiers
The subscription section is split into two parts. First: a statement that the tools and architecture are free — always, for everyone, no signup. This is an offering, not a subscription tier. Second: the paid consultancy tiers for those who want help applying the architecture.
The Open offering is not a subscription. It should not sit alongside subscription cards as though it were one. It is a statement of principle: the tools and architecture are free for use. The consultancy is a separate, optional engagement.
Added
Single Session tier (₹5,000, one-time)
One 90-minute call to explore whether the three-layer architecture applies to the visitor's domain. No commitment beyond the session.
The jump from Free to ₹20,000/month annual subscription was too steep. Someone interested in the architecture needs a way to test the fit without committing to an annual engagement.
Added
Architecture Map tier (₹25,000, one-time)
Written analysis mapping the three-layer architecture to the visitor's specific domain problem. Includes one 60-minute call and a written deliverable: what gets qualified, what rules encode, what the language layer handles.
Some organisations want a clear picture of how the architecture applies before deciding to build. This deliverable-based engagement provides that picture without requiring an ongoing subscription.
Added
Follow the Work section
"New tool when it arrives. No spam. No pitch."
Lower commitment than emailing. For people who are interested but not ready for a conversation.
Rewritten
Contact section
Before
"Start Your Free Trial" — "One month free. See if the Koher architecture fits your domain."
After
"Get in Touch" — "If the architecture resonates with a problem in your domain, reach out."
"Start Your Free Trial" is SaaS language. It frames the interaction as a sales conversion. The revised copy frames it as a conversation.
Added
Positions page
A new page at /positions to host philosophical statements and positions on AI, judgement, and domain expertise. Empty at launch, ready for when positions are published.
Koher is a philosophy. The website needs a place to publish positions and statements of principle. Each position is a dated, titled entry. The page grows as the practice evolves.
Added
Changelog page
This page. A styled public record of every change to koher.app, with rationale. Linked from the footer.
Transparency about the evolution of the site and the thinking behind it.
Unchanged
What stayed the same
- The Problem section
- What Separation Means section (mixed vs. separated table)
- The Approach section (three-layer architecture panel)
- Where This Applies section (domain grid)
- Subscription tier prices (Advisory ₹20K, Architecture ₹50K, Development ₹1.5L)
- Subscription tier content and deliverables
- What We Don't Do section
- Track Record section
- Visual design — all colours, typography, layout
- Logo (Three Braid)
This change follows a pivot: Koher is a philosophy and ongoing practice, not a startup seeking product-market fit. The website presents the idea in its strongest form — the writing — and lets tools ship as small, honest demonstrations of the architecture when they crystallise.
8 February 2026
Initial Launch
v1.0.0
Koher.app launched as a consultancy service page for AI tool design. Single-page site with architecture explanation, proof of concept mockup, subscription tiers, and contact CTA. Built with vanilla HTML/CSS, served via Node.js/Express on CapRover.