v0.25.0
v0.25.0 gives the desk companion a recall system. It stops wandering into your reading and comes only when called.
Free roaming now stays in the map rail. The companion used to drift through all three panes, and when it settled over the middle or right pane it sat on top of the text you were reading. The new contract inverts that default. Unsupervised flight happens only over the left map, among the lesson balls. The other two panes are visited on summons. Focusing the input box calls it over to keep you company while typing, voice-mode dictation does the same for hold-to-talk, lesson read-aloud brings it to point at the sentence being spoken, and marking a note calls it beside the line you drew. When the work ends it waits out a three-and-a-half-second debounce and flies home. On a phone, where the map pane is usually off screen, home is the left screen edge with half of it peeking in from outside, so the same rules work unchanged.
Dragging no longer snaps back. Grabbing the companion and throwing it was always possible. What was broken was the landing. Release set its glide target to the old physics coordinate from before the drag, so it visibly slid back to where it started. The physics body now syncs to the drop point at release, and the onward journey, to whatever duty called or back home, is a rate-limited glide with a dedicated homing cruise tier. Slower than rushing to duty, faster than idling. It reads as flight with a pace, without the teleport feel.
Correct answers and unlocks summon it too. Answer a quiz card right, rate yourself as remembering in review, or unlock a map node, and the companion flies to the source and celebrates beside it for about three seconds before heading home. Wrong answers keep their local soft red flash and summon nothing. During an exam it holds its quiet perch next to the timer, undisturbed by any of this.
Bad coordinates no longer bait it off screen. Testing exposed two holes. An unlock event sometimes fired before the lesson ball had a real position on screen, and the companion would dash toward a negative coordinate near the screen edge for three seconds. An anchor is now carried only when the ball is genuinely inside the viewport. And when a celebration's position cannot be attributed to any pane, the companion does not guess a destination. It simply does not come.
v0.25.0 给桌宠装上了召回制。它不再游进你的阅读,有事才来。
自由游走只发生在左栏地图。 伴学以前在三栏之间乱逛,停在中栏或右栏时就趴在你正在读的文字上。新契约把这个默认翻了过来。无人召唤的飞行只在左侧地图的课程球之间发生,另外两栏都要召唤才到。聚焦输入框,它飞来陪你打字。听写的语音模式同样算召唤,它就悬在按住说话的卡片旁。整课朗读时它跟句指向正在读的那一句,划线记笔记则落到你画的那条线旁边。事情做完,它等三秒半的防抖再飞回家。手机上地图栏通常不在屏内,家就设在屏幕左缘,半个身子从外面探进来,同一套规则不用改。
拖拽不再弹回原点。 抓起来扔出去一直可以,坏的是落点。松手后滑翔目标还是拖拽前的旧物理坐标,眼看着滑回出发的地方。现在松手瞬间物理刚体同步到落点,接下来的飞行,无论是赶去职责锚还是回家,都是限速滑翔,回家专设一档巡航速度,比赶场慢,比闲逛快。全程看得出飞行轨迹,没有瞬移感。
答对和解锁也会召它来。 题卡答对、复习自评里点了记得或很熟、地图节点解锁,伴学都会飞到事件源旁边庆祝三秒左右,然后回家。答错只有原地的一下柔红,不召唤。考试答题期间它守在计时条旁边的静栖位,这些庆祝都不会打扰它。
坏坐标不会再把它骗出屏幕。 测试里暴露出两个洞。解锁事件有时在课程球还没有真实屏幕位置时就发出,伴学会朝一个负坐标冲三秒。现在球真正进了视口才携带锚点。庆祝的落点归属不到任何一栏时,它也不猜,干脆不来。