Skip to content
Merged
Show file tree
Hide file tree
Changes from 77 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
8b9724a
Kotlin proposal stub
mfateev Dec 27, 2025
b3cb4e5
Kotlin SDK proposal: API and implementation docs
mfateev Dec 29, 2025
57152b1
Kotlin SDK: Add cancellation documentation
mfateev Dec 29, 2025
2f08871
Kotlin SDK: Fix parameter order and rename condition to awaitCondition
mfateev Dec 31, 2025
2153e4c
Kotlin SDK: Fix client API parameter order (options before args)
mfateev Dec 31, 2025
4a10992
Kotlin SDK: Fix signalWithStart parameter order
mfateev Dec 31, 2025
a42eb80
Kotlin SDK: Fix client API parameter order in phase-2.4
mfateev Dec 31, 2025
5b410e0
Delete outdated docs
mfateev Dec 31, 2025
914d0d4
Add KWorkflowClient, KWorkerFactory, and KChildWorkflowHandle to API
mfateev Dec 31, 2025
b46e530
nexus images
mfateev Dec 31, 2025
42610af
Add Java SDK API Parity section to design document
mfateev Jan 2, 2026
956c9a9
Update docs to reflect Phase 2 completion and retry implementation
mfateev Jan 2, 2026
7e2cb86
Update documentation to reflect current implementation status
mfateev Jan 2, 2026
6422b7e
Update docs: KWorker moved to main module
mfateev Jan 4, 2026
164fa22
Update implementation plan with updateWithStart and mocking completion
mfateev Jan 4, 2026
701f306
Update SDK API doc with updateWithStart design
mfateev Jan 4, 2026
b927c06
Document dynamic handler registration APIs in Kotlin SDK
mfateev Jan 4, 2026
516b837
Refactor sdk-api.md into hierarchical documentation structure
mfateev Jan 5, 2026
e25c017
Remove legacy getHeartbeatDetails(): Payloads? from KActivityInfo
mfateev Jan 5, 2026
e6ab5ee
Remove suspendHeartbeat API, keep only heartbeat()
mfateev Jan 5, 2026
234b072
Document Activity API design decisions in api-parity.md
mfateev Jan 5, 2026
94417b5
Fix Null Safety section example in kotlin-idioms.md
mfateev Jan 5, 2026
66e6ee5
Remove @KWorkflowImpl parallel interface pattern from proposal
mfateev Jan 5, 2026
56d8e0c
Use typed activity call in workflow definition example
mfateev Jan 5, 2026
7a2b51f
Use typed activity call in README Quick Start example
mfateev Jan 5, 2026
c70697c
Use typed activity calls in timers-parallel.md examples
mfateev Jan 5, 2026
9152ca6
Rename Next Steps to Related, add linear Next navigation
mfateev Jan 5, 2026
d713d0c
Add Start Review link to README as entry point for linear navigation
mfateev Jan 5, 2026
9ae3ffb
Expand kotlin-idioms.md with suspend functions, concurrency, cancella…
mfateev Jan 5, 2026
917baaa
Improve kotlin-idioms.md flow and content
mfateev Jan 5, 2026
901cf2b
Replace directory links with README.md links
mfateev Jan 5, 2026
37af43d
Remove implementation links from design review documents
mfateev Jan 5, 2026
72d707e
Add activity definition and implementation to Quick Start example
mfateev Jan 5, 2026
1d282d7
Remove Complete Example reference from README
mfateev Jan 5, 2026
5fef37f
Remove Complete Example section from workflows/README.md
mfateev Jan 5, 2026
636edde
Remove implementation note from koptions.md
mfateev Jan 5, 2026
5ab8006
Remove implementation note from activities/definition.md
mfateev Jan 5, 2026
95e7985
Refactor interceptor API to use suspend functions consistently
mfateev Jan 5, 2026
1d0a468
Remove getChildWorkflowHandle - use external workflow handle instead
mfateev Jan 5, 2026
60981f0
Add runId to KChildWorkflowHandle
mfateev Jan 5, 2026
813ae18
Change KChildWorkflowHandle to use suspend getExecution()
mfateev Jan 5, 2026
614b176
Simplify KChildWorkflowHandle: use suspend fun runId() instead of get…
mfateev Jan 5, 2026
f2d2a50
Remove contextPropagators from KContinueAsNewOptions
mfateev Jan 6, 2026
e541eb6
Use Kotlin properties instead of getter methods in API
mfateev Jan 7, 2026
71000b3
Fix client documentation consistency
mfateev Jan 7, 2026
8411e2e
Remove stale interceptor references from registration example
mfateev Jan 7, 2026
c336312
Simplify activity implementation - remove @KActivityImpl
mfateev Jan 7, 2026
ba584ce
Fix heartbeatDetails API - use reified generic and consistent naming
mfateev Jan 7, 2026
011eae2
Move KActivity API from local-activities.md to implementation.md
mfateev Jan 7, 2026
e259002
Show suspend method support in local activities example
mfateev Jan 7, 2026
08bc977
Remove 'When to Use Local Activities' - assumes Temporal knowledge
mfateev Jan 7, 2026
a35e497
Document KActivity.context availability for local activities
mfateev Jan 7, 2026
9f492c2
Add KActivity.context limitations table to local-activities.md
mfateev Jan 7, 2026
75878d6
Make SignalWithStart and UpdateWithStart consistent
mfateev Jan 7, 2026
553d34b
Change KWithStartWorkflowOperation from class to interface
mfateev Jan 7, 2026
b70eac1
Simplify with-start API and use KSuspendFunction consistently
mfateev Jan 7, 2026
8638229
Clean up worker setup documentation
mfateev Jan 7, 2026
2a727c8
Use idiomatic Kotlin naming in API parity doc
mfateev Jan 7, 2026
3a7ac10
Update Kotlin SDK spec based on gap validation analysis
mfateev Jan 7, 2026
eaaec83
Add testing documentation and navigation fixes
mfateev Jan 12, 2026
f95b7bf
Kotlin SDK API Proposal
mfateev Jan 12, 2026
9603691
Expand migration guide with comprehensive API mapping
mfateev Jan 12, 2026
dfb633e
Expand migration guide with comprehensive API mapping
mfateev Jan 12, 2026
8273a67
Add interfaceless workflow/activity proposal as open question
mfateev Jan 12, 2026
c86195b
Add open questions document and cross-link discussions
mfateev Jan 12, 2026
c5c1e1e
Add Claude instructions with open questions guidance
mfateev Jan 12, 2026
e1c6c05
Add KArgs type-safe activity arguments as open question
mfateev Jan 12, 2026
fcaaa01
Add 0-arg versions and child workflow/client examples to KArgs proposal
mfateev Jan 12, 2026
de7cbad
Add three options for type-safe activity/workflow arguments
mfateev Jan 12, 2026
a45e8de
Add data classes vs builder+DSL open question
mfateev Jan 12, 2026
d63d702
Update Kotlin SDK proposal with API refinements and open questions
mfateev Jan 12, 2026
c978a16
Document that default parameter values are not allowed
mfateev Jan 13, 2026
f967a07
Merge default params documentation from PR branch
mfateev Jan 13, 2026
a98bf12
Rename KActivityContext to KActivityExecutionContext, remove logger
mfateev Jan 13, 2026
4306ffa
Remove heartbeatDetails from KActivityInfo (use KActivityExecutionCon…
mfateev Jan 13, 2026
fb99a76
Fix KLocalActivityOptions to match Java LocalActivityOptions
mfateev Jan 13, 2026
99b668e
Update Kotlin SDK API docs based on PR review decisions
mfateev Jan 13, 2026
8ae3077
Remove .idea and .claude directories from tracking
mfateev Jan 13, 2026
3828995
Remove CLAUDE.md from tracking
mfateev Jan 13, 2026
c6370b1
Add enhanced nested DSL ergonomics suggestion to open-questions
mfateev Jan 13, 2026
43c7014
Update API proposal based on PR review round 2
mfateev Jan 14, 2026
dbfc512
Address PR review round 2 comments
mfateev Jan 14, 2026
edf8cbf
Address PR review comments Q20-Q24
mfateev Jan 15, 2026
8d3d46f
Add run() method to KWorker API
mfateev Jan 16, 2026
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
42 changes: 42 additions & 0 deletions .claude/skills/implement-change.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Implement Change Skill

Implement a change based on a detailed plan from the change-planner agent.

## Usage

```
/implement-change <phase>.<change>
```

Examples:
- `/implement-change 1.1.1` - Implement Phase 1.1, Change 1
- `/implement-change 2.3.5` - Implement Phase 2.3, Change 5

## Behavior

1. Read the change plan from `kotlin/phases/changes/phase-X.Y-change-N.md`
2. Verify dependencies are met
3. Create new files as specified
4. Modify existing files as specified
5. Implement all unit tests
6. Verify code compiles and tests pass
7. Report summary of changes

## Prerequisites

The change plan must exist. Run `/plan-change X.Y.N` first if needed.

## Output

- Production code files (created/modified)
- Test files
- Summary of what was done
- Any deviations from plan with justification

## Quality Gates

The agent will verify:
- Code compiles without warnings
- All new tests pass
- Existing tests still pass
- Acceptance criteria from plan are met
62 changes: 62 additions & 0 deletions .claude/skills/implement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Implement Skill

Fully implement a change from a phase plan, orchestrating planning and implementation.

## Usage

```
/implement <phase>.<change>
```

Examples:
- `/implement 1.1.1` - Implement Phase 1.1, Change 1
- `/implement 2.3.5` - Implement Phase 2.3, Change 5

## Behavior

This skill orchestrates the full implementation workflow:

1. **Validate** - Check dependencies are met
2. **Plan** - Generate detailed implementation plan (change-planner)
3. **Review** - Verify plan is feasible and complete
4. **Implement** - Write code and tests (change-implementer)
5. **Verify** - Ensure compilation and tests pass
6. **Retry** - Replan or fix if issues encountered

## Automatic Recovery

The orchestrator handles failures automatically:

| Issue | Action |
|-------|--------|
| Plan incomplete | Replan with feedback (up to 2x) |
| Compilation error | Fix and retry (up to 3x) |
| Test failure | Diagnose and fix or replan |
| Blocking issue | Stop and report |

## Output

- Completed implementation with passing tests
- Change plan document at `kotlin/phases/changes/phase-X.Y-change-N.md`
- Summary of files created/modified
- Verification report

## Prerequisites

- Phase plan must exist at `kotlin/phases/phase-X.Y-detailed.md`
- Prior changes in the phase should be complete

## Workflow Visualization

```
/implement 1.1.3
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Plan Change │ ──▶ │ Implement │ ──▶ │ Verify │
│ │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
▲ │ │
│ │ │
└────── replan ──────┴─────── fix ────────┘
```
40 changes: 40 additions & 0 deletions .claude/skills/plan-change.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Plan Change Skill

Create a detailed implementation plan for a single change from a phase plan.

## Usage

```
/plan-change <phase>.<change>
```

Examples:
- `/plan-change 1.1.1` - Plan Phase 1.1, Change 1
- `/plan-change 2.3.5` - Plan Phase 2.3, Change 5

## Behavior

1. Read the phase plan from `kotlin/phases/phase-X.Y-detailed.md`
2. Read SDK proposal docs and relevant source code
3. Validate the change is feasible
4. Design the simplest, most readable implementation
5. Specify complete test coverage
6. Write output to `kotlin/phases/changes/phase-X.Y-change-N.md`

## Output Contents

The implementation plan includes:

- **Feasibility validation** - Confirm change is possible
- **File changes** - Exact files to create/modify with code skeletons
- **Test specifications** - Complete unit test definitions
- **Acceptance criteria** - Checklist for completion
- **Implementation notes** - Gotchas, patterns, references

## Requirements

The output must be **self-contained**. A developer should be able to implement the change using only:
- This document
- The SDK source code

No need to consult proposal documents or other planning materials.
63 changes: 63 additions & 0 deletions .claude/skills/plan-phase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Plan Phase Skill

Break down a phase of the Kotlin SDK implementation into detailed, self-contained changes.

## Usage

```
/plan-phase <phase>
```

Examples:
- `/plan-phase 1.1` - Plan "Java SDK Refactoring"
- `/plan-phase 2.1` - Plan "Typed Activity Stubs"

## Behavior

1. Read the implementation plan from `kotlin/implementation-plan.md`
2. Read context from `kotlin/sdk-api.md` and `kotlin/sdk-implementation.md`
3. For the specified phase, produce a detailed breakdown where each item:
- Is a self-contained, submittable PR
- Includes full test coverage
- Has clear dependencies on prior items
- Can be reviewed and merged independently

## Output Format

Write the detailed plan to `kotlin/phases/phase-X.Y-detailed.md` with this structure:

```markdown
# Phase X.Y: [Name] - Detailed Plan

## Overview
Brief description of what this phase accomplishes.

## Prerequisites
Any required setup or prior phases.

## Changes

### Change 1: [Title]
**Summary:** One-line description

**Scope:**
- Files to add/modify
- Public API changes (if any)

**Tests:**
- Unit tests required
- Integration tests required

**Dependencies:** None | Change N

---
(repeat for each change)
```

## Guidelines

- **Atomic**: Each change does ONE thing
- **Testable**: Every change includes tests
- **Ordered**: Dependencies flow forward only
- **Compilable**: Code compiles after each change
- **No Design**: Don't go into implementation details - just scope and structure
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/google-java-format.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/proposals:kotlin-sdk.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 62 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Claude Instructions for Kotlin SDK Proposals

## Repository Purpose

This repository contains API proposals and design documentation for the Temporal Kotlin SDK.

## Adding Open Questions

When proposing new API features that need discussion before implementation:

1. **Add to the central document**: Add a new section to `kotlin/open-questions.md` with:
- Clear problem statement
- Proposed solution with code examples
- Benefits and trade-offs
- Status marked as "Decision needed"

2. **Add inline sections**: In the relevant proposal document (e.g., `activities/definition.md`), add an "Open Questions (Decision Needed)" section at the end with:
- Brief summary of the proposal
- Link to full discussion: `[Full discussion](../open-questions.md#section-anchor)`

3. **Update the README**: Ensure `kotlin/open-questions.md` is linked in the Reference section of `kotlin/README.md`

### Example Format

In `open-questions.md`:
```markdown
## Feature Name

**Status:** Decision needed

### Problem Statement
[Describe what problem this solves]

### Proposal
[Code examples showing proposed API]

### Benefits
- [List benefits]

### Trade-offs
- [List trade-offs]

### Related Sections
- [Link to relevant proposal docs]
```

In the relevant proposal doc:
```markdown
## Open Questions (Decision Needed)

### Feature Name

**Status:** Decision needed | [Full discussion](../open-questions.md#feature-name)

[Brief summary and code example]
```

## Commit Style

Follow concise commit message style:
- First line: Brief summary of change
- Body: Additional context if needed
Loading