NEWS
PsyLingLLM 0.4.0
- Introduced Registry v2 with separate model, provider, interface, and
capability domains.
- Refactored
llm_caller() into a resolver, request builder, transport,
response parser, and result-normalization pipeline without changing its
experiment-facing behavior.
- Added reusable protocol support for OpenAI-compatible Chat Completions,
OpenAI Responses, DeepSeek-compatible chat, and Anthropic Messages.
- Added explicit support levels and opt-in production Registry smoke tests.
OpenAI Responses, DeepSeek Chat/Responses, and Qwen Chat/Responses passed
live non-stream and stream verification for the documented model entries.
- Preserved Registry v1 user files and the existing public registry return
structures through compatibility projections.
- Added network-free contract tests for request construction, streaming,
response parsing, provider errors, timeouts, secret redaction, and bundled
Registry v1/v2 equivalence.
- Added
adaptive_feedback_experiment() as the canonical adaptive-conversation
entry point while preserving conversation_experiment_with_feedback() as a
backward-compatible alias.
- Corrected experiment result-path handling so an explicit output path no
longer initializes the default user result directory.
- Moved automatically named result files to the platform-specific package data
directory returned by
tools::R_user_dir() for CRAN-compliant persistence.
- Added opt-in live DeepSeek coverage for ordinary conversation history and
bounded adaptive feedback execution.
- Moved the default user Registry to
tools::R_user_dir() while retaining
read-only compatibility with the historical ~/.psylingllm location.
- Hardened Registry and result persistence so malformed Registry files are
preserved, v1 registration cannot corrupt v2 bundles, parent directories are
created explicitly, and failed writes no longer report false success.
- Restored one-to-one RAW evidence retention across trial, factorial,
conversation, adaptive-feedback, and multi-model experiment results. CSV
and ordinary Excel result tables remain flat. The optional
raw_output_path writes a lossless, redacted RDS archive; Excel output then
adds compact RawIndex and RawMetadata sheets without embedding provider
payloads in cells. Existing explicit saveRDS() workflows remain supported.
- Added
get_trial_raw(), extract_process_metrics(), and
extract_token_probabilities() for provider-neutral inspection and analysis
of supported reasoning-token, usage, and token-logprob evidence.
- Changed omitted experiment-level
generation_interface arguments to use the
model's Registry default interface. Explicit interface values remain strict,
public function signatures retain their historical displayed defaults, and
ambiguous Registry v1 models retain the historical Chat fallback.
- Decode non-stream provider response bytes explicitly as UTF-8 before strict
JSON parsing. The existing control-byte recovery remains a secondary,
auditable fallback, and other malformed JSON remains a structured parser
error.
- Added a narrow, auditable recovery path for otherwise valid provider JSON
containing unescaped control bytes inside strings. Original response bytes
remain available in RAW diagnostics; other malformed JSON remains a
structured parser error.
- Kept standard result columns present when their values are unavailable so
streaming and non-streaming result files retain a stable tabular schema.